What is a KDS?
What is a KDS (Kitchen Display System)?
A Kitchen Display System (KDS) is a digital system designed to streamline kitchen operations in restaurants, cafés, bars, and other food service establishments. It essentially replaces traditional paper tickets or kitchen printers, presenting order information in a clear, organized, and efficient manner.
How Does a KDS Work?
- Order Integration: A KDS seamlessly integrates with the establishment's point-of-sale (POS) system. When a customer places an order, whether at the table, counter, or through online platforms, the order details are instantly transmitted to the KDS.
- Visualization: The KDS displays orders on large screens strategically placed in the kitchen. Kitchen staff can see incoming orders, item details, preparation instructions, table numbers, delivery information, and any specific customer requests.
- Workflow Management: The KDS helps organize and prioritize tasks. Kitchen staff can see which orders are new, in preparation, or ready. Customizable views can divide orders into different food preparation stations (grill, fryer, salad bar, etc.) to increase efficiency.
- Timing and Alerts: Many KDS systems incorporate timers and alerts to help ensure meals are prepared and served promptly. For example, the KDS can visually highlight orders exceeding a certain preparation time or send notifications to expedite dishes nearing completion.
- Status Updates: As kitchen staff progress through the preparation stages, they can update the status of each item (e.g., "started," "in progress," "ready"). This real-time status tracking helps front-of-house staff accurately inform customers on order progress and manage expectations.
Key Features of a KDS
- Clear, Customizable Displays: KDS systems feature large, high-resolution screens that present information in a clear and visually appealing format. The layout can often be customized to suit specific kitchen workflows and highlight the most critical details.
- Bump Bar Support: Bump bars are touchscreen devices that allow kitchen staff to quickly update order statuses or send commands to the KDS. They are durable and designed to withstand the heat and pressure of a kitchen environment.
- Order Prioritization: Advanced KDS systems can prioritize orders by factors like preparation time, order completion status, table number, or even VIP status, helping ensure time-sensitive orders are handled promptly.
- Data Analytics: Many KDS solutions collect data on order preparation times, peak kitchen hours, and other metrics. This data can help identify bottlenecks, optimize kitchen processes, and improve overall efficiency.
- Alerts and Notifications: KDS systems can send sound or visual alerts to notify kitchen staff about new orders, order delays, or when a table is ready for the next course.
- Remote Access: Cloud-based KDS systems can allow managers or owners to monitor kitchen operations remotely from anywhere with an internet connection.
KDS Settings
Core Functionalities
You can set global default items per page, and sliding effects here . The progress level is how many levels that the progress bar of each item can have. In general, if your progress has "start cooking", "finished", "delivered", then you have 3 levels. The zero state does not count as level, that means if the progress bar is not touched yet, it is in zero state. In the setting page, if you are store admin, and want to enable any hidden settings that show in this document but not on your UI, please click the Schema button (In console, type localStorage.devTools=true to show the button), then modify the schema
Available Settings
| Setting Name | Type | Default Value | Description |
|---|---|---|---|
| Settings.kdsSettings.hideCompleted | boolean | true | Hides progress bars for completed items. |
| Settings.kdsSettings.progressLevels | number | 2 | The maximum number of levels a progress bar can have. |
| Settings.kdsSettings.initProgressLevel | number | (depends on progressLevels) | The starting level for new items. |
| Settings.kdsSettings.levelToggleMode | string | "focus" | Controls how clicking interacts with progress bar levels. |
| Settings.kdsSettings.disableSplit | boolean | false | (Likely to manage order/item splitting functionality) |
| Settings.kdsSettings.alertFrequency | number | 60 | Interval (in seconds) for alerts or notifications. |
| Settings.kdsSettings.statusTextMap | array | See below | Maps order statuses to custom display text. |
statusTextMap Default
已取消, 已刪除, 未處理, 製作中, 待領取, 已取貨, 未處理 Please copy the string to settings, to replace the default text mapUsing Your KDS (Scenarios)
KDS buttons are the most complicated part of the KDS settings. Each button can have a series of actions that can take on the order and items. For each button, the system will execute the javascript that contains the actions. We predefined a set of functions that can serve the user's need, and you can also add your own javascript logic in the javascript to make the script more powerful. The javascript will be used to generate the display of the KDS, and it will also be used to count the displayed items.
KDS Action API Guide
collect
Description
Defines grouping of items into on-screen collections (e.g., one collection per order).
Parameters
- Content: String. One of "orders", "items", or "single"
- condition: String. Filter expression (ex: #.Status == 1)
- target: String. Grouping basis (ex: #.n for item name). Use "all" for a single collection.
- isPeriodically: Boolean. If true, the collection refreshes regularly.
filter
Description
Hides items/collections based on rules.
Parameters
- collectionFilterTarget: String. One of "items" or "collection"
- collectionLevelCondition: String. Filter expression for collections (ex: #.seated == true).
- itemLevelCondition: String. Filter expression for items (ex: #.kptype == 'KP5')
- allOrNot: String. One of "true", "false", "always":
sort
Description
Orders items/collections.
Parameters
- path: String. One of "items" or "collections"
- target: String. Sorting basis (ex: #.n for name, #.mtime for order time).
- ascend: Boolean.
- group: String. Items will first be grouped by this target.
- groupAscend: Boolean.
- collectionMergeProperty: String. If provided, merge consecutive collections where items share this property's value.
alert
Description
Visual/audio alert when a condition is met.
Parameters
- path: String. One of "items" or "collections"
- condition: String. Boolean expression determining the alert (ex: #.s != 2)
- playSound: Boolean.
Notes
- Filter/alert expressions can use system variables (like @itemName), order/item properties, and operators.
- For actions affecting display (layout, appendCssStyle), the system handles when to apply them (displaying vs. calculating item counts).
Example: Task Translation
Original Task: "Show orders with Status = 1, items sorted by name"
collect("orders", "#.Status == 1", null)
sort("items", "#.n", true)