Item List Fetch Process
The item list editor can request the live item list from a restaurant cash register. This is an asynchronous process: the browser asks the backend to create a fetch command, the restaurant integration processes that command, and the backend merges the response into the selected configuration.
::: note Where to use this: Admin → Item list editor → Fetch configuration. :::
Process
- Select the restaurant location in the Fetch configuration component.
- Click Fetch configuration.
- The backend creates a
FETCH_REMOTE_MENUcommand for that location and the current configuration. - The restaurant integration receives the command as an order-like message with
exportMainDataset totrue. - The restaurant integration fetches master data from the cash register.
- The integration posts the fetched JSON back to the backend command response endpoint.
- The backend converts the response to reference data, merges the items into the selected configuration, and notifies open sessions that the configuration changed.
Command Sent to the Restaurant Integration
The fetch command is exposed to the integration as an external order with exportMainData set to true.
{
"number": 12345,
"orderTime": "12:00:00",
"state": "PLACED",
"exportMainData": true
}Expected Response Format
The integration should post a master data JSON response with items, paymentTypes, and optionally users and timestamp.
{
"items": [
{
"itemNumber": "101",
"name": "Tomato Soup",
"numberOfItems": 1,
"price": 6.5,
"station": "KITCHEN",
"displayName": "Tomato soup with basil",
"itemGroup": 10
}
],
"paymentTypes": [
{
"id": "1",
"name": "Cash"
}
],
"users": [
{
"number": "1",
"name": "Service",
"password": "1234"
}
],
"timestamp": "2026-05-25T12:00:00"
}Response Fields
| Field | Required | Description |
|---|---|---|
items | Yes | Array of cash register items. |
items[].itemNumber | Yes | Cash register item number. This becomes the internal item number. |
items[].name | Yes | Item name. |
items[].displayName | No | Display text from the cash register. This becomes the internal item description. |
items[].price | No | Decimal item price, using a dot as the decimal separator. |
items[].numberOfItems | No | Quantity factor for the item. Defaults to 1 when omitted. |
items[].station | No | Cash register station. This becomes the internal printer group. |
items[].itemGroup | No | Accepted by the response parser, but not currently mapped to the internal item. |
paymentTypes | Yes | Array of payment type objects. |
paymentTypes[].id | Yes | Cash register payment type identifier. |
paymentTypes[].name | Yes | Payment type name. The backend stores payment types as name to id. |
users | No | Accepted by the response parser. The current item merge uses item and payment type data. |
timestamp | No | Timestamp from the integration. |
WARNING
Important: The fetched data is merged into the selected configuration. Existing items with matching numbers are updated, new item numbers are added, and payment types are updated from the response.