Store configuration
These articles use the stores import formats to describe stores, most important for producers of the store data (e.g. POS system integration creating stores). Since a store can contain tenant-specific extensions, use the Stores schema endpoints in your specific tenant to understand details on consuming store data.
This article describes the top-level fields in the store schema and how they are used when configuring a store.
For full schema, see stores.schema.json.
For full examples, see store-json-sample.jsonc.
Top-level fields
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
taxCalculationMethod | string | No | How VAT is calculated for the order. Defaults to ItemPerUnit when omitted. Allowed values: ItemPerUnit, LineSummed, OrderSummed, LinePerUnit, ItemSummed. | "OrderSummed" |
defaultStaffCultureCode | string | No | Default language/culture code for staff-facing content in this store. | "sv-SE" |
title | object (translatableContent) | Yes | Store name shown in channels and internal tools. Supports translations. | { "value": "Default Store" } |
orderClasses | object | Yes | Determines which order types (for example takeaway)are used for a store and which menu is used for each order type. | See Order types |
contactInformation | object | No | Optional contact data for the store. | { "phoneNumber": "+46-8-123456" } |
location | object | Yes | Store address and optional coordinates. | { "address": { "countryIsoCode": "SE" } } |
images | object | No | Optional store image configuration. | { "default": { "url": { "value": "https://..." } } } |
tzdbTimeZoneId | string | Yes | IANA/TZDB timezone used for store-local date and time handling. | "Europe/Stockholm" |
openingHours | array | Yes | Ordered rules that define when the store is open. | See Opening hours |
production | object | Yes | Capacity model used for order-slot and fulfilment load handling. | See Production and capacity |
mappingDetails | object | No | Integration-specific mapping metadata. Schema allows arbitrary structure. | { "omsStoreMapDetail": 123 } |
stations | object | No | Optional station definitions for kitchen/fulfilment responsibilities. | See Stations |
Order types
orderClasses controls which order types are available for this store as well as which menu is used by each order type.
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
menuDefinitionId | string | Yes | The menu definition id. | "DE_SUMMER_CAMPAIGN_2026" |
Example:
{
"orderClasses": {
"takeaway": {
"menuDefinitionId": "DE_SUMMER_CAMPAIGN_2026"
}
}
}
See Menus overview for more information about menus.
Location
location requires address.countryIsoCode and can include map coordinates.
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
location.address.postalCode | string | No | Postal code shown in store information. | "11147" |
location.address.street | string | No | Street address shown in store information. | "Kungsträdgårdsgatan 20" |
location.address.city | string | No | City name shown in store information. | "Stockholm" |
location.address.countryName | string | No | Human-readable country name. | "Sweden" |
location.address.countryIsoCode | string | Yes | Country ISO code used for country routing and filtering. | "SE" |
location.position.latitude | number | No | Latitude coordinate. | 59.33274 |
location.position.longitude | number | No | Longitude coordinate. | 18.07174 |
Translatable content
Some fields, such as title and station labels, use translatableContent.
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
value | string | Yes | Default value. | "Kitchen" |
translations | object<string,string> | No | Locale-specific overrides. | { "sv-SE": "Köket" } |
overrides | object | No | Nested override values for advanced use cases. | {} |