---
updatedAt: 2026-08-17T14:26:49.000Z
agentTools:
  projectIndex: https://developers.deliverect.com/v1.1-restaurants/llms.txt
---

# How to configure Price Levels

## Introduction

All Product and Modifier items include a base `"price"` field. Optionally, additional prices can be defined using `"priceLevels"` in order to support different pricing for specific ordering channels and  menu fulfilment type.

## Format

A `"priceLevels"` object for a product or modifier should include:

* A price level property name which will be it's unique identifier.
* An corresponding integer value defining the price to apply

The price level identifier set must also be defined in a `"priceLevels"` array, where each entry requires:

* `"posId"` – this is the unique identifier referenced in product and modifier price levels.
* `"name"` – a descriptive label which will be displayed in channel settings.

When configured as in below example, price levels can be mapped via channel link settings to a specified menu fulfillment type e.g. a 'First Party' channel can have a unique price level for each 'Delivery' , 'Pickup' and 'Eat-in' menus and is configured in a channel mapping process ia described below.

<HTMLBlock>{`
<div class="callout-banner callout-banner--important">
  <span class="callout-icon"><i class="fa-regular fa-triangle-exclamation"></i></span>
  <p>Ensure the same <code>"posId"</code> values are used across different locations in the same account<br></p>
</div>
`}</HTMLBlock>

### Example

In the example below, a product will be sold at different prices when correctly mapped on the ordering channel:

```json Example product
{
    "products": [
        {
            "name": "Ginger Beer",
            "productType": 1,
            "plu": "DRNK-03",
            "price": 350,
            "priceLevels": {
                "TA": 350,
                "DL": 400,
                "1PO": 300
            }
        }
    ],
    "priceLevels": [
        {
            "name": "Takeaway",
            "posId": "TA"
        },
        {
            "name": "Delivery",
            "posId": "DL"
        },
        {
            "name": "First Party",
            "posId": "1PO"
        }
    ]
}
```

<HTMLBlock>{`
<div class="callout-banner callout-banner--neutral">
  <span class="callout-icon"><i class="fa-regular fa-square-info"></i></span>
  <p>
    <strong>Pricing Hierarchy</strong><br>
 If Price Levels and Price 'overloads' apply to the same item, overloads will always be applied instead.
  </p>
</div>
`}</HTMLBlock>

## Configure Price Levels

Once you have sent price levels from a POS, you can follow these steps to configure them for a channel.

**Step 1.** [Go to your customer account on staging](https://developers.deliverect.com/docs/staging-and-production-environment).

***

**Step 2.** Select **Locations** in the sidebar **①** and then the **Edit** button for the channel **②**.

<Image src="https://files.readme.io/8497f10-guide_pricelevels_1.png" alt="Highlights how to edit a location" align="center" border={true} />

***

**Step 3.** In the **POS settings** section, select the price levels sent by the POS in the **Price Level** fields.

<Image src="https://files.readme.io/42def0d-guide_pricelevels_2.png" alt="highlights how to select price levels for delivery, takeaway and eat-in" align="center" border={true} />

***

**Step 4.** Select the Save button at the bottom of the page.

**Step 5.&#x20;**&#x56;erify the configuration by previewing menus and switching between channels.

<br />

##