Added
Minimum and maximum different options
15 days ago
Modifier groups now support limits on how many different options a customer can select. These limits are separate from the existing quantity limits (min, max, multiMin, multiMax).
| Field | Description | Type |
|---|---|---|
minUniqueOptions | Minimum number of distinct options that must be selected | integer |
maxUniqueOptions | Maximum number of distinct options that can be selected | integer |
Example
A 10-wing combo offers 5 sauces, but customers can choose no more than 3 different ones. The channel UI should prevent customers from e.g. selecting a fourth sauce.
%%{init: { "theme": "base", "themeVariables": { "fontSize": "13px", "background": "transparent", "lineColor": "#64748b", "edgeLabelBackground": "transparent", "actorBkg": "#038851", "actorTextColor": "#ffffff", "actorBorder": "#026139", "actorLineColor": "#94a3b8", "signalColor": "#64748b", "signalTextColor": "#059669", "noteBkgColor": "#e6f4ee", "noteTextColor": "#02502f", "noteBorderColor": "#038851", "activationBkgColor": "#c6ebdc", "activationBorderColor": "#026139", "sequenceNumberColor": "#ffffff" }, "flowchart": { "nodeSpacing": 25, "rankSpacing": 35, "padding": 8, "useMaxWidth": true }, "sequence": { "useMaxWidth": true, "actorMargin": 70, "width": 150, "height": 60, "boxMargin": 12, "noteMargin": 14, "messageMargin": 50, "diagramMarginX": 20, "diagramMarginY": 20, "actorFontSize": 18, "actorFontWeight": 700, "noteFontSize": 15, "noteFontFamily": "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace", "messageFontSize": 16, "messageFontWeight": 700, "noteAlign": "left", "mirrorActors": false } }}%%
flowchart TD
Product["<b>10 Wings - choice of 5 sauces</b>"]
Rules["<div style='text-align:left;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace'><b>Choose your Sauce</b><br/>{<br/>#nbsp;#nbsp;#quot;min#quot;: 10,<br/>#nbsp;#nbsp;#quot;max#quot;: 10,<br/>#nbsp;#nbsp;#quot;multiMax#quot;: 10,<br/>#nbsp;#nbsp;#quot;minUniqueOptions#quot;: 1,<br/>#nbsp;#nbsp;#quot;maxUniqueOptions#quot;: 3<br/>}</div>"]
S1["<b>Selection</b><br/>🥭 ×10 Mango"]
S2["<b>Selection</b><br/>🥭 ×5 Mango<br/>🍋 ×2 Lemon & Pepper<br/>🌶️ ×3 Korean"]
S3["<b>Selection</b><br/>🥭 ×4 Mango<br/>🍋 ×2 Lemon & Pepper<br/>🌶️ ×2 Korean<br/>🔥 ×2 BBQ"]
OK1["<b>✅ Permitted</b><br/>×1 different sauce"]
OK2["<b>✅ Permitted</b><br/>×3 different sauces"]
NO["<b>❌ Not Permitted</b><br/>×4 different sauces"]
Product --> Rules
Rules --> S1
Rules --> S2
Rules --> S3
S1 --> OK1
S2 --> OK2
S3 --> NO
classDef product fill:#fdf1dc,stroke:#8a7a4f,color:#3a2f1a,stroke-width:2px;
classDef modgroup fill:#038851,stroke:#026139,color:#ffffff,stroke-width:2px;
classDef modifier fill:#EBFBF1,stroke:#8fc9a8,color:#02502f,stroke-width:2px;
classDef accepted fill:#c6ebdc,stroke:#026139,color:#02502f,stroke-width:2px;
classDef rejected fill:#fde8e8,stroke:#b91c1c,color:#7f1d1d,stroke-width:2px;
class Product product;
class Rules modgroup;
class S1,S2,S3 modifier;
class OK1,OK2 accepted;
class NO rejected;
Product config as shown on Deliverect
Menu Model Update ( see Menu Update Webhook and GET Store Menu)
"6aaa0baf19b0b96fd78acaea": {
"_id": "6aaa0baf19b0b96fd78acaea",
"name": "Choose your Flavour",
"max": 12, // at most 12 selections in total
"min": 12, // at least 12 selections in total
"multiMax": 12, // up to 12 of any one flavour
"multiMin": 3, // at least 3 of each flavour chosen
"minUniqueOptions": 1, // at least 1 different flavour
"maxUniqueOptions": 4, // at most 4 different flavours
POS Product Sync Update (see Insert Products)
POS Product Sync Update (see Insert Products)
{
"name": "Choose your Flavour",
"max": 12, // at most 12 selections in total
"min": 12, // at least 12 selections in total
"multiMax": 12, // up to 12 of any one flavour
"multiMin": 3, // at least 3 of each flavour chosen
"multiply": 0,
"minUniqueOptions": 1, // at least 1 different flavour
"maxUniqueOptions": 4, // at most 4 different flavours
"productType": 3,
"subProducts": [
"PROD-0035",
"PROD-0018",
"PROD-0019"
]
},