Search.../

updateVariantData( )

Updates the data (such as the price and the weight) of an existing product variant in the store.

Description

The updateVariantData() function returns a Promise that resolves when a product's variant, with the specified choice and corresponding value, has been updated.

For example, if my product is a ring, I can update the price of the Gold value of the Metal choice, or the price of the Silver value of the Metal choice. In this example, "price" is the variant's data.

When passing parameters to updateVariantData(), if the combination of the product ID, choice, or choice value does not match any existing variants, an error is issued.

Only the properties passed in the VariantInfo object will be updated. All other properties remain the same.

Note: The Manage Variants field for the product must be set to true to update a variant's data.

Syntax

function updateVariantData(productId: string, variantInfo: Array<VariantInfo>): Promise<VariantItem>

updateVariantData Parameters

NAME
TYPE
DESCRIPTION
productId
string

ID of the product to update.

variantInfo
Array<VariantInfo>

The information to update for the variant.

Returns

Fulfilled - The updated variant. Rejected - Error message.

Return Type:

Promise<VariantItem>
NAME
TYPE
DESCRIPTION
_id
string

Unique variant ID.

choices
ProductChoices

The choices of the retrieved variant.

variant
VariantData

Variant information.

Was this helpful?

Update the data of a variant

Copy Code
1/*******************************
2 * Backend code - products.jsw *
3 *******************************/
4
5import wixStoresBackend from 'wix-stores-backend';
6
7export function updateVariantData(productId, variantInfo) {
8 return wixStoresBackend.updateVariantData(productId, variantInfo);
9}
10
11/*************
12 * Page code *
13 *************/
14
15import { updateVariantData } from 'backend/products';
16
17// ...
18
19$w('#myProductPage').getProduct()
20 .then((product) => {
21 let productId = product._id;
22 let productManageVariants = product.manageVariants;
23
24 // check that variants can be added and updated
25 // for this product
26 if (productManageVariants) {
27 const variantChoice = "Color";
28 const variantChoiceValue = "Blue";
29 const weight = 10;
30 const price = 15;
31 const variantInfo = [{
32 weight,
33 price,
34 "choices": {
35 variantChoice: variantChoiceValue
36 }
37 }];
38
39 updateVariantData(productId, variantInfo)
40 .then(() => {
41 // product variant data have been updated
42 })
43 .catch((error) => {
44 // there was an error updating the product variant
45 });
46 }
47 })