> 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 # BulkUpdateBrands # Package: catalogV3 # Namespace: BrandService # Method link: https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/brands-v3/bulk-update-brands.md ## Permission Scopes: Brand write in v3 catalog: SCOPE.STORES.BRAND_WRITE ## Introduction Updates multiple brands. Each time a brand is updated, `revision` increments by 1. The current `revision` must be passed when updating a brand. This ensures you're working with the latest brand and prevents unintended overwrites. --- ## REST API ### Schema ``` Method: bulkUpdateBrands Description: Updates multiple brands. Each time a brand is updated, `revision` increments by 1. The current `revision` must be passed when updating a brand. This ensures you're working with the latest brand and prevents unintended overwrites. URL: https://www.wixapis.com/stores/v3/bulk/brands/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: brands, brands.brand.id, brands.brand.revision Method parameters: param name: brands | type: array | description: List of brands to update. | required: true - name: brand | type: Brand | description: Brand to update. - name: id | type: string | description: Brand GUID. | required: true - name: revision | type: string | description: Revision number, which increments by 1 each time the brand is updated. To prevent conflicting changes, the current revision must be passed when updating the brand. Ignored when creating a brand. | required: true - name: name | type: string | description: Brand name. >**Note:** `name` must be unique. - name: fieldMask | type: | description: Explicit list of fields to update. param name: fields | type: array | description: Fields to include in the response. Supported values: `ASSIGNED_PRODUCTS_COUNT` - enum: ASSIGNED_PRODUCTS_COUNT param name: returnEntity | type: returnEntity | description: Whether to return the full updated brand entities in the response. Default: `false` Return type: BulkUpdateBrandsResponse - name: results | type: array | description: Brands updated by bulk action. - name: itemMetadata | type: ItemMetadata | description: Bulk action metadata for brand. - 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: item | type: Brand | description: Full brand entity. Returned only if `returnEntity: true` is passed in the request. - name: id | type: string | description: Brand GUID. - name: revision | type: string | description: Revision number, which increments by 1 each time the brand is updated. To prevent conflicting changes, the current revision must be passed when updating the brand. Ignored when creating a brand. - name: createdDate | type: string | description: Date and time the brand was created. - name: updatedDate | type: string | description: Date and time the brand was updated. - name: name | type: string | description: Brand name. >**Note:** `name` must be unique. - name: assignedProductsCount | type: integer | description: Number of products this brand is assigned to. > **Note:** Returned only when you pass `"ASSIGNED_PRODUCTS_COUNT"` to the `fields` array in Brand API requests. - name: bulkActionMetadata | type: BulkActionMetadata | description: Bulk action metadata. - 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 ### Update multiple Brands Update 3 brand names, by ID and revision. The results include the updated entities, due to `returnEntity: true` requested. The 1st and 3rd are successfully updated, the 2nd fails due to outdated revision. The results are not necessarily returned in the original order but the `itemMetadata.originalIndex` notes which requested entity it is. ```curl curl -X POST \ 'https://www.wixapis.com/stores/v3/bulk/brands/update' \ -H 'Content-type: application/json' \ -H 'Authorization: ' \ -d '{ "brands": [ { "brand": { "id": "f436b313-8437-4b91-a650-dc394427378", "revision": "1", "name": "Asics" } }, { "brand": { "id": "6a325aee-6c03-4934-a325-426b2a97ac52", "revision": "1", "name": "Nike Air Jordan" } }, { "brand": { "id": "bea34149-958b-4a2b-ae29-cf69aca29106", "revision": "1", "name": "NB" } } ], "returnEntity": true }' ``` --- ## JavaScript SDK ### Schema ``` Method: wixClientAdmin.catalogV3.BrandService.bulkUpdateBrands(brands, options) Description: Updates multiple brands. Each time a brand is updated, `revision` increments by 1. The current `revision` must be passed when updating a brand. This ensures you're working with the latest brand and prevents unintended overwrites. # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present. Required parameters: brands, brands.brand._id, brands.brand.revision Method parameters: param name: brands | type: array | description: List of brands to update. | required: true - name: brand | type: Brand | description: Brand to update. - name: _id | type: string | description: Brand GUID. | required: true - name: revision | type: string | description: Revision number, which increments by 1 each time the brand is updated. To prevent conflicting changes, the current revision must be passed when updating the brand. Ignored when creating a brand. | required: true - name: name | type: string | description: Brand name. >**Note:** `name` must be unique. - name: fieldMask | type: array | description: Explicit list of fields to update. param name: options | type: BulkUpdateBrandsOptions none - name: returnEntity | type: boolean | description: Whether to return the full updated brand entities in the response. Default: `false` - name: fields | type: array | description: Fields to include in the response. Supported values: `ASSIGNED_PRODUCTS_COUNT` - enum: ASSIGNED_PRODUCTS_COUNT Return type: PROMISE - name: results | type: array | description: Brands updated by bulk action. - name: itemMetadata | type: ItemMetadata | description: Bulk action metadata for brand. - 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: item | type: Brand | description: Full brand entity. Returned only if `returnEntity: true` is passed in the request. - name: _id | type: string | description: Brand GUID. - name: revision | type: string | description: Revision number, which increments by 1 each time the brand is updated. To prevent conflicting changes, the current revision must be passed when updating the brand. Ignored when creating a brand. - name: _createdDate | type: Date | description: Date and time the brand was created. - name: _updatedDate | type: Date | description: Date and time the brand was updated. - name: name | type: string | description: Brand name. >**Note:** `name` must be unique. - name: assignedProductsCount | type: integer | description: Number of products this brand is assigned to. > **Note:** Returned only when you pass `"ASSIGNED_PRODUCTS_COUNT"` to the `fields` array in Brand API requests. - name: bulkActionMetadata | type: BulkActionMetadata | description: Bulk action metadata. - 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 ### Bulk update brands ```javascript import { brandsV3 } from "@wix/stores"; const brands = [ { brand: { id: "f436b313-8437-4b91-a650-dc3944273781", revision: "1", name: "Asics" } }, { brand: { id: "6a325aee-6c03-4934-a325-426b2a97ac52", revision: "1", name: "Nike Air Jordan" } }, { brand: { id: "bea34149-958b-4a2b-ae29-cf69aca29106", revision: "1", name: "NB" } } ]; const options = { returnEntity: true }; async function bulkUpdateBrands() { const response = await brandsV3.bulkUpdateBrands(brands, options); } /* Promise resolves to: * { * "results": [ * { * "itemMetadata": { "originalIndex": 0, "success": true, "_id": "f436b313-8437-..." }, * "item": { "_id": "f436b313-8437-...", "revision": "2", "name": "Asics" } * }, * { * "itemMetadata": { "originalIndex": 1, "success": true, "_id": "6a325aee-..." }, * "item": { "_id": "6a325aee-...", "revision": "2", "name": "Nike Air Jordan" } * }, * { * "itemMetadata": { "originalIndex": 2, "success": true, "_id": "bea34149-..." }, * "item": { "_id": "bea34149-...", "revision": "2", "name": "NB" } * } * ], * "bulkActionMetadata": { "totalSuccesses": 3, "totalFailures": 0 } * } */ ``` ### bulkUpdateBrands (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 { brandsV3 } from '@wix/stores'; // Import the auth strategy for the relevant access type // Import the relevant host module if needed const myWixClient = createClient ({ modules: { brandsV3 }, // Include the auth strategy and host as relevant }); async function bulkUpdateBrands(brands,options) { const response = await myWixClient.brandsV3.bulkUpdateBrands(brands,options); }; ``` ---