Options and variant are how we modify items to add or subtract detail, without requiring a completely new menu item. For instance, it would be quite a pain if you needed a separate menu item for a 'Flat White' and say, a 'Flat White with One Sugar'. As you could imagine that would get out of hand pretty quick.
Here's an example of a menu item including options and variants.
{
"name": "Toasted Sourdough & Eggs",
"tags": [
"Breakfast",
"Lunch"
],
"posId": "sourdough_eggs",
"options": [
{
"max": "1",
"min": "1",
"name": "How would like the eggs cooked?",
"posId": "egg_cook_type",
"variants": [
{
"name": "Poached",
"posId": "poached_egg",
"price": "10"
},
{
"name": "Scrambled",
"posId": "scrambled_egg",
"price": "10"
},
{
"name": "Fried",
"posId": "fried_egg",
"price": "10"
},
{
"name": "Hard Boiled",
"posId": "hard_boiled_eggs",
"price": "10"
}
]
},
{
"max": "3",
"min": "0",
"name": "Extras",
"posId": "egg_extras",
"variants": [
{
"name": "Bacon",
"posId": "extra_bacon",
"price": "200"
},
{
"name": "Sliced Avocado",
"posId": "extra_sliced_avocado",
"price": "420"
},
{
"name": "Chorizo",
"posId": "extra_chorizo",
"price": "420"
}
]
}
],
"surcounts": [],
"unitPrice": "1100",
"description": "Just ye old classic"
}
In this case, on the 'Toasted Sourdough & Eggs' item, there are two options: One is the cooking method of the eggs, which is mandatory. Two, is optional extras such as chorizo and bacon to go with your eggs, at a fee of course.
More information can be found about variants here.