Skip to content

Menu structure

super_categories (optional)
└── categories (at least one)
└── sections (at least one)
└── products
└── attribute_groups
└── attributes
Level Required What it is for
super_categories no The top-level grouping. When present, it is the first list the customer sees.
categories yes The main navigation level: Drinks, Burgers, Desserts.
sections yes The subdivision of a category.
products yes What is actually ordered.
attribute_groups no Groups of customisations, with a minimum and maximum.
attributes no The options themselves.

If you do not use super categories, categories become the first level.

Field Value
store_id The full identifier, partner_name__store_id.
partner_name The name of your POS solution.
store_environment prod.

A product cannot have two prices. If you sell Coca-Cola at 5 lei on its own and at 0 lei inside a meal deal, those are two products with different identifiers, not one.

Images are hosted by you; we only receive the URL.

Requirement Value
Orientation square
Size 1000 × 1000 px
Format JPG
File size under 1 MB
Background light, plain or textured
Protocol HTTPS, with a valid certificate
{
"store_environment": "prod",
"store_id": "gi20__001",
"partner_name": "gi20",
"super_categories": [
{
"name": "default",
"position": 0,
"image_url": null,
"display_super_category": false,
"categories": [
{
"name": "MENIUL ZILEI",
"position": 1,
"sections": [
{
"name": "MENIUL ZILEI",
"position": 0,
"products": [
{
"id": "18412870",
"name": "Meniul zilei",
"price": "45.0",
"image_url": null,
"description": "Ciorbă + fel principal + garnitură la alegere + salată",
"available": true,
"attribute_groups": [
{
"id": "17876377",
"name": "Alege ciorba 300 g",
"min": 1,
"max": 1,
"collapse": true,
"multiple_selection": false,
"attributes": [
{
"id": "17876412",
"name": "Ciorbă de văcuță",
"available": true,
"selected_by_default": false,
"price": "0.0"
},
{
"id": "17876428",
"name": "Ciorbă rădăuțeană",
"available": true,
"selected_by_default": false,
"price": "0.0"
}
]
}
]
}
]
}
]
},
{
"name": "HAMBURGERI",
"position": 4,
"sections": [
{
"name": "HAMBURGERI",
"position": 0,
"products": [
{
"id": "18411340",
"name": "Hamburger clasic",
"price": "45.0",
"image_url": null,
"description": "Carne de vită, roșii, ceapă, brânză cheddar",
"available": true,
"attribute_groups": []
}
]
}
]
}
]
}
]
}
Field What it controls
min / max How many options the customer must and may choose.
multiple_selection Whether the same option can be picked more than once.
collapse Whether the group appears collapsed in the interface.
selected_by_default The pre-selected option.

A group with min: 1 and max: 1 is a mandatory single choice — typical for “choose your side”. A group with min: 0 is entirely optional.