Overview
This endpoint allows you to retrieve your branch-based product catalog. It offers a multitude of filtering options such astype, category_id, and tags, and supports five main product types: GOODS, DISH, TIMER, PREPARATION, and INGREDIENT.
The returned data includes product variants (modifications), modifiers (modificator_groups), recipes (recipe), and all other related data.
Product Types and Behaviors
While all product types are fundamentally “products,” each has its own specific models and behaviors:-
GOODS: These can have variants (
modifications).- With Variants: If a product has variants, only those variants can be sold. The main product acts as a parent and cannot be sold itself. Each modification behaves like a standard
GOODSproduct without variants. - Without Variants: Standard products that can be sold directly.
- With Variants: If a product has variants, only those variants can be sold. The main product acts as a parent and cannot be sold itself. Each modification behaves like a standard
-
DISH: This type can have
modificator_groups(modifiers).- Modifiers: Modifiers (
Modificator) are used exclusively forDISHtype products. They represent add-on options like “Spice Level” or “Extra Lavash.”
- Modifiers: Modifiers (
-
TIMER: Represents time-based services (e.g., PS5 rental). Pricing is determined by rules defined in the
settingfield. -
PREPARATION: Semi-finished items that have their own recipe and are used in the production of other
DISHitems. - INGREDIENT: Raw materials used in production.
HTTP Request
Query Parameters
Queries are added to the URL as a single, URL-encoded JSON object.The page number for pagination.
The number of products to return per page (Max: 100).
An object containing the filters to apply. See the Filtering section for details and examples.
Additional parameters reserved for future use.
The backend resource the request is routed to. This is typically fixed as
"product".Filtering
Thefilters parameter allows you to create complex and detailed queries. Each filter is defined as an array with the structure ["filter_name", value].
Filters by product type. Possible values:
GOODS, DISH, TIMER, PREPARATION, INGREDIENT.
Example: {"type":["type",["GOODS","DISH"]]}Lists products belonging to the specified category IDs.
Example:
{"category_id":["category_id",[1,3]]}Retrieves products assigned to the specified station IDs.
Example:
{"station_id":["station_id",[1,2]]}Filters for products with the specified tag IDs.
Example:
{"tags":["tags",[1,2]]}Filters for products that are (
"1") or are not giftable.
Example: {"giftable":["giftable","1"]}Filters for products that are (
"1") or are not discountable.
Example: {"discountable":["discountable","1"]}Filters by inventory behavior mode (e.g.,
"3").
Example: {"inventory_behavior":["inventory_behavior","3"]}Retrieves products that have a recipe/ingredients (
"1").
Example: {"haveIngredients":["haveIngredients","1"]}Lists products sold by portion (
"1").
Example: {"sold_by_portion":["sold_by_portion","1"]}Lists products that have variants (
modifications) ("1").
Example: {"has_variants":["has_variants","1"]}Retrieves products that have a modifier group (
modificator_groups) ("1").
Example: {"has_modifiers":["has_modifiers","1"]}Retrieves products that have a barcode (
"1").
Example: {"has_barcode":["has_barcode","1"]}Lists products to which a service charge applies (
"1").
Example: {"has_service_charge":["has_service_charge","1"]}Request Examples
Response Body
Field Reference
Product Object
| Field | Type | Description |
|---|---|---|
id | integer | Unique product identifier. |
type | string | Product type. Values: GOODS, DISH, TIMER, PREPARATION, INGREDIENT. |
name | string | The main name of the product. |
full_name | string | The full product name, including variant information. |
status | integer | Product status (1: Active, 0: Inactive). |
price | number | The base price of the product (variants may have their own prices). |
cost_price | number | The cost price of the product. |
has_modifications | boolean | If true, the product has variants in the modifications array. |
modifications | array | List of variants for GOODS type products. See Variant Object. |
modificator_groups | array | Modifier groups for DISH type products. See Modifier Group. |
recipe | array | Recipe for DISH or PREPARATION type products. See Recipe Item. |
packages | array | Packages for INGREDIENT type products. See Package Object. |
setting | object | Pricing rules for TIMER type products. See Timer Settings. |
taxes | array | Taxes applied to the product. |
tags | array | Tags assigned to the product. |
created_at | string | Creation timestamp (ISO 8601). |
updated_at | string | Last update timestamp (ISO 8601). |
Variant Object (modifications)
Represents different versions (e.g., size, color) of a GOODS type product.
| Field | Type | Description |
|---|---|---|
id | integer | The unique identifier of the variant. |
parent_id | integer | The identifier of the parent product. |
type | string | Always MODIFICATION. |
name | string | The name of the variant (e.g., “0.5 L”). |
price | number | The sales price of the variant. |
cost_price | number | The cost price of the variant. |
Modifier Group (modificator_groups)
Defines groups of options that can be added to a DISH type product (e.g., “Pizza Toppings”).
| Field | Type | Description |
|---|---|---|
id | integer | The group’s identifier. |
name | string | The name of the group (e.g., “Spice Level”). |
type | integer | Selection rule (1: Single-choice, 0: Multi-choice). |
min_select | integer | Minimum number of selections. |
max_select | integer | Maximum number of selections. |
modificators | array | List of selectable items. See Modifier Object. |
Modifier Object (modificators)
| Field | Type | Description |
|---|---|---|
id | integer | The modifier’s identifier. |
name | string | The name of the modifier (e.g., “Medium Hot”). |
price | number | The additional price for the option. |
ingredient | object | If the modifier is linked to an ingredient, contains ingredient information. |
Timer Settings (setting)
Contains the time-based pricing rules for TIMER type products.
| Field | Type | Description |
|---|---|---|
interval | integer | The pricing interval in minutes. |
prices | array | Prices for different time periods. [{ "price": 3, "from": 120 }] |
Recipe Item (recipe)
| Field | Type | Description |
|---|---|---|
ingredient_id | integer | The product ID of the recipe component. |
name | string | The name of the component. |
gross | string | Gross amount. |
net | string | Net amount. |
Package Object (packages)
Specifies the purchasing packages defined for INGREDIENT type products.
| Field | Type | Description |
|---|---|---|
id | integer | The package’s identifier. |
name | string | The name of the package (e.g., “Bundle 10 pcs”). |
equal | integer | The number of base units contained in the package. |
Authorizations
Access token obtained from /auth endpoint
Brand identifier
Venue identifier
Query Parameters
Page number for pagination (starts at 1)
Required range:
x >= 1Maximum number of products to return (1-100)
Required range:
1 <= x <= 100JSON-stringified filter array. Each filter is an array of [field, value] or [field, operator, value]. Example: [["type", "PRODUCT"]]
Example:
"[[\"type\",\"PRODUCT\"]]"