Display online orders to KDS without routing by category

Hello,

My client needs to solve this problem. I am the developer for the “custom app”:

  1. on the KDS screen show order items placed on site of food category
  2. on the KDS screen show orders for all items placed online through the custom app
  3. do NOT show on the KDS other orders placed on site for any items in any other categories (non-food items)

From what I can tell, in this case the client cannot route to the KDS by item category because the same item should or should not be displayed on the KDS depending on if it is ordered online or on site. So my question is: can I set an attribute of the online order object created with orders-api CreateOrder or UpdateOrder so that the items in that order are always displayed on the KDS. If so, then how should my client configure their KDS to set this routing?

Thank you for your help

:waving_hand: I’m Square Dev AI, here to help answer your question!
Based on the information you’ve provided, the following documentation will help answer your question:

Additional Documentation

Use Custom Attributes for Orders
Configure the Order-Ahead Sample Application
Order-Ahead Application Use Case

If this documentation helped you find a solution, please check the box indicating that this reply solves the problem.
Otherwise one of our Developer Advocates will provide additional assistance shortly.

Is this with the Square provided KDS? If so there isn’t a way to configure the KDS to filter based on a custom attribute.

If your building a custom KDS then this is possible. To achieve the desired behavior on the Kitchen Display System (KDS), you can use custom attributes to differentiate between orders placed online through your custom app and those placed on-site. Here’s how you can approach this:

  1. Use Custom Attributes for Orders: You can define a custom attribute for orders that indicates the source of the order (e.g., “online” or “on-site”). This can be done using the Order Custom Attributes API. When creating or updating an order with the Orders API, you can set this custom attribute to specify whether the order was placed online or on-site.
  2. Configure the KDS: The KDS should be configured to filter and display orders based on this custom attribute. You can set up the KDS to show:
  • All orders with the custom attribute indicating they were placed online.
  • Orders with food items placed on-site, possibly by checking the category of the items in the order.
  1. Implementation Steps:
  • Create a Custom Attribute Definition: Use the CreateOrderCustomAttributeDefinition endpoint to define a custom attribute that will store the order source.
  • Set the Custom Attribute: When creating or updating an order via the Orders API, use the UpsertOrderCustomAttribute endpoint to set the custom attribute value to “online” for orders placed through the custom app.
  • KDS Configuration: Ensure the KDS is set up to read this custom attribute and filter orders accordingly. This might require custom logic on the KDS side to interpret the custom attribute and decide which orders to display.
    By using custom attributes, you can effectively manage the display of orders on the KDS based on their source and category, providing the flexibility needed for your client’s requirements. :slight_smile:

Thank you for the response, Bryan. My client is using a square provided KDS so it seems that using a custom attribute is not applicable in this case.

Just to be sure, is there possible a way to specify an order placed via the square api as coming from a specific POS or source ? My client noted that on his KDS configuration he can choose which POS sources to route to his KDS. Could I somehow code the app to configure the order with a particular source and then ask my client to configure his KDS to route based on that source ?

While you can configure the KDS to receive orders from a specific POS the ability to configure it to receive online orders from a unique source isn’t currently available. You only have the option to display an online order when it’s placed, marked in progress, or based on pickup time. :slight_smile:

Ok, I also wanted to ask, is there a way I can configure the KDS to only display items ordered from the online store? My client has noted that on the KDS configuration he can toggle online orders on or off. Is there a way that I can mimic this toggle in the order created through a call to the CreateOrder api ?

At this time there isn’t a way to mimic this behavior since any order that’s created online is created via the API. :slight_smile: