> Portal Navigation: > > - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version. > - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages). > - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`). > - Top-level index of all portals: https://dev.wix.com/docs/llms.txt > - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt # BulkUpdateModifierGroups # Package: items # Namespace: ModifierGroupsService # Method link: https://dev.wix.com/docs/api-reference/business-solutions/restaurants/menus/items/item-modifier-groups/bulk-update-modifier-groups.md ## Permission Scopes: Manage Restaurants - all permissions: SCOPE.RESTAURANTS.MEGA-SCOPES ## Introduction > **Note:** The Item Modifier Groups API only works with the Wix Restaurants Menus app. Make sure you downloaded this app from [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). 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. --- ## REST API ### Schema ``` Method: bulkUpdateModifierGroups Description: > **Note:** The Item Modifier Groups API only works with the Wix Restaurants Menus app. Make sure you downloaded this app from [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). 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. URL: https://www.wixapis.com/restaurants/menus/v1/bulk/modifiers-groups/update Method: POST # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present. Required parameters: modifierGroups, modifierGroups.modifierGroup.id, modifierGroups.modifierGroup.revision Method parameters: param name: modifierGroups | type: array | description: Modifier groups to update. | required: true - name: modifierGroup | type: ModifierGroup | description: Modifier group to update. - name: id | type: string | description: Modifier group GUID. | required: true - name: revision | type: string | description: 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. | required: true - name: name | type: string | description: Modifier group name. - name: modifiers | type: array | description: Group of item modifiers. - name: id | type: string | description: Item modifier GUID. - name: preSelected | type: boolean | description: Whether the item modifier is pre-selected. Default: `false`. - name: additionalChargeInfo | type: AdditionalChargeInfo | description: Item modifier price details. - name: additionalCharge | type: string | description: Additional charge for the item modifier. A value of `0` means the item modifier is free. - name: rule | type: Rule | description: Modifier group details. - name: required | type: boolean | description: Whether the items from the modifier group must be selected. - name: minSelections | type: integer | description: Minimum number of item modifiers a site visitor must select. The value must be lower or equal to the available item modifiers in the group. Default: `0`. - name: maxSelections | type: integer | description: Maximum number of item modifiers a site visitor may select. Must be greater than or equal to the value of `minSelections`. - name: extendedFields | type: ExtendedFields | description: Extended fields. - name: namespaces | type: object | description: Extended field data. Each key corresponds to the namespace of the app that created the extended fields. The value of each key is structured according to the schema defined when the extended fields were configured. You can only access fields for which you have the appropriate permissions. Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md). - name: mask | type: | description: Explicit list of fields to update. param name: returnEntity | type: returnEntity | description: Whether to receive the updated modifier groups in the response. Return type: BulkUpdateModifierGroupsResponse - name: results | type: array | description: Information about the updated modifier groups. - name: itemMetadata | type: ItemMetadata | description: Metadata for group modifier update. - name: id | type: string | description: Item GUID. Should always be available, unless it's impossible (for example, when failing to create an item). - name: originalIndex | type: integer | description: Index of the item within the request array. Allows for correlation between request and response items. - name: success | type: boolean | description: Whether the requested action was successful for this item. When `false`, the `error` field is populated. - name: error | type: ApplicationError | description: Details about the error in case of failure. - name: code | type: string | description: Error code. - name: description | type: string | description: Description of the error. - name: data | type: object | description: Data related to the error. - name: modifierGroup | type: ModifierGroup | description: Updated modifier group. Only returned if `returnEntity` is set to `true`. - name: id | type: string | description: Modifier group GUID. - name: revision | type: string | description: 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. - name: createdDate | type: string | description: Date and time the modifier group was created. - name: updatedDate | type: string | description: Date and time the modifier group was updated. - name: name | type: string | description: Modifier group name. - name: modifiers | type: array | description: Group of item modifiers. - name: id | type: string | description: Item modifier GUID. - name: preSelected | type: boolean | description: Whether the item modifier is pre-selected. Default: `false`. - name: additionalChargeInfo | type: AdditionalChargeInfo | description: Item modifier price details. - name: additionalCharge | type: string | description: Additional charge for the item modifier. A value of `0` means the item modifier is free. - name: rule | type: Rule | description: Modifier group details. - name: required | type: boolean | description: Whether the items from the modifier group must be selected. - name: minSelections | type: integer | description: Minimum number of item modifiers a site visitor must select. The value must be lower or equal to the available item modifiers in the group. Default: `0`. - name: maxSelections | type: integer | description: Maximum number of item modifiers a site visitor may select. Must be greater than or equal to the value of `minSelections`. - name: extendedFields | type: ExtendedFields | description: Extended fields. - name: namespaces | type: object | description: Extended field data. Each key corresponds to the namespace of the app that created the extended fields. The value of each key is structured according to the schema defined when the extended fields were configured. You can only access fields for which you have the appropriate permissions. Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md). - name: businessLocationIds | type: array | description: IDs of the business locations ([SDK](https://dev.wix.com/docs/sdk/backend-modules/restaurants/wix-restaurants-new/about-business-locations.md) | [REST](https://dev.wix.com/docs/rest/business-solutions/restaurants/wix-restaurants-new/about-business-locations.md)) where these item modifier groups are available. - name: bulkActionMetadata | type: BulkActionMetadata | description: Metadata for the API call. - name: totalSuccesses | type: integer | description: Number of items that were successfully processed. - name: totalFailures | type: integer | description: Number of items that couldn't be processed. - name: undetailedFailures | type: integer | description: Number of failures without details because detailed failure threshold was exceeded. ``` ### Examples ### BulkUpdateModifierGroups ```curl ~~~cURL Title: Bulk update modifier groups ~~~ ``` --- ## JavaScript SDK ### Schema ``` Method: wixClientAdmin.items.ModifierGroupsService.bulkUpdateModifierGroups(modifierGroups, options) Description: > **Note:** The Item Modifier Groups API only works with the Wix Restaurants Menus app. Make sure you downloaded this app from [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). 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. # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present. Required parameters: modifierGroups, modifierGroups.modifierGroup._id, modifierGroups.modifierGroup.revision Method parameters: param name: modifierGroups | type: array | description: Modifier groups to update. | required: true - name: modifierGroup | type: ModifierGroup | description: Modifier group to update. - name: _id | type: string | description: Modifier group GUID. | required: true - name: revision | type: string | description: 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. | required: true - name: name | type: string | description: Modifier group name. - name: modifiers | type: array | description: Group of item modifiers. - name: _id | type: string | description: Item modifier GUID. - name: preSelected | type: boolean | description: Whether the item modifier is pre-selected. Default: `false`. - name: additionalChargeInfo | type: AdditionalChargeInfo | description: Item modifier price details. - name: additionalCharge | type: string | description: Additional charge for the item modifier. A value of `0` means the item modifier is free. - name: rule | type: Rule | description: Modifier group details. - name: required | type: boolean | description: Whether the items from the modifier group must be selected. - name: minSelections | type: integer | description: Minimum number of item modifiers a site visitor must select. The value must be lower or equal to the available item modifiers in the group. Default: `0`. - name: maxSelections | type: integer | description: Maximum number of item modifiers a site visitor may select. Must be greater than or equal to the value of `minSelections`. - name: extendedFields | type: ExtendedFields | description: Extended fields. - name: namespaces | type: object | description: Extended field data. Each key corresponds to the namespace of the app that created the extended fields. The value of each key is structured according to the schema defined when the extended fields were configured. You can only access fields for which you have the appropriate permissions. Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md). - name: mask | type: array | description: Explicit list of fields to update. param name: options | type: BulkUpdateModifierGroupsOptions none - name: returnEntity | type: boolean | description: Whether to receive the updated modifier groups in the response. Return type: PROMISE - name: results | type: array | description: Information about the updated modifier groups. - name: itemMetadata | type: ItemMetadata | description: Metadata for group modifier update. - name: _id | type: string | description: Item GUID. Should always be available, unless it's impossible (for example, when failing to create an item). - name: originalIndex | type: integer | description: Index of the item within the request array. Allows for correlation between request and response items. - name: success | type: boolean | description: Whether the requested action was successful for this item. When `false`, the `error` field is populated. - name: error | type: ApplicationError | description: Details about the error in case of failure. - name: code | type: string | description: Error code. - name: description | type: string | description: Description of the error. - name: data | type: object | description: Data related to the error. - name: modifierGroup | type: ModifierGroup | description: Updated modifier group. Only returned if `returnEntity` is set to `true`. - name: _id | type: string | description: Modifier group GUID. - name: revision | type: string | description: 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. - name: _createdDate | type: Date | description: Date and time the modifier group was created. - name: _updatedDate | type: Date | description: Date and time the modifier group was updated. - name: name | type: string | description: Modifier group name. - name: modifiers | type: array | description: Group of item modifiers. - name: _id | type: string | description: Item modifier GUID. - name: preSelected | type: boolean | description: Whether the item modifier is pre-selected. Default: `false`. - name: additionalChargeInfo | type: AdditionalChargeInfo | description: Item modifier price details. - name: additionalCharge | type: string | description: Additional charge for the item modifier. A value of `0` means the item modifier is free. - name: rule | type: Rule | description: Modifier group details. - name: required | type: boolean | description: Whether the items from the modifier group must be selected. - name: minSelections | type: integer | description: Minimum number of item modifiers a site visitor must select. The value must be lower or equal to the available item modifiers in the group. Default: `0`. - name: maxSelections | type: integer | description: Maximum number of item modifiers a site visitor may select. Must be greater than or equal to the value of `minSelections`. - name: extendedFields | type: ExtendedFields | description: Extended fields. - name: namespaces | type: object | description: Extended field data. Each key corresponds to the namespace of the app that created the extended fields. The value of each key is structured according to the schema defined when the extended fields were configured. You can only access fields for which you have the appropriate permissions. Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md). - name: businessLocationIds | type: array | description: IDs of the business locations ([SDK](https://dev.wix.com/docs/sdk/backend-modules/restaurants/wix-restaurants-new/about-business-locations.md) | [REST](https://dev.wix.com/docs/rest/business-solutions/restaurants/wix-restaurants-new/about-business-locations.md)) where these item modifier groups are available. - name: bulkActionMetadata | type: BulkActionMetadata | description: Metadata for the API call. - name: totalSuccesses | type: integer | description: Number of items that were successfully processed. - name: totalFailures | type: integer | description: Number of items that couldn't be processed. - name: undetailedFailures | type: integer | description: Number of failures without details because detailed failure threshold was exceeded. ``` ### Examples ### bulkUpdateModifierGroups ```javascript import { itemModifierGroups } from '@wix/restaurants'; async function bulkUpdateModifierGroups(modifierGroups,options) { const response = await itemModifierGroups.bulkUpdateModifierGroups(modifierGroups,options); }; ``` ### bulkUpdateModifierGroups (with elevated permissions) ```javascript import { itemModifierGroups } from '@wix/restaurants'; import { auth } from '@wix/essentials'; async function myBulkUpdateModifierGroupsMethod(modifierGroups,options) { const elevatedBulkUpdateModifierGroups = auth.elevate(itemModifierGroups.bulkUpdateModifierGroups); const response = await elevatedBulkUpdateModifierGroups(modifierGroups,options); } ``` ### bulkUpdateModifierGroups (self-hosted) Self-hosted SDK calls require you to [create a client](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/about-the-wix-client.md). ```javascript import { createClient } from '@wix/sdk'; import { itemModifierGroups } from '@wix/restaurants'; // Import the auth strategy for the relevant access type // Import the relevant host module if needed const myWixClient = createClient ({ modules: { itemModifierGroups }, // Include the auth strategy and host as relevant }); async function bulkUpdateModifierGroups(modifierGroups,options) { const response = await myWixClient.itemModifierGroups.bulkUpdateModifierGroups(modifierGroups,options); }; ``` ---