The Item Modifier Groups API allows you to manage your item modifier groups. Item modifier groups gather individual menu items (or item modifiers) that can be used to modify, enhance, or specify existing menu items in an order. For example, a modifier group is called "Pizza toppings" and has the following modifier items: "extra cheese", "pepperoni", "mushrooms".
With the Item Modifier Groups API, you can:
It's important to note the following point before starting to code:
This article presents possible use cases and corresponding sample flows that your app can support. It provides a useful starting point as you plan your app's implementation.
If you have several pizzeria sites that use your app you might need to sync menu across those sites. For example, if there's a new item modifier group called "Extra Toppings", this change also needs to be reflected on other sites.
To update the pizza menu across all sites:
modifierGroup.name
and modifierGroup.modifiers
field values.item.modifierGroups
array.The following table shows field support for filters and sorting for the item modifier groups object:
Field | Supported Filters | Sortable |
---|---|---|
id | $eq , $ne , $in , $nin | Sortable |
createdDate | $eq , $ne , $gt , $lt , $gte , $lte | Sortable |
updatedDate | $eq , $ne , $gt , $lt , $gte , $lte | Sortable |
name | $eq , $ne , $in , $nin , $startsWith | Sortable |
modifiers | $exists | Sortable |
modifiers.id | $in , $nin , $hasSome | Sortable |
modifiers.modifiers.priceInfo.additionalCharge | $eq , $ne , $in , $nin , $hasSome | Sortable |
modifiers.preSelected | $eq , $ne , $in , $nin | Sortable |
rule | $exists | Sortable |
rule.required | $eq , $ne , $in , $nin | Sortable |
rule.minSelections | $eq , $ne | Sortable |
rule.maxSelections | $eq , $ne | Sortable |
Related content: API Query Language, Query Modifiers.
Modifier group ID.
Revision number, which increments by 1 each time the modifier group is updated. To prevent conflicting changes, the current revision must be passed when updating the modifier group. Ignored when creating a modifier group.
Date and time the modifier group was created.
Date and time the modifier group was updated.
Modifier group name.
Group of item modifiers.
Modifier group details.
Extended fields.
{
"id": "116a2e4d-1ddd-4947-8050-4aea8d0af2b4",
"revision": "1",
"createdDate": "2023-12-04T08:20:38.784Z",
"updatedDate": "2023-12-04T08:20:38.784Z",
"name": "Topping",
"modifiers": [
{
"id": "481135f7-1392-4a2e-ac6b-12fb0ef398b7",
"additionalChargeInfo": { "additionalCharge": "2.50" }
}
],
"rule": {
"mandatory": false,
"minSelections": 0,
"maxSelections": null
},
"extendedFields": null
}
This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.
Note: The Item Modifier Groups API only works with the Wix Restaurants Menus (New) app. Make sure you downloaded this app from Wix App Market.
Retrieves a list of up to 100 modifier groups.
Modifier group IDs.
Number of items to load.
Pointer to the next or previous page in the list of results.
You can get the relevant cursor token
from the pagingMetadata
object in the previous call's response.
Not relevant for the first request.
Retrieved modifier groups.
The metadata of the paginated results.
curl -X GET https://www.wixapis.com/restaurants/item-modifier-group/v1/modifier-groups \
-H 'Authorization: <AUTH>'
{
"modifierGroups": [
{
"id": "02042f01-58ab-441c-b5db-55f51c855a62",
"revision": "1",
"createdDate": "2023-12-03T21:23:33.861Z",
"updatedDate": "2023-12-03T21:23:33.861Z",
"name": "Topping",
"modifiers": [
{
"id": "481135f7-1392-4a2e-ac6b-12fb0ef398b7",
"additionalChargeInfo": { "additionalCharge": "2.50" }
},
{
"id": "68eddbbf-da8b-4b24-ac74-a5f6b38b6de6",
"additionalChargeInfo": { "additionalCharge": "0.00" }
}
],
"rule": {
"mandatory": false,
"minSelections": 0,
"maxSelections": null
}
},
{
"id": "0517e5d4-8fd3-4b28-a743-68cf631e534a",
"revision": "1",
"createdDate": "2023-12-03T21:23:33.861Z",
"updatedDate": "2023-12-03T21:23:33.861Z",
"name": "Topping",
"modifiers": [
{
"modifierId": "ef7dc1ed-06df-481a-8ecc-ad87ef9b6b0c",
"additionalChargeInfo": { "additionalCharge": "1.00" }
},
{
"modifierId": "869315e7-f1c8-428b-aff0-68bf2d7af067",
"additionalChargeInfo": { "additionalCharge": "1.50" }
},
{
"modifierId": "b719995f-fed6-469d-9330-4b9ea9662edf",
"additionalChargeInfo": { "additionalCharge": "2.00" }
}
],
"rule": {
"mandatory": false,
"minSelections": 0,
"maxSelections": null
}
},
{
"id": "1c1ca051-b460-4064-b7a2-5f9df47f2d3c",
"revision": "1",
"createdDate": "2023-12-03T21:23:33.861Z",
"updatedDate": "2023-12-03T21:23:33.861Z",
"name": "Sauces",
"modifiers": [
{
"modifierId": "ef7dc1ed-06df-481a-8ecc-ad87ef9b6b0c",
"additionalChargeInfo": { "additionalCharge": "0.00" }
},
{
"modifierId": "869315e7-f1c8-428b-aff0-68bf2d7af067",
"additionalChargeInfo": { "additionalCharge": "0.00" }
},
{
"modifierId": "b719995f-fed6-469d-9330-4b9ea9662edf",
"additionalChargeInfo": { "additionalCharge": "2.00" }
}
],
"rule": {
"mandatory": true,
"minSelections": 1,
"maxSelections": 1
}
}
],
"pagingMetadata": {
"count": 3,
"cursors": {},
"hasNext": false
}
}
This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.
Note: The Item Modifier Groups API only works with the Wix Restaurants Menus (New) app. Make sure you downloaded this app from Wix App Market.
Creates a modifier group.
To create multiple modifier groups at once, use Bulk Create Modifiers.
You can only call this method when authenticated as a Wix app or Wix user identity.
Modifier group details.
Modifier group.
Title: Create Modifier Group
curl -X POST https://www.wixapis.com/restaurants/item-modifier-group/v1/modifier-groups \
-H 'Authorization: <AUTH>' \
--data-binary '{
"modifierGroup": {
"name": "Topping",
"modifiers": [
{
"id": "481135f7-1392-4a2e-ac6b-12fb0ef398b7",
"additionalChargeInfo": {"additionalCharge": "2.50"}
},
{
"id": "68eddbbf-da8b-4b24-ac74-a5f6b38b6de6",
"additionalChargeInfo": {"additionalCharge": "0.00"}
}
],
"rule": {
"mandatory": false,
"minSelections": 0,
"maxSelections": null
}
}
}'
This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.
Note: The Item Modifier Groups API only works with the Wix Restaurants Menus (New) app. Make sure you downloaded this app from Wix App Market.
Retrieves a modifier group by the ID.
Modifier group ID.
Modifier group.
curl -X GET https://www.wixapis.com/restaurants/item-modifier-group/v1/modifier-groups/02042f01-58ab-441c-b5db-55f51c855a62 \
-H 'Authorization: <AUTH>'
{
"modifierGroup": {
"id": "02042f01-58ab-441c-b5db-55f51c855a62",
"revision": "1",
"createdDate": "2023-12-03T21:23:33.861Z",
"updatedDate": "2023-12-03T21:23:33.861Z",
"name": "Topping",
"modifiers": [
{
"id": "481135f7-1392-4a2e-ac6b-12fb0ef398b7",
"additionalChargeInfo": { "additionalCharge": "2.50" }
},
{
"id": "68eddbbf-da8b-4b24-ac74-a5f6b38b6de6",
"additionalChargeInfo": { "additionalCharge": "0.00" }
}
],
"rule": {
"mandatory": false,
"minSelections": 0,
"maxSelections": null
}
}
}
This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.
Note: The Item Modifier Groups API only works with the Wix Restaurants Menus (New) app. Make sure you downloaded this app from Wix App Market.
Deletes a modifier group.
You can only call this method when authenticated as a Wix app or Wix user identity.
Modifier group ID.
Title: Delete a modifier group
curl -X DELETE https://www.wixapis.com/restaurants/item-modifier-group/v1/modifier-groups/cbbf4358-292c-4e9e-a820-7e75b4551120 \
-H 'Authorization: <AUTH>'
This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.
Note: The Item Modifier Groups API only works with the Wix Restaurants Menus (New) app. Make sure you downloaded this app from Wix App Market.
Retrieves a list of modifier groups given the provided paging, filtering, and sorting. Up to 100 modifier groups can be returned per request. For a detailed list of supported operations, see the Supported Filters and Sorting article. To learn how to query modifier groups, see API Query Language.
Query options.
Retrieved modifier groups.
Metadata of the paginated results.
curl -X POST https://www.wixapis.com/restaurants/item-modifier-group/v1/modifier-groups/query \
-H 'Authorization: <AUTH>'
--data-binary '{
"query": {
"sort": [],
"filter": {
"name": "Topping"
}
}
}'
{
"modifierGroups": [
{
"id": "02042f01-58ab-441c-b5db-55f51c855a62",
"revision": "1",
"createdDate": "2023-12-03T21:23:33.861Z",
"updatedDate": "2023-12-03T21:23:33.861Z",
"name": "Topping",
"modifiers": [
{
"id": "481135f7-1392-4a2e-ac6b-12fb0ef398b7",
"additionalChargeInfo": { "additionalCharge": "2.50" }
},
{
"id": "68eddbbf-da8b-4b24-ac74-a5f6b38b6de6",
"additionalChargeInfo": { "additionalCharge": "0.00" }
}
],
"rule": {
"mandatory": false,
"minSelections": 0,
"maxSelections": null
}
},
{
"id": "0517e5d4-8fd3-4b28-a743-68cf631e534a",
"revision": "1",
"createdDate": "2023-12-03T21:23:33.861Z",
"updatedDate": "2023-12-03T21:23:33.861Z",
"name": "Topping",
"modifiers": [
{
"modifierId": "ef7dc1ed-06df-481a-8ecc-ad87ef9b6b0c",
"additionalChargeInfo": { "additionalCharge": "1.00" }
},
{
"modifierId": "869315e7-f1c8-428b-aff0-68bf2d7af067",
"additionalChargeInfo": { "additionalCharge": "1.50" }
},
{
"modifierId": "b719995f-fed6-469d-9330-4b9ea9662edf",
"additionalChargeInfo": { "additionalCharge": "2.00" }
}
],
"rule": {
"mandatory": false,
"minSelections": 0,
"maxSelections": null
}
}
],
"pagingMetadata": {
"count": 2,
"cursors": {},
"hasNext": false
}
}
This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.
Note: The Item API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from the Wix App Market.
Retrieves the number of modifier groups that match a specified filter.
If a filter isn't passed in the request, the endpoint returns the count of all modifier groups.
Filter for counting modifier groups.
Counted modifier groups.
There is 1 error with this status code:
See the entire list and learn more about Wix errors.
This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.
Note: The Item Modifier Groups API only works with the Wix Restaurants Menus (New) app. Make sure you downloaded this app from Wix App Market.
Updates a modifier group.
Each time a modifier group is updated, its revision increments by 1. The existing revision must be included when updating the modifier group. This ensures you're working with the latest modifier group information, and it prevents unintended overwrites.
You can only call this method when authenticated as a Wix app or Wix user identity.
Modifier group ID.
Modifier group to update.
Updated modifier group.
curl -X PATCH https://www.wixapis.com/restaurants/item-modifier-group/02042f01-58ab-441c-b5db-55f51c855a11?modifierGroupId=02042f01-58ab-441c-b5db-55f51c855a11 \
-H 'Authorization: <AUTH>' \
--data-binary '{
"modifierGroup": {
"id": "02042f01-58ab-441c-b5db-55f51c855a11",
"revision": "2",
"name": "Topping",
},
"mask": {
"paths": [
"name"
]
}
}'
{
"modifierGroup": {
"id": "02042f01-58ab-441c-b5db-55f51c855a11",
"revision": "1",
"createdDate": "2023-12-03T21:23:33.861Z",
"updatedDate": "2023-12-03T21:23:33.861Z",
"name": "Topping",
"modifiers": [
{
"id": "481135f7-1392-4a2e-ac6b-12fb0ef398b7",
"additionalChargeInfo": { "additionalCharge": "2.50" }
},
{
"id": "68eddbbf-da8b-4b24-ac74-a5f6b38b6de6",
"additionalChargeInfo": { "additionalCharge": "0.00" }
}
],
"rule": {
"mandatory": false,
"minSelections": 0,
"maxSelections": null
}
}
}
This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.
Note: The Item Modifier Groups API only works with the Wix Restaurants Menus (New) app. Make sure you downloaded this app from Wix App Market.
Creates multiple modifier groups.
You can only call this method when authenticated as a Wix app or Wix user identity.
Modifier groups details.
Whether to receive the created modifier groups in the response.
Information about the created modifier groups.
Metadata for the API call.
curl -X POST https://www.wixapis.com/restaurants/item-modifier-group/v1/bulk/modifier-groups/create \
-H 'Authorization: <AUTH>'
--data-binary '{
"modifierGroups": [
{
"name": "Topping",
"modifiers": [
{
"id": "481135f7-1392-4a2e-ac6b-12fb0ef398b7",
"additionalChargeInfo": {"additionalCharge": "2.50"}
},
{
"id": "68eddbbf-da8b-4b24-ac74-a5f6b38b6de6",
"additionalChargeInfo": {"additionalCharge": "0.00"}
}
],
"rule": {
"mandatory": false,
"minSelections": 0,
"maxSelections": null
}
},
{
"name": "Sides",
"modifiers": [
{
"id": "b23eba29-b831-4f1b-abfc-1ac4461b2cee",
"additionalChargeInfo": {"additionalCharge": "0.20}
},
{
"id": "b8bd35fc-9f62-4900-a62b-93c7040fef64",
"additionalChargeInfo": {"additionalCharge": "0.80"}
}
],
"rule": {
"mandatory": true,
"minSelections": 1,
"maxSelections": 3
}
}
],
"returnEntity": false
}'
{
"results": [
{
"itemMetadata": {
"id": "02042f01-58ab-441c-33db-55221c855c11",
"originalIndex": 0,
"success": true
}
},
{
"itemMetadata": {
"id": "02022fe1-58ab-ee1c-33db-45521c855e11",
"originalIndex": 1,
"success": true
}
}
],
"bulkActionMetadata": {
"totalSuccesses": 2,
"totalFailures": 0,
"undetailedFailures": 0
}
}
This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.
Note: The Item Modifier Groups API only works with the Wix Restaurants Menus (New) app. Make sure you downloaded this app from Wix App Market.
Updates multiple item modifier groups at once. This function supports partial updates. Each time a modifier group is updated, its revision increments by 1. The existing revision must be included when updating an item modifier group. This ensures you're working with the latest item information, and prevents unintended overwrites. Up to 100 modifier groups can be returned per request.
You can only call this method when authenticated as a Wix app or Wix user identity.
Modifier groups to update.
Whether to receive the updated modifier groups in the response.
Information about the updated modifier groups.
Metadata for the API call.
Title: Bulk update modifier groups
curl -X POST https://www.wixapis.com/restaurants/item-modifier-group/v1/bulk/modifiers-groups/update \
-H 'Authorization: <AUTH> \
--data-binary '{
"modifierGroups": [
{
"modifierGroup": {
"modifiers": [],
"id": "0e29cc7a-123c-4a7f-b9b3-b456cad20246",
"revision": "9",
"name": "sugar options"
},
"mask": {
"paths": [
"name"
]
}
},
{
"modifierGroup": {
"modifiers": [],
"id": "25878df0-f387-488f-8696-a023e3db0a2d",
"name": "Toppings",
"revision": "5"
},
"mask": {
"paths": [
"name"
]
}
}
],
"returnEntity": true
}'
This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.
Unique event ID. Allows clients to ignore duplicate webhooks.
Fully qualified domain name of the entity associated with the event. Expected wix.restaurants.menus.v1.item_modifier_group
.
Event name. Expected created
.
ID of the entity associated with the event.
Event timestamp.
Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).
If present, indicates the action that triggered the event.
Event information.
The data payload will include the following as an encoded JWT:
{
"data": {
"eventType": "wix.restaurants.menus.v1.item_modifier_group_created",
"instanceId": "<app-instance-id>",
"data": "<stringified-JSON>",
// The identity field is sent as a stringified JSON
"identity": {
"identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP
"anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR
"memberId": "<memberId>", // in case of MEMBER
"wixUserId": "<wixUserId>", // in case of WIX_USER
"appId": "<appId>" // in case of APP
}
}
}
{
"id": "420819d4-80ee-4a15-aa52-5d08ae786fa5",
"entityFqdn": "wix.restaurants.menus.v1.item_modifier_group",
"slug": "created",
"entityId": "0517e5d4-8fd3-4b28-a743-68cf631e534a",
"createdEvent": {
"entity": {
"id": "0517e5d4-8fd3-4b28-a743-68cf631e534a",
"revision": "1",
"createdDate": "2024-01-14T12:42:50.267Z",
"updatedDate": "2024-01-14T12:42:50.267Z",
"name": "Toppings",
"modifiers": [
{
"id": "481135f7-1392-4a2e-ac6b-12fb0ef398b7",
"additionalChargeInfo": { "additionalCharge": "2.50" }
},
{
"id": "68eddbbf-da8b-4b24-ac74-a5f6b38b6de6",
"additionalChargeInfo": { "additionalCharge": "0.00" }
}
],
"rule": {
"mandatory": false,
"minSelections": 0,
"maxSelections": null
}
}
},
"eventTime": "2024-01-14T12:42:50.316316270Z",
"triggeredByAnonymizeRequest": false,
"entityEventSequence": "1"
}
This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.
Unique event ID. Allows clients to ignore duplicate webhooks.
Fully qualified domain name of the entity associated with the event. Expected wix.restaurants.menus.v1.item_modifier_group
.
Event name. Expected deleted
.
ID of the entity associated with the event.
Event timestamp.
Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).
If present, indicates the action that triggered the event.
Event information.
The data payload will include the following as an encoded JWT:
{
"data": {
"eventType": "wix.restaurants.menus.v1.item_modifier_group_deleted",
"instanceId": "<app-instance-id>",
"data": "<stringified-JSON>",
// The identity field is sent as a stringified JSON
"identity": {
"identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP
"anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR
"memberId": "<memberId>", // in case of MEMBER
"wixUserId": "<wixUserId>", // in case of WIX_USER
"appId": "<appId>" // in case of APP
}
}
}
This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.
Unique event ID. Allows clients to ignore duplicate webhooks.
Fully qualified domain name of the entity associated with the event. Expected wix.restaurants.menus.v1.item_modifier_group
.
Event name. Expected updated
.
ID of the entity associated with the event.
Event timestamp.
Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).
If present, indicates the action that triggered the event.
Event information.
The data payload will include the following as an encoded JWT:
{
"data": {
"eventType": "wix.restaurants.menus.v1.item_modifier_group_updated",
"instanceId": "<app-instance-id>",
"data": "<stringified-JSON>",
// The identity field is sent as a stringified JSON
"identity": {
"identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP
"anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR
"memberId": "<memberId>", // in case of MEMBER
"wixUserId": "<wixUserId>", // in case of WIX_USER
"appId": "<appId>" // in case of APP
}
}
}
{
"id": "ce9768c8-5b98-4e66-be70-7b00d49e0c68",
"entityFqdn": "wix.restaurants.menus.v1.item_modifier",
"slug": "updated",
"entityId": "f2409ddd-5408-48d7-bc8d-e1a10750ecfa",
"updatedEvent": {
"currentEntity": {
"id": "0517e5d4-8fd3-4b28-a743-68cf631e534a",
"revision": "2",
"createdDate": "2024-01-14T12:42:50.267Z",
"updatedDate": "2024-01-14T12:42:50.267Z",
"name": "Sides",
"modifiers": [
{
"id": "481135f7-1392-4a2e-ac6b-12fb0ef398b7",
"additionalChargeInfo": { "additionalCharge": "2.50" }
},
{
"id": "68eddbbf-da8b-4b24-ac74-a5f6b38b6de6",
"additionalChargeInfo": { "additionalCharge": "0.00" }
}
],
"rule": {
"mandatory": false,
"minSelections": 0,
"maxSelections": null
}
},
"eventTime": "2024-01-14T12:42:53.076984076Z",
"triggeredByAnonymizeRequest": false,
"entityEventSequence": "2"
}
}