When we sync a menu to Wolt:
- We take the restaurant’s internal menu (from SIDES).
- We convert it into the format that Wolt expects.
- We upload it to Wolt’s system via their API.
- If Wolt accepts it, the menu is live within minutes!
What you need to check first
Before diving into technical details, confirm:
- The restaurant is active in SIDES system.
- The menu is visible and up to date in SIDES.
- The Wolt restaurant ID, username, and password are available.
- Check with Wolt team if you are eligible for menu push (post menu sync should be enabled).
1. Go to the admin navigation bar at Admin: External services > Delivery portal account, and find the portal you want to start a menu sync for.
Click on the "Sync menu" button
.
2. Wait for the success message confirmation. If no confirmation appears: check the credentials or logs.
What will be synchronized
Commodity groups
SIDES menu system is more flexible and detailed, so our system translates and reshapes the menu before sending it to Wolt. Commodity groups from SIDES are converted into Wolt categories.
SIDES allows nested commodity groups (e.g. Level 1 → Level 2 → Level 3), but Wolt only supports flat categories. The deepest (most specific) group assigned to an item is used as the Wolt category. If an item belongs to multiple commodity groups, it may appear in multiple categories in Wolt.
Commodity Group → Wolt Category
Commodity Subgroup → Wolt Category
Each category name sent to Wolt is determined by the following logic:
- If the commodity group has an "Name for external services" (e.g. "Burgers"), it is used.
- If external name is empty, the system falls back to internal name "Commodity group name".
SIDES (commodity groups) | Wolt |
Commodity groups | Transformed in Wolt categories |
Commodity subgroups | Transformed in Wolt categories (there are no nested commodity groups in Wolt) |
ID from URL | Used as Wolt internal numbers |
External name | Used as category name if it's not empty - customer-facing category name shown in Wolt |
Name | Fallback, used only if external name is missing or invalid |
Desc / Description | The category description is pushed to Wolt |
Active? | Only active groups will be synced to Wolt |
Commodity groups are located under Admin: Item management > Commodity groups > Edit. The following fields are synchronized with Wolt.
Sorting
SIDES is sorting the menu based on the settings:
- Commodity groups: sort index from commodity group edit page.
- Topping groups: sort index from topping group edit page.
- Items: sort order webshop / app from item edit page → section "Extra" is used to sort items inside a commodity group or a topping group.
- Menu groups: sort index of menu groups inside a menu that is set by drag and drop in the menu item edit page → section "Menu" is used to sort menu groups.
Sort | How to set up |
Categories (commodity groups) | Set SortIndex values on commodity groups. (Admin: Item management > Commodity groups > Edit > Sorting index). |
Topping groups | Set SortIndex values on topping groups.
(Admin: Item management > Topping groups > Edit > Sorting index). |
Items | Set Sort order web shop / app values on items on edit page → "Extra" section.
(Admin: Item management > Item > Edit > Extra > Sort order web shop / app). |
Menu groups | Arrange menu groups by drag and drop.
(Admin: Item management > Item > Edit > Menu). |
Items
Next step is that every sales item in SIDES is transformed into Wolt item. For this to happen there are a couple of prerequisites: the item should have a name, price, be attached to a store, be part of a commodity group, not be a topping. If this information is correct, than the item will be sent to Wolt. Toppings and menus (combos) will be handled and described later.
SIDES item field | Wolt |
Item number | Unique ID sent to Wolt. |
Name | Product name |
Description or LMIV description | If LMIV information available, it will replace the main description. If empty, nothing will be sent to Wolt. |
Hardcoded | Always includes: ["HOMEDELIVERY", "EATIN", "TAKEAWAY"] for all sales items from SIDES. |
Deposit | If present and valid; includes price + VAT. |
Price (from store) | Rounded to 2 decimal places. |
Tax rate | Item sales tax percentage is sent to Wolt. |
Availability in store | Availability in store setting on SIDES controls if item is synced to Wolt. |
Images | First valid image used only. |
Alcohol percentage | Alcohol percentage from Extra section is sent to Wolt, if not 0. This field is used to tell couriers to check the age. |
Age limit | Minimum age from item → extra section is sent to Wolt. |
Nutritional values | Detailed breakdown, per 100 g or 100 ml. The payload includes values for:
- EnergyKcal
- EnergyKj
- Fats
- SaturatedFats
- Carbohydrate
- Sugar
- Protein
- Salt
And if available: - MonoUnsaturatedFats, PolyUnsaturatedFats, Fibre, Calcium, Potassium, Sodium, VitaminC, Magnesium, Chloride, Fluoride, Starch, Polyols
See below for more information. |
Caffeine | Auto-calculated per 100 g is sent to Wolt. This info used to display warning for customers. |
Allergens | If available, all allergen names are sent to Wolt as a string (DE & EN translations). |
Additives | If available, all additive names are sent to Wolt as a string (only in DE). |
Ingredients | Optional info from LMIV if present. |
Supplier | Optional info from LMIV if present. |
Distributor | Optional info from LMIV if present. |
Country | Optional info from LMIV if present. |
Instructions for use and storage | Optional info from LMIV if present. |



The Items with their individual sections (such as "Extra", "LMIV mandatory details", etc.) are located under Admin: Item management > Item > Edit.
Toppings
Toppings for normal items will be synced to Wolt (menus will be covered later). Each topping group becomes an Option, and the items within the group become OptionValues. The following information is sent to Wolt regarding topping groups:
Field in SIDES | Description |
Active? | Only active topping groups will be synced to Wolt. |
Name | General topping name (e.g. Fries sauce). |
Topping ID | ID of the topping group from the URL will be sent as ExternalData. |
Toggle free topping group → yes | Will set the price of all toppings to 0 euros (this will impact toppings for items or part of menu groups). |
SingleChoice or MultiChoice | Either SingleChoice or MultiChoice depending on max. quantity for individual sales. If = 1, then type will be sent as single choice, if not 1, then the type sent will be multiple choice. |
Min. and Max. of individual items | Min. and max. is sent to Wolt. If max. is 0 → then the max. of 10 is set. |
Topping groups are located under Admin: Item management > Topping groups > Edit.
Each item, marked as topping, becomes an option value under the option group. For each option value, the following info is transmitted:
SIDES Field (Internal) | Notes / Explanation |
Availability in store? | Availability in store setting on SIDES controls if topping is synced to Wolt. |
Number | Unique identifier used to map SIDES item to Wolt. |
Name | Topping name |
Price | Rounded to 2 decimal places. |
First item in list | The first topping is marked as default, after sorting is applied. |
Deposit | Optional — Added only if valid deposit info exists. |
Nutritional values | Detailed breakdown, per 100 g or 100 ml. The payload includes values for:
- EnergyKcal
- EnergyKj
- Fats
- SaturatedFats
- Carbohydrate
- Sugar
- Protein
- Salt
And if available: - MonoUnsaturatedFats, PolyUnsaturatedFats, Fibre, Calcium, Potassium, Sodium, VitaminC, Magnesium, Chloride, Fluoride, Starch, Polyols
See below for more information. |
Allergens | If available, all allergen names are sent to Wolt as a string (DE & EN translations). |
Additives | If available, all additive names are sent to Wolt as a string (only in DE). |
Ingredients | Optional info from LMIV if present. |
Supplier | Optional info from LMIV if present. |
Distributor | Optional info from LMIV if present. |
Country | Optional info from LMIV if present. |
Instructions for use and storage | Optional info from LMIV if present. |

In SIDES, a menu item (called bundle in Wolt) is a special item that can:
- Combines multiple components (e.g., burger + drink + fries).
- Has menu groups (e.g., "Choose a main", "Choose a drink").
- Can optionally include toppings on these components.
Bundles in Wolt are very strict, and only a menu that follow the following criteria can be transmitted to Wolt. If one of them is not met, the sync will skip the menu and move to the next item.
Rule | Description |
Must belong to store | Must be valid in a store. |
Must have price | Must have a price. |
At least one menu group with items | Menu must have at least one group with selectable items. |
Cannot have "Item price is surcharge" flag set | Menu groups must not have surcharge pricing (Admin: Item management > Item > Edit > Menu > Edit > Item price is surcharge) (rule from Wolt). |
Price validation | Price of menu set in section "Prices" (Admin: Item management > Item > Edit > Prices) must be lower than the sum of cheapest item in every menu group (rule from Wolt). |
Toppings from menus: If all items in a menu group have the same toppings (like sauces for all mains) and the topping is set to "free" (toggle in topping group, under Admin: Item management > Topping groups > Edit > Free Topping group), this topping group is added to the menu.
By adding max. number of selectable items within the menu group, the users will be able to select up to x amount of times of items from that menu group. Imagine you have a Donut box that can hold 6 donuts. Instead of adding the menu group 6 times, you can add it one time and add 6 under the max. number of selectable items within the menu group (Admin: Item management > Items > Edit > Menu > Edit > Max. number of selectable items within the menu group). By selecting the toggle directly below at "Selection required", the user will have to select exactly 6.
Additional information regarding the maximum number of selectable items within a menu group can be found here.
Menus are located under Admin: Item management > Item > Edit > Menu > Edit.


If the menu group with the multiplier has no toppings attached, then the group will only be displayed once:
If then menu group has toppings, the whole combination will be repeated x time to allow users to select toppings for each item in the menu group:
Nutrition
The nutrition data is taken from the following parts of the SIDES system:
For the configuration:
Go to Admin: Item management > Nutrition, on the menu:
Note that syncing is limited to nutrition values with the following names only:
kcal, Energy kcal, Calorific value, kJ, Energy kJ, Fat, Protein, Carbohydrates, of which sugar, Salt, of which saturated fatty acids, of which monounsaturated fatty acids, of which polyunsaturated fatty acids, Fiber, Sodium, Vitamin C, Potassium, Calcium, Magnesium, Chloride, Fluoride, Starch, of which polyols, Caffeine
For the nutrition values themselves, you can edit any item in the admin and check the nutrition section, as far as the item meet the following criteria:
- Is not a menu.
- Is an ingredient (Item Properties > Ingredient flag "yes" under Admin: Item management > Item > Edit > Ingredient).
Items and nutritions are located under Admin: Item management > Item > Edit.

If all nutritional values in SIDES are set to 0, no nutritional values will be sent to Wolt. If at least one nutritional value is added, then all the mandatory nutritional values will be synced to Wolt + some of the extra values that have anything but 0.
If a product contains caffeine, please add it under the nutritional value. If the value is higher than 15ml (or mg), Wolt will automatically add a comment to the product saying "Increased caffeine content. Not recommended for children and pregnant or breastfeeding women", followed by a reference in brackets to the caffeine content, expressed in mg per 100 g.
Common issues & what to do
Nothing shows up on Wolt
- Check again that the credentials are correct, saved, and the portal is active.
- Check the logs (currently only in Signoz, we are working on building an interface in SIDES).
- Ask SIDES to support.
Common errors and what to do:
Sync fails with "bundle price too high"
- This means a menu bundle price is more than the sum of its options.
- Adjust the bundle price but lowering it down. The sum of the cheapest options in all the menu groups and toppings should be lower than the price of the menu.
Sync fails with "surcharge not allowed"
- One of the menu options (topping) has a surcharge setting.
- Disable "Item price is surcharge" (Admin: Item management > Items > Edit > Menu > Edit > Item price is surcharge) for that group. Wolt does not support surcharges for menus.
Deposits not accepted
- Wolt only allows specific deposit values with set tax value. If our value doesn't match the deposit on Wolt, the deposit is skipped and the item is added without deposit.
- Use standard deposit amounts:
VAT rate | Accepted deposit prices (€) |
19% | 0.08, 0.10, 0.15, 0.16, 0.25, 0.28, 0.30, 0.32, 0.35, 0.40, 0.45, 0.48, 0.50, 0.75, 0.80, 0.90, 0.96, 1.00, 1.35, 1.50, 1.60, 1.80, 1.92, 2.00, 2.25, 2.50, 3.00, 3.10, 3.30, 3.50, 8.00 |
7% | 0.15, 0.25, 5.00, 6.00, 6.50, 10.00, 12.00, 13.50, 15.00 |
Other issues
- Descriptions are optional but recommended; if missing, the name is reused.
- Check if items have prices in SIDES, items without prices will not be synced.
- Check if items, groups are active in the store the menu sync is done.