> 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 # UpdateAddOn # Package: services # Namespace: AddOnsService # Method link: https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/update-add-on.md ## Permission Scopes: Manage Bookings: SCOPE.DC-BOOKINGS.MANAGE-BOOKINGS ## Introduction Updates an existing add-on. Each time an add-on is updated, its revision number increments by 1. The current revision must be passed when updating to ensure you're working with the latest version and prevent unintended overwrites. --- ## REST API ### Schema ``` Method: updateAddOn Description: Updates an existing add-on. Each time an add-on is updated, its revision number increments by 1. The current revision must be passed when updating to ensure you're working with the latest version and prevent unintended overwrites. URL: https://www.wixapis.com/addons/v1/add-ons/{addOn.id} Method: PATCH # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present. Required parameters: addOn, addOn.id, addOn.revision Method parameters: param name: addOn | type: AddOn | description: Add-ons are optional extras that extend business offerings (such as booking services) with additional features, time, or products for an extra cost. | required: true - ONE-OF: - required: true - name: durationInMinutes | type: integer | description: Duration in minutes for duration-based add-ons that extend offering time. - name: maxQuantity | type: integer | description: Maximum quantity customers can purchase for quantity-based add-ons. - name: id | type: string | description: Add-on GUID. | required: true - name: revision | type: string | description: Revision number, which increments by 1 each time the add-on is updated. To prevent conflicting changes, the current revision must be passed when updating the add-on. Ignored when creating an add-on. | required: true - name: name | type: string | description: Display name of the add-on shown to customers. - name: price | type: Money | description: Pricing information for the add-on. - name: value | type: string | description: Add-on price amount as a decimal string with period as decimal separator. For example, `3.99` for a $3.99 add-on or `15.00` for a $15.00 add-on. - name: currency | type: string | description: Currency code for the add-on price. Must be a valid [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code. For example, `USD` for US dollars or `EUR` for euros. - name: formattedValue | type: string | description: Add-on price amount as a decimal string in local format for display purposes. For example, `$3.99` for US format or `3,99 €` for European format. - name: taxGroup | type: string | description: GUID of the [tax group](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/tax/tax-groups/introduction.md) to categorize the add-on for tax calculation in [Wix eCommerce](https://dev.wix.com/docs/rest/business-solutions/e-commerce/introduction.md). Learn more about [how Wix eCommerce implements tax calculation](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/tax/introduction.md). This field doesn't apply to custom checkout/billing implementations. - name: extendedFields | type: ExtendedFields | description: Data extensions enabling users to save custom data related to the add-on. - 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: tags | type: Tags | description: [Tags](https://dev.wix.com/docs/rest/business-management/tags/introduction.md) assigned to add-ons for categorization and filtering purposes. - name: privateTags | type: TagList | description: Tags that require an additional permission in order to access them, normally not given to site members or visitors. - name: tagIds | type: array | description: List of tag GUIDs. - name: tags | type: TagList | description: Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors. Return type: UpdateAddOnResponse - name: addOn | type: AddOn | description: Updated add-on. - ONE-OF: - name: durationInMinutes | type: integer | description: Duration in minutes for duration-based add-ons that extend offering time. - name: maxQuantity | type: integer | description: Maximum quantity customers can purchase for quantity-based add-ons. - name: id | type: string | description: Add-on GUID. - name: revision | type: string | description: Revision number, which increments by 1 each time the add-on is updated. To prevent conflicting changes, the current revision must be passed when updating the add-on. Ignored when creating an add-on. - name: createdDate | type: string | description: Date and time the add-on was created in `YYYY-MM-DDThh:mm:ss.sssZ` format. - name: updatedDate | type: string | description: Date and time the add-on was last updated in `YYYY-MM-DDThh:mm:ss.sssZ` format. - name: name | type: string | description: Display name of the add-on shown to customers. - name: price | type: Money | description: Pricing information for the add-on. - name: value | type: string | description: Add-on price amount as a decimal string with period as decimal separator. For example, `3.99` for a $3.99 add-on or `15.00` for a $15.00 add-on. - name: currency | type: string | description: Currency code for the add-on price. Must be a valid [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code. For example, `USD` for US dollars or `EUR` for euros. - name: formattedValue | type: string | description: Add-on price amount as a decimal string in local format for display purposes. For example, `$3.99` for US format or `3,99 €` for European format. - name: taxGroup | type: string | description: GUID of the [tax group](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/tax/tax-groups/introduction.md) to categorize the add-on for tax calculation in [Wix eCommerce](https://dev.wix.com/docs/rest/business-solutions/e-commerce/introduction.md). Learn more about [how Wix eCommerce implements tax calculation](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/tax/introduction.md). This field doesn't apply to custom checkout/billing implementations. - name: extendedFields | type: ExtendedFields | description: Data extensions enabling users to save custom data related to the add-on. - 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: tags | type: Tags | description: [Tags](https://dev.wix.com/docs/rest/business-management/tags/introduction.md) assigned to add-ons for categorization and filtering purposes. - name: privateTags | type: TagList | description: Tags that require an additional permission in order to access them, normally not given to site members or visitors. - name: tagIds | type: array | description: List of tag GUIDs. - name: tags | type: TagList | description: Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors. ``` ### Examples ### Update AddOn Updates AddOn with new name and duration ```curl curl 'https://manage.wix.com/_api/add-ons-service/v1/add-ons/304fc2d7-bb68-4568-8695-f2f7f37b8027' \ -X 'PATCH' \ -H 'authorization: ' \ --data-raw '{ "addOn": { "id": "304fc2d7-bb68-4568-8695-f2f7f37b8027", "revision": "2", "createdDate": "2025-07-14T10:47:27.232Z", "updatedDate": "2025-07-14T10:47:27.232Z", "name": "Aromatherapy Oil Extended", "durationInMinutes": 20 } }' ``` --- ## JavaScript SDK ### Schema ``` Method: wixClientAdmin.services.AddOnsService.updateAddOn(_id, addOn) Description: Updates an existing add-on. Each time an add-on is updated, its revision number increments by 1. The current revision must be passed when updating to ensure you're working with the latest version and prevent unintended overwrites. # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present. Required parameters: addOn, _id, addOn.revision Method parameters: param name: _id | type: string | description: Add-on GUID. | required: true param name: addOn | type: UpdateAddOn | description: Add-ons are optional extras that extend business offerings (such as booking services) with additional features, time, or products for an extra cost. | required: true - ONE-OF: - required: true - name: durationInMinutes | type: integer | description: Duration in minutes for duration-based add-ons that extend offering time. - name: maxQuantity | type: integer | description: Maximum quantity customers can purchase for quantity-based add-ons. - name: revision | type: string | description: Revision number, which increments by 1 each time the add-on is updated. To prevent conflicting changes, the current revision must be passed when updating the add-on. Ignored when creating an add-on. | required: true - name: name | type: string | description: Display name of the add-on shown to customers. - name: price | type: Money | description: Pricing information for the add-on. - name: value | type: string | description: Add-on price amount as a decimal string with period as decimal separator. For example, `3.99` for a $3.99 add-on or `15.00` for a $15.00 add-on. - name: currency | type: string | description: Currency code for the add-on price. Must be a valid [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code. For example, `USD` for US dollars or `EUR` for euros. - name: formattedValue | type: string | description: Add-on price amount as a decimal string in local format for display purposes. For example, `$3.99` for US format or `3,99 €` for European format. - name: taxGroup | type: string | description: GUID of the [tax group](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/tax/tax-groups/introduction.md) to categorize the add-on for tax calculation in [Wix eCommerce](https://dev.wix.com/docs/rest/business-solutions/e-commerce/introduction.md). Learn more about [how Wix eCommerce implements tax calculation](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/tax/introduction.md). This field doesn't apply to custom checkout/billing implementations. - name: extendedFields | type: ExtendedFields | description: Data extensions enabling users to save custom data related to the add-on. - 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: tags | type: Tags | description: [Tags](https://dev.wix.com/docs/rest/business-management/tags/introduction.md) assigned to add-ons for categorization and filtering purposes. - name: privateTags | type: TagList | description: Tags that require an additional permission in order to access them, normally not given to site members or visitors. - name: tagIds | type: array | description: List of tag GUIDs. - name: tags | type: TagList | description: Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors. Return type: PROMISE - ONE-OF: - name: durationInMinutes | type: integer | description: Duration in minutes for duration-based add-ons that extend offering time. - name: maxQuantity | type: integer | description: Maximum quantity customers can purchase for quantity-based add-ons. - name: _id | type: string | description: Add-on GUID. - name: revision | type: string | description: Revision number, which increments by 1 each time the add-on is updated. To prevent conflicting changes, the current revision must be passed when updating the add-on. Ignored when creating an add-on. - name: _createdDate | type: Date | description: Date and time the add-on was created in `YYYY-MM-DDThh:mm:ss.sssZ` format. - name: _updatedDate | type: Date | description: Date and time the add-on was last updated in `YYYY-MM-DDThh:mm:ss.sssZ` format. - name: name | type: string | description: Display name of the add-on shown to customers. - name: price | type: Money | description: Pricing information for the add-on. - name: value | type: string | description: Add-on price amount as a decimal string with period as decimal separator. For example, `3.99` for a $3.99 add-on or `15.00` for a $15.00 add-on. - name: currency | type: string | description: Currency code for the add-on price. Must be a valid [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code. For example, `USD` for US dollars or `EUR` for euros. - name: formattedValue | type: string | description: Add-on price amount as a decimal string in local format for display purposes. For example, `$3.99` for US format or `3,99 €` for European format. - name: taxGroup | type: string | description: GUID of the [tax group](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/tax/tax-groups/introduction.md) to categorize the add-on for tax calculation in [Wix eCommerce](https://dev.wix.com/docs/rest/business-solutions/e-commerce/introduction.md). Learn more about [how Wix eCommerce implements tax calculation](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/tax/introduction.md). This field doesn't apply to custom checkout/billing implementations. - name: extendedFields | type: ExtendedFields | description: Data extensions enabling users to save custom data related to the add-on. - 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: tags | type: Tags | description: [Tags](https://dev.wix.com/docs/rest/business-management/tags/introduction.md) assigned to add-ons for categorization and filtering purposes. - name: privateTags | type: TagList | description: Tags that require an additional permission in order to access them, normally not given to site members or visitors. - name: tagIds | type: array | description: List of tag GUIDs. - name: tags | type: TagList | description: Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors. ``` ### Examples ### updateAddOn ```javascript import { addOns } from '@wix/bookings'; async function updateAddOn(_id,addOn) { const response = await addOns.updateAddOn(_id,addOn); }; ``` ### updateAddOn (with elevated permissions) ```javascript import { addOns } from '@wix/bookings'; import { auth } from '@wix/essentials'; async function myUpdateAddOnMethod(_id,addOn) { const elevatedUpdateAddOn = auth.elevate(addOns.updateAddOn); const response = await elevatedUpdateAddOn(_id,addOn); } ``` ### updateAddOn (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 { addOns } from '@wix/bookings'; // Import the auth strategy for the relevant access type // Import the relevant host module if needed const myWixClient = createClient ({ modules: { addOns }, // Include the auth strategy and host as relevant }); async function updateAddOn(_id,addOn) { const response = await myWixClient.addOns.updateAddOn(_id,addOn); }; ``` ---