This guide will be removed on April 29, 2022. Please use our new, easier-to-use Toast technical documentation site. All updated content is on the new site.

Applying a combo discount

When the Toast platform applies a combo discount, it adds a comboItems object to the AppliedDiscounts object. The comboItems object identifies the menu item selections that are part of the discount.

For example, the following order contains a single menu item selection for three cups of soup. The applied combo discount offers two cups of soup for a reduced price.

{  
   "entityType":"Order",

   [contents omitted]

   },
   "checks":[  
      {  
         "entityType":"Check",
         "selections":[  
           {
             "entityType": "MenuItemSelection",
             "itemGroup": {
               "guid": "e0da05d4-db71-44ed-805b-95284d22df73",
               "entityType": "MenuGroup"
             },
             "item": {
               "entityType": "MenuItem",
               "guid": "a8b4439d-185d-41df-8ad3-2ff4f7dfa6ec"1
             },
             "quantity": 3,2
             "modifiers": []
           }
         ],
         "appliedDiscounts": [
           {
             "discount": {
                "guid": "7e345df5-9b3c-4e5a-9fbe-6183c56d2f88"3
             }
           }
        ]
      }
   ]
}

1

The GUID of the menu item selection for the check. The specific menu items must match the configuration of the combo discount to trigger the orders API to apply that discount.

2

The number of menu items in the check. The number of menu items must match the configuration of the combo discount to trigger the orders API to apply that discount.

3

The GUID for a combo discount that is configured for your restaurant. You apply combo discounts in the appliedDiscounts value for the check object.

In the returned order information, there are two MenuItemSelection objects.

  • One MenuItemSelection object is for two cups of soup. These are the two cups of soup that have the combo discount applied.

  • The other MenuItemSelection object is for the third cup of soup, which is not discounted.

In the AppliedDiscounts object for the check, the comboItems object points to the MenuItemSelection object for the two cups of soup.

{
  "entityType": "Order",

  [contents omitted]

  "checks": [
    {
      "entityType": "Check",

      [contents omitted]

      "appliedDiscounts": [1
        {
          "guid": "3b97af77-bb9f-4f83-87e1-471a1dd984cd",
          "entityType": "MultiItemAppliedDiscount",
          "approver": null,
          "processingState": null,
          "loyaltyDetails": null,
          "name": "Eat more soup.",
          "comboItems": [
            {
              "guid": "b059bf10-2d4b-4aba-808a-46d0ecfa1b71",2
              "entityType": "MenuItemSelection"
            }
          ],
          "discountAmount": 2.98,
          "discount": {
            "guid": "b1fba60e-f119-45ce-81ed-1e030c8e8705",3
            "entityType": "Discount"
          },
          "triggers": [
            {
              "selection": {
                "guid": "13c704da-d8bd-4a72-8df3-d340efb1e0d3",4
                "entityType": "MenuItemSelection"
              },
              "quantity": 25
            }
          ],
          "appliedPromoCode": null
        }
      ],
      "totalAmount": 25.67,
      "selections": [
        {
          "guid": "13c704da-d8bd-4a72-8df3-d340efb1e0d3",6
          "entityType": "MenuItemSelection",
          "itemGroup": {
            "guid": "46c963b8-a4c8-4cd0-9b7e-e1c431ed0b53",
            "entityType": "MenuGroup"
          },
          "item": {
            "guid": "a8b4439d-185d-41df-8ad3-2ff4f7dfa6ec",7
            "entityType": "MenuItem"
          },
          "quantity": 1,8
          "preDiscountPrice": 8.99,
          "appliedDiscounts": [],9

          [contents omitted]

          "price": 8.99
        },
        {
          "guid": "b059bf10-2d4b-4aba-808a-46d0ecfa1b71",
          "entityType": "MenuItemSelection",
          "itemGroup": {
            "guid": "46c963b8-a4c8-4cd0-9b7e-e1c431ed0b53",
            "entityType": "MenuGroup",
            "externalId": null
          },
          "item": {
            "guid": "a8b4439d-185d-41df-8ad3-2ff4f7dfa6ec",10
            "entityType": "MenuItem",
            "externalId": null
          },
          "quantity": 2,11
          "preDiscountPrice": 17.98,12
          "appliedDiscounts": [],13
          
          [contents omitted]
          
          "price": 1514
        }
      ]

      [contents omitted]

    }
  ]

[contents omitted]

}

1

You apply a combo discount in the appliedDiscounts value of the Check object in an order. The response data for a check with a combo discount includes the discount information in the appliedDiscounts value for the Check.

2

The GUID of the MenuItemSelection that the combo discount is applied to.

3

The GUID of the combo discount.

4

The GUID of the MenuItemSelection that contains the menu items that qualify for the combo discount.

5

The number of menu items that qualify for the combo discount. For example, the combo discount in this example applies to two cups of soup.

6

The GUID that the Toast platform assigned to a menu item selection in a check. You can use this GUID to determine which MenuItemSelection triggered a discount.

7

The GUID of the specific menu item for this selection.

8

The quantity of the menu items in this MenuItemSelection object.

The number of items in the input data for this order was three. This example response data splits the original MenuItemSelection into two groups. The quantity of 1 in this MenuItemSelection object is not included in the combo discount.

9

The orders API reports combo discount information in the appliedDiscounts value for the Check. The appliedDiscounts value for the menu item selection is empty.

10

The GUID of the specific menu item for this selection. This matches the menu item configured in the combo discount. In this example, the specific menu item is a cup of soup.

11

The quantity of the menu items in this MenuItemSelection object.

The number of items in the input data for this order was three. This example response data splits the original MenuItemSelection into two groups. The quantity of 2 in this MenuItemSelection object includes the two cups of soup that are configured in the example combo discount.

12

The price of the two menu items before the combo discount is applied.

13

The orders API reports combo discount information in the appliedDiscounts value for the Check. The appliedDiscounts value for the menu item is empty.

14

The price of the two menu items after the combo discount is applied.