---

## Menu structure

> ℹ️ **Each provider can have only one active menu.**

Bolt Food menu has the following components:

-   **Category** - Consists of one or more dishes (assigned in children_ids). E.g. Breakfast, Burgers, Lunch etc.
-   **Dish** - Item inside a category. It may have none to many option groups assigned (children_ids)
-   **Option group** - Group which can be assigned one to many dishes. E.g. "Selecti your pasta type", "Add extras to your pizza"
-   **Option** - options inside option groups. E.g. "Short pasta", "Extra cheese"
-   **Tags** - predefined list of tags to mark item e.g. as packaging_fee, vegeterian etc.
-   **Fees** - Item defining a fee, such as bottle deposits, SUP directive fees, which can be assigned to other items of type Dish or Option.
-   **(Deprecated - please do not use) Tag multipliers** - Array used in order to denote how many tag instances are attached to a single item. Example: [{tag: “sup_cup”, multiplier: 3}, {tag: “sup_container”, multiplier: 2}]. Currently only used for SUP directive business tags.

### Option group types

| type                      | description                                                                                                       | example                                                                                |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| option_select_group       | One modifier per list. The list must contain at least two items and selecting an item is mandatory for customers. | ![menu_select_group.png](%PUBLIC_URL%/docs/food/img/menu_select_group.png)             |
| option_multi_select_group | Customers can select or ignore all items                                                                          | ![menu_multi_select_group.png](%PUBLIC_URL%/docs/food/img/menu_multi_select_group.png) |
| option_counter_group      | Modifiers with counter. Customers can select the quantity needed per item                                         | ![menu_container_group.png](%PUBLIC_URL%/docs/food/img/menu_container_group.png)       |

### Image guidelines

Size: the minimum recommended height and width of
the image is 1200px, up to 10mb.

[More detailed guide on photos.](https://food.bolt.eu/static/en-us-8da0138573fce6575f4e3bd02d10dfa3.pdf)

## Item availability

Each menu push [(/pushMenu)](#tag/Menu-Integration/operation/post-pushMenu) will overwrite previous menu and item availabilities, meaning all unavailable items should be sent to [/updateMenuItemAvailability](#tag/Menu-Integration/operation/post-updateMenuItemAvailability) after every menu push with one request (all unavailable items combined into one request). Afterwards dishes and/or options can be updated with [/updateMenuItemAvailability](#tag/Menu-Integration/operation/post-updateMenuItemAvailability).

## Fees

Menu items of type "fee" are used to define the applicable fees for items in the menu being pushed, as defined by various container-deposit legislations across markets. The price of a fee is applied on top of the base price of the menu item for which the fee is assigned. For example if a menu item is priced at 10 EUR, and has a fee assigned, with the price of the fee item being 0.5 EUR, then the total price amount of the item will be 10.5 EUR. The extra price from the attached fee is reflected accordingly in the Bolt Food application. By default, for the currently supported fees, the fee price is not included in the merchant's commission computation, the applied VAT rate for the fee price is 0 and the fee price is not included in any discount computation. Currently the following fee types are supported:

| Fee type      | Description                                                                                                                                                                                                                                                                                |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| deposit       | Should be used for bottle deposits. <br /> Modifies the content of the basket in order to have correct financial information Bolt Food is sending an order to the POS system. See [order integration](#tag/Doc-Order-integration).                                                         |
| sup_cup       | Should be used for the fee applicable to plastic cups, as per the SUP directive. Modifies the content of the basket in order to have correct financial information Bolt is sending an order to the POS system. See [order integration](#tag/Doc-Order-integration) for the flow            |
| sup_container | Should be used for the fee applicable to plastic food containers, as per the SUP directive. Modifies the content of the basket in order to have correct financial information Bolt is sending an order to the POS system. See [order integration](#tag/Doc-Order-integration) for the flow |

## Business tags and reserved SKUs

There are 2 types of tags:

-   business tags - tags that trigger a certain logic and may result in side effects
-   display tags - used only to display some information to the user (e.g. spicy)

The usage of some business tags may result in side effects regarding the structure of an order, like adding a new item, which may have a reserved SKU.

#### Available tags

| tag                        | description                                                                     |
| -------------------------- | ------------------------------------------------------------------------------- |
| spicy                      | Marks an item as spicy                                                          |
| spicy1                     | Marks an item with spiciness level 1 (mild)                                     |
| spicy2                     | Marks an item with spiciness level 2 (medium)                                   |
| spicy3                     | Marks an item with spiciness level 3 (hot)                                      |
| vegan                      | Marks an item as vegan                                                          |
| vegetarian                 | Marks an item as vegetarian                                                     |
| kosher                     | Marks an item as kosher                                                         |
| halal                      | Marks an item as halal                                                          |
| gluten_free                | Marks an item as gluten free                                                    |
| lactose_free               | Marks an item as lactose free                                                   |
| children                   | Marks an item as intended for children                                          |
| alco                       | Marks an item as containing alcohol                                             |
| age_restriction_alcohol_pl | Checkbox for alcohol added. Tagged items will be blurred. Only valid in Poland. |
| energy                     | Marks an item as an energy drink                                                |
| medical                    | Marks an item as a medical product                                              |
| tobacco                    | Marks an item as a tobacco product                                              |
| adult                      | Marks an item as an adult (18+) product                                         |
| packaging_fee              | Marks an item as a packaging fee item                                           |
| special_offer              | Marks an item as a special offer                                                |
| no_discounts               | Excludes an item from discounts                                                 |
| no_targeted_discount       | Excludes an item from targeted discounts                                        |
| double_deals               | Marks an item as participating in Double Deals promotions                       |
| donation                   | Marks an item as a donation item                                                |
| bulky                      | Marks an item as bulky                                                          |
| combo_special_item         | Marks an item as part of a combo offering                                       |

#### (Deprecated - Please use [Fees](#tag/Doc-Menu-integration/Fees) instead) Business tags

| tag            | description                                                                                                                                                                                                                                                                                                                  |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| bottle_deposit | Can be used when the bottle price of any drink is part of the price of the entire item but has a different VAT value. <br /> Modifies the content of the basket in order to have correct financial information Bolt is sending an order to the POS system. See [order integration](#tag/Doc-Order-integration) for the flow. |
| sup_cup        | Should be used to annotate items that include the extra price fee for the plastic cups subject to SUP directive. Modifies the content of the basket in order to have correct financial information Bolt is sending an order to the POS system. See [order integration](#tag/Doc-Order-integration) for the flow              |
| sup_container  | Should be used to annotate items that include the extra price fee for the plastic food containers subject to SUP directive. Modifies the content of the basket in order to have correct financial information Bolt is sending an order to the POS system. See [order integration](#tag/Doc-Order-integration) for the flow   |

#### Special offer tags

| tag              | description                                           |
| ---------------- | ----------------------------------------------------- |
| special_offer_5  | Marks a 5% discount (needed to activate a promotion)  |
| special_offer_10 | Marks a 10% discount (needed to activate a promotion) |
| special_offer_15 | Marks a 15% discount (needed to activate a promotion) |
| special_offer_20 | Marks a 20% discount (needed to activate a promotion) |
| special_offer_25 | Marks a 25% discount (needed to activate a promotion) |
| special_offer_30 | Marks a 30% discount (needed to activate a promotion) |
| special_offer_35 | Marks a 35% discount (needed to activate a promotion) |
| special_offer_40 | Marks a 40% discount (needed to activate a promotion) |
| special_offer_45 | Marks a 45% discount (needed to activate a promotion) |
| special_offer_50 | Marks a 50% discount (needed to activate a promotion) |

#### (Deprecated - Please use [Fees](#tag/Doc-Menu-integration/Fees) instead) Reserved SKUs

| sku            | description                                                                                                                                                  |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| bottle_deposit | Used by items that were added in the basket by after using the `bottle_deposit` tag. <br /> Do not use `bottle_deposit` tag in order to not receive this SKU |
| sup_cup        | Used by items that were added in the basket by using the `sup_cup` tag. <br /> Do not use `sup_cup` tag in order to not receive this SKU                     |
| sup_container  | Used by items that were added in the basket by using the `sup_container` tag. <br /> Do not use `sup_container` tag in order to not receive this SKU         |

<div style="padding: 1em; background-color: rgb(247, 149, 72); color: #ffffff;">
⚠️ IMPORTANT

Sending an empty tag array via API will delete any previously added tags. All relevant tags (business, discount, custom) should be included and sent together every time.

</div>
