{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/toast/refs/heads/main/json-schema/menus-pricing-rules-schema.json", "title": "PricingRules", "description": "The PricingRules object is a multi-use object that provides pricing rules for:\n * A menu item or modifier option item reference that uses the Time Specific Price or Size Price pricing strategy.\n * A modifier group that uses the Size Price, Sequence Price, or Size/Sequence Price pricing strategy.\n", "type": "object", "properties": { "timeSpecificPricingRules": { "description": "An array of `TimeSpecificPrice` objects that define the time-specific prices for a menu item or modifier option item reference that uses the Time Specific Price pricing strategy. If the menu item or modifier option item reference does not use time-specific prices, this array is empty.\n", "type": "array", "items": { "$ref": "#/definitions/TimeSpecificPrice" } }, "sizeSpecificPricingGuid": { "description": "The GUID of a Size modifier group that defines sizes and prices for a menu item or a modifier option item reference that uses the Size Price pricing strategy.\n\nIf the menu item or modifier option item reference does not use the Size Price pricing strategy, then `sizeSpecificPricingGuid` is null.\n\nThe Toast POS system automatically creates a Size modifier group when you choose the Size Price pricing strategy for a menu item or modifier option item reference and stores the sizes and prices you specify in it. You use the `sizeSpecificPricingGuid` value to locate the correct Size modifier group to use when pricing a menu item or modifier option item reference that uses size pricing. In the JSON fragment below, you can see that the Cheese Pizza menu item uses the SIZE_PRICE pricing strategy and the Size modifier group where the sizes and prices for Cheese Pizza are defined has a GUID that ends in `31b0`.\n\n```\n{\n \"restaurantGuid\": \"2071fb81-988b-4d75-b8dc-c5c17cff9706\",\n ...\n \"menus\": [\n {\n \"name\": \"Dinner\",\n \"guid\": \"ddd681de-3c12-4d45-b8b1-a5b2ea898210\",\n ...\n \"menuGroups\": [\n {\n \"name\": \"Pizza\",\n \"guid\": \"dc868006-919a-4950-a4cc-3a03f9770fd7\",\n ...\n \"menuItems\": [\n {\n \"name\": \"Cheese Pizza\",\n \"guid\": \"95c5d500-8d92-46f2-bec4-fb2a42a46621\",\n ...\n \"price\": null,\n \"pricingStrategy\": \"SIZE_PRICE\",\n \"pricingRules\": {\n \"timeSpecificPricingRules\": [],\n \"sizeSpecificPricingGuid\": \"23c02762-9d6a-4d3f-a298-71c989bf31b0\",\n \"sizeSequencePricingRules\": []\n },\n ...\n \"modifierGroupReferences\": [\n 2,\n 6,\n ...\n ],\n ...\n }\n ]\n }\n ]\n }\n ],\n \"modifierGroupReferences\": {\n ...\n \"2\": {\n \"referenceId\": 2,\n \"name\": \"Size\",\n \"guid\": \"23c02762-9d6a-4d3f-a298-71c989bf31b0\",\n ...\n \"pricingStrategy\": \"NONE\",\n \"pricingRules\": null,\n ...\n \"modifierOptionReferences\": [\n 12,\n 13\n ],\n ...\n },\n ...\n },\n \"modifierOptionReferences\": {\n ...\n \"12\": {\n \"referenceId\": 12,\n \"name\": \"Small\",\n \"guid\": \"352244f2-a952-4a3a-a3ae-7775fa221ce7\",\n ...\n \"price\": 8.0,\n \"pricingStrategy\": \"BASE_PRICE\",\n \"pricingRules\": null,\n ...\n \"modifierGroupReferences\": []\n },\n \"13\": {\n \"referenceId\": 13,\n \"name\": \"Large\",\n \"guid\": \"4ff89bca-b448-4892-bc4c-62c37a28ac44\",\n ...\n \"price\": 10.0,\n \"pricingStrategy\": \"BASE_PRICE\",\n \"pricingRules\": null,\n ...\n \"modifierGroupReferences\": []\n }\n ...\n }\n}\n```\n\n\nWhen the `PricingRules` object appears in the context of a modifier\ngroup, the `sizeSpecificPricingGuid` value it contains is also used to\nfind matching sizes between menu items and any modifier options that\nuse the Size Price or Size/Sequence Pricing pricing strategies (for\nexample, toppings on a small pizza cost $1 while toppings on a large\npizza cost $2). In this scenario, the Toast POS system locates the\nmodifier option size that matches the menu item size and uses the\nprice defined for that size of the modifier option. The sizes for the\nmenu item are defined in the Size modifier group specified by the\n`sizeSpecificPricingGuid` value. The sizes for the modifier options\nare defined in objects contained in the `sizeSequencePricingRules`\narray that is contained in the modifier group's `PricingRules` object.\nSizes are considered matching when their names are identical. For\ndetailed information on the **Size Price** and **Size/Sequence Price**\npricing strategies, see [Pricing\nStrategies](https://doc.toasttab.com/doc/platformguide/adminPricingStrategies.html)\nin the _Toast Platform Guide_.\n\nIn the example below, the Cheese Pizza menu item and the Toppings\nmodifier group use the `SIZE_PRICE` pricing strategy. The menu item\nsizes and prices are defined in the Size modifier group with a GUID\nending in `31b0`. The sizes and prices for the modifier options are\ndefined in the `sizeSequencePricingRules` value that is a child of the\nToppings modifier group.\n\n```\n{\n \"restaurantGuid\": \"2071fb81-988b-4d75-b8dc-c5c17cff9706\",\n ...\n \"menus\": [\n {\n \"name\": \"Dinner\",\n \"guid\": \"ddd681de-3c12-4d45-b8b1-a5b2ea898210\",\n ...\n \"menuGroups\": [\n {\n \"name\": \"Pizza\",\n \"guid\": \"dc868006-919a-4950-a4cc-3a03f9770fd7\",\n ...\n \"menuItems\": [\n {\n \"name\": \"Cheese Pizza\",\n \"guid\": \"95c5d500-8d92-46f2-bec4-fb2a42a46621\",\n ...\n \"price\": null,\n \"pricingStrategy\": \"SIZE_PRICE\",\n \"pricingRules\": {\n \"timeSpecificPricingRules\": [],\n \"sizeSpecificPricingGuid\": \"23c02762-9d6a-4d3f-a298-71c989bf31b0\",\n \"sizeSequencePricingRules\": []\n },\n ...\n \"modifierGroupReferences\": [\n 2,\n 3,\n ...\n ],\n ...\n }\n ]\n }\n ]\n }\n ],\n \"modifierGroupReferences\": {\n ...\n \"2\": {\n \"referenceId\": 2,\n \"name\": \"Size\",\n \"guid\": \"23c02762-9d6a-4d3f-a298-71c989bf31b0\",\n ...\n \"pricingStrategy\": \"NONE\",\n \"pricingRules\": null,\n ...\n \"modifierOptionReferences\": [\n 12,\n 13\n ],\n ...\n },\n \"3\": {\n \"referenceId\": 3,\n \"name\": \"Toppings\",\n \"guid\": \"58b79986-f88f-411d-ba18-14b1e2441e9d\",\n ...\n \"pricingStrategy\": \"SIZE_PRICE\",\n \"pricingRules\": {\n \"timeSpecificPricingRules\": [],\n \"sizeSpecificPricingGuid\": \"23c02762-9d6a-4d3f-a298-71c989bf31b0\",\n \"sizeSequencePricingRules\": [\n {\n \"sizeName\": \"Small\",\n \"sizeGuid\": \"352244f2-a952-4a3a-a3ae-7775fa221ce7\",\n \"sequencePrices\": [\n {\n \"sequence\": 1,\n \"price\": 2.0\n }\n ]\n },\n {\n \"sizeName\": \"Large\",\n \"sizeGuid\": \"4ff89bca-b448-4892-bc4c-62c37a28ac44\",\n \"sequencePrices\": [\n {\n \"sequence\": 1,\n \"price\": 4.0\n }\n ]\n }\n ]\n },\n ...\n \"modifierOptionReferences\": [\n 10,\n 11\n ],\n ...\n },\n ...\n },\n \"modifierOptionReferences\": {\n ...\n \"10\": {\n \"referenceId\": 10,\n \"name\": \"Mushrooms\",\n \"guid\": \"fa24fee9-76c4-40ba-ae3c-7dfccafdd8d3\",\n ...\n \"price\": null,\n \"pricingStrategy\": \"GROUP_PRICE\",\n \"pricingRules\": null,\n ...\n \"modifierGroupReferences\": []\n },\n \"11\": {\n \"referenceId\": 11,\n \"name\": \"Onions\",\n \"guid\": \"afee6be7-8280-4c69-a170-9fdf4c76bf7b\",\n ...\n \"price\": null,\n \"pricingStrategy\": \"GROUP_PRICE\",\n \"pricingRules\": null,\n ...\n \"modifierGroupReferences\": []\n },\n \"12\": {\n \"referenceId\": 12,\n \"name\": \"Small\",\n \"guid\": \"352244f2-a952-4a3a-a3ae-7775fa221ce7\",\n ...\n \"price\": 8.0,\n \"pricingStrategy\": \"BASE_PRICE\",\n \"pricingRules\": null,\n ...\n \"modifierGroupReferences\": []\n },\n \"13\": {\n \"referenceId\": 13,\n \"name\": \"Large\",\n \"guid\": \"4ff89bca-b448-4892-bc4c-62c37a28ac44\",\n ...\n \"price\": 10.0,\n \"pricingStrategy\": \"BASE_PRICE\",\n \"pricingRules\": null,\n ...\n \"modifierGroupReferences\": []\n },\n ...\n }\n} \n``` \n", "type": "string", "x-nullable": true }, "sizeSequencePricingRules": { "type": "array", "description": "An array of `SizeSequencePricingRule` objects that define the prices for the modifier options in a modifier group that uses the Size Price, Sequence Price, or Size/Sequence Pricing pricing strategy. If the modifier group does not use one of these pricing strategies, this array is empty.\n", "items": { "$ref": "#/definitions/SizeSequencePricingRule" } } } }