Search.../
  1. Home
  2. Getting Started
  3. Overview
Generate a test token to explore our APIs

About Wix Stores

Wix enables site owners to quickly and easily create and manage an online store for physical and/or digital products on their site. Read more about the Wix Stores features.

Terminology

  • The catalog is a complete list of all the store’s products - compiled automatically.
  • Collections are themed groupings of items for purchase that a store owner can create to organize their products (e.g., Spring 2019, Running shoes, etc.). Products can belong to multiple collections.
  • Options are property types that customers can select within the specific product - e.g., color and size.
  • Selections are the types available within each option - e.g., red and green selections under the Color option.
  • Choices are the specific choices the customer has made within a selection - e.g., choosing the red Selection triggers the red Choice.
  • Variants are combinations of different product choices - e.g., a red shirt in size large. A variant can override the following values from the parent product:
    • Price
    • SKU
    • Weight
    • Inventory

Was this helpful?

Pagination

The standard Wix API pagination includes:

limit: amount of items per response (defaults will be defined per use case)
offset: number of items to skip

The following example:

"query": {
"paging": {
"limit": 100,
"offset": 20
}
}
Copy Code

Should return items 21-120 in the collection.

Wix Stores query endpoints are designed to handle a max of 10k data items. Therefore, if a user's store includes ~10k relevant items (e.g., products, inventory items), limit and offset may fail.

Instead, filter by numericId (query products, query inventory) or number (query orders) and sort in ascending order:

"query": {
"sort": [{"numericId": "asc"}],
}
Copy Code

Then copy the last numericId/number sent in this call and call the endpoint again:

"query":{
"sort": [{"numericId": "asc"}],
"filter": {
"numericId": {
"$gt": <last numeric id>
}
}
}
Copy Code

Continue until you receive an empty JSON as a response.

Important:
Escape the JSON strings in your query parameters.

Was this helpful?

Rich Text

Select parameters currently accept values with rich text. The following rich text formatting is accepted:

<p><strong>This is bolded text</strong></p>
<p><u>This is underlined text</u></p>
<p><span style=\"color:#cb2026\">This is red text</span></p>
<p><span style=\"color:#000000;\"><span style=\"background-color:#ce5028;\">This is black text with a red background</span></span></p>
<p><a href=\"http://www.google.com\" target=\"_blank\">This is a link</a></p>

<ul>
<li>This is a bullet</li>
<li>This is a second bullet</li>
</ul>
Copy Code
<ol>
<li>This is a numbered list item</li>
<li>This is a second numbered list item</li>
</ol>
Copy Code

Was this helpful?

Carts

Read and Write carts from Wix Stores, produce cart lifecycle events

Catalog

Read the products from Wix Stores catalog Learn more.

Guides

Additional information about this section

Collection
Product
Variant
  • POST

    Returns product variants, based on either choices (option-choice key-value pairs) or variant IDs. See Stores Pagination for more information

  • PATCH

    Updates data for the specified product variant

  • POST

    Resets all variant data to default values (price = current product price; weight = current product weight; SKU = current product SKU; visibility = true)

  • WEBHOOK

Catalog Service

About This API

Wix Stores creates a catalog of store owners’ items for purchase and allows store owners to create smaller collections of products by type or theme. The catalog (known to Wix store owners as the "All Products Collection") organizes the store’s products and collections and facilitates inventory management. With the Wix Stores Catalog API you can query individual products, collections or the entire catalog.

Querying the products and collections in the catalog enables you to coordinate a store’s inventory across other sales platforms (e.g., Facebook marketplace), or inventory management tools (e.g., NetSuite, TradeGecko), among other uses.

Limitations

Every product in a Wix site owner's store is limited to max 6 options (e.g., size, color, style) with max 30 choices (small, medium, blue, green, hipster, gangster) per option. In addition, if the Wix site owner wants to manage variants (treat variants as separate products, with unique SKUs, prices and weights) they are limited to max 300 variants (combinations of product choices - e.g., a blue shirt in size medium) per product. Every product is also limited to max 15 media items.

Query language

For endpoints that allow querying, the format follows the following guidelines.

Was this helpful?

Collection

Attributes

NAME
TYPE
DESCRIPTION
id

string

Collection ID (generated automatically by the catalog)

name

string

Collection name

media

object

Media items (images, videos etc) associated with this collection

Was this helpful?

Create Collection

Creates a new collection.

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.MODIFY_PRODUCTS

POST

https://www.wixapis.com/stores/v1/collections

Body Params

NAME
TYPE
DESCRIPTION
collection
Required

object

Collection data

Response Object

Create Collection Response

NAME
TYPE
DESCRIPTION
collection

object

Status/Error Codes

The response will include an HTTP status code.

Was this helpful?

Request

curl

Copy Code
1curl -X POST \
2 'https://www.wixapis.com/stores/v1/collections' \
3 --data-binary '{
4 "collection": {
5 "name": "My New Collection"
6 }
7 }' \
8 -H 'Content-Type: application/json' \
9 -H 'Authorization: <AUTH>'

Response

json

1
2{"collection": {
3 "id": "81093e7d-a251-4a22-a238-df3aa816f3dc",
4 "name": "My New Collection",
5 "media": {"items": []}
6}}

Get Collection

Returns a collection with the provided ID

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.READ_PRODUCTS

GET

https://www.wixapis.com/stores/v1/collections/{id}

Path Params

NAME
TYPE
DESCRIPTION
id
Required

string

Requested collection ID

Response Object

Get Collection Response

NAME
TYPE
DESCRIPTION
collection

object

Status/Error Codes

The response will include an HTTP status code.

Was this helpful?

Request

curl

Copy Code
1curl -X GET \
2 'https://www.wixapis.com/stores/v1/collections/1044e7e4-37d1-0705-c5b3-623baae212fd' \
3 -H 'Authorization: <AUTH>'

Response

json

1
2{"collection": {
3 "id": "1044e7e4-37d1-0705-c5b3-623baae212fd",
4 "name": "C A C T I",
5 "media": {
6 "mainMedia": {
7 "thumbnail": {
8 "url": "https://static.wixstatic.com/media/697bc8_49e72a53cd064655ba1991bf1d7c1deb~mv2_d_1920_1920_s_2.jpg/v1/fit/w_50,h_50,q_90/file.jpg",
9 "width": 50,
10 "height": 50
11 },
12 "mediaType": "image",
13 "title": "",
14 "image": {
15 "url": "https://static.wixstatic.com/media/697bc8_49e72a53cd064655ba1991bf1d7c1deb~mv2_d_1920_1920_s_2.jpg/v1/fit/w_1920,h_1920,q_90/file.jpg",
16 "width": 1920,
17 "height": 1920
18 },
19 "id": ""
20 },
21 "items": [ {
22 "thumbnail": {
23 "url": "https://static.wixstatic.com/media/697bc8_49e72a53cd064655ba1991bf1d7c1deb~mv2_d_1920_1920_s_2.jpg/v1/fit/w_50,h_50,q_90/file.jpg",
24 "width": 50,
25 "height": 50
26 },
27 "mediaType": "image",
28 "title": "",
29 "image": {
30 "url": "https://static.wixstatic.com/media/697bc8_49e72a53cd064655ba1991bf1d7c1deb~mv2_d_1920_1920_s_2.jpg/v1/fit/w_1920,h_1920,q_90/file.jpg",
31 "width": 1920,
32 "height": 1920
33 },
34 "id": ""
35 }]
36 }
37}}

Add Products To Collection

Adds products to a specified collection

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.MODIFY_PRODUCTS

POST

https://www.wixapis.com/stores/v1/collections/{id}/productIds

Path Params

NAME
TYPE
DESCRIPTION
id
Required

string

Collection ID

Body Params

NAME
TYPE
DESCRIPTION
productIds

Array<string>

IDs of products to add to the collection

Response Object

Add Products To Collection Response

Returns an empty object.

Status/Error Codes

The response will include an HTTP status code.

Was this helpful?

Request

curl

Copy Code
1curl -X POST \
2 'https://www.wixapis.com/stores/v1/collections/1044e7e4-37d1-0705-c5b3-623baae212fd/productIds' \
3 --data-binary '{
4 "productIds": [
5 "a60fef92-ee29-070f-a7ed-9bbc3cc1c2f4",
6 "d9cd1d2f-8318-486b-a6f3-aa0c4e81ccd2"
7 ]
8 }' \
9 -H 'Content-Type: application/json' \
10 -H 'Authorization: <AUTH>'

Response

json

1
2{}

Remove Products From Collection

Deletes products from a specified collection

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.MODIFY_PRODUCTS

POST

https://www.wixapis.com/stores/v1/collections/{id}/productIds/delete

Path Params

NAME
TYPE
DESCRIPTION
id
Required

string

Collection ID

Body Params

NAME
TYPE
DESCRIPTION
productIds

Array<string>

IDs of products that will be be deleted from collection, if not provided all are deleted

Response Object

Remove Products From Collection Response

Returns an empty object.

Status/Error Codes

The response will include an HTTP status code.

Was this helpful?

Request

curl

Copy Code
1curl -X POST \
2 'https://www.wixapis.com/stores/v1/collections/1044e7e4-37d1-0705-c5b3-623baae212fd/productIds/delete' \
3 --data-binary '{
4 "productIds": [
5 "a60fef92-ee29-070f-a7ed-9bbc3cc1c2f4",
6 "d9cd1d2f-8318-486b-a6f3-aa0c4e81ccd2"
7 ]
8 }' \
9 -H 'Content-Type: application/json' \
10 -H 'Authorization: <AUTH>'

Response

json

1
2{}

Query Collections

Returns a list of up to 100 collections, given the provided paging, sorting and filtering.
See Stores Pagination for more information

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.READ_PRODUCTS

POST

https://www.wixapis.com/stores/v1/collections/query

Body Params

NAME
TYPE
DESCRIPTION
query

object

Response Object

Query Collections Response

NAME
TYPE
DESCRIPTION
collections

Array<object>

metadata

object

totalResults

integer

Status/Error Codes

The response will include an HTTP status code.

Was this helpful?

Example 1

Request

curl

Copy Code
1curl -X POST \
2 'https://www.wixapis.com/stores/v1/collections/query' \
3 --data-binary '{}' \
4 -H 'Content-Type: application/json' \
5 -H 'Authorization: <AUTH>'

Response

json

1
2{
3 "collections": [
4 {
5 "id": "00000000-000000-000000-000000000001",
6 "name": "Artificially added category",
7 "media": {
8 "mainMedia": {
9 "thumbnail": {
10 "url": "https://static.wixstatic.com/media/697bc8_43b2c20a2d4144c797ca3cf4d2a7290f~mv2_d_2489_2251_s_2.jpg/v1/fit/w_50,h_50,q_90/file.jpg",
11 "width": 50,
12 "height": 50
13 },
14 "mediaType": "image",
15 "title": "",
16 "image": {
17 "url": "https://static.wixstatic.com/media/697bc8_43b2c20a2d4144c797ca3cf4d2a7290f~mv2_d_2489_2251_s_2.jpg/v1/fit/w_2489,h_2251,q_90/file.jpg",
18 "width": 2489,
19 "height": 2251
20 },
21 "id": ""
22 },
23 "items": [ {
24 "thumbnail": {
25 "url": "https://static.wixstatic.com/media/697bc8_43b2c20a2d4144c797ca3cf4d2a7290f~mv2_d_2489_2251_s_2.jpg/v1/fit/w_50,h_50,q_90/file.jpg",
26 "width": 50,
27 "height": 50
28 },
29 "mediaType": "image",
30 "title": "",
31 "image": {
32 "url": "https://static.wixstatic.com/media/697bc8_43b2c20a2d4144c797ca3cf4d2a7290f~mv2_d_2489_2251_s_2.jpg/v1/fit/w_2489,h_2251,q_90/file.jpg",
33 "width": 2489,
34 "height": 2251
35 },
36 "id": ""
37 }]
38 }
39 },
40 {
41 "id": "7f79cca8-80b6-d24b-e6f8-356187d95050",
42 "name": "C A C T I",
43 "media": {
44 "mainMedia": {
45 "thumbnail": {
46 "url": "https://static.wixstatic.com/media/697bc8_49e72a53cd064655ba1991bf1d7c1deb~mv2_d_1920_1920_s_2.jpg/v1/fit/w_50,h_50,q_90/file.jpg",
47 "width": 50,
48 "height": 50
49 },
50 "mediaType": "image",
51 "title": "",
52 "image": {
53 "url": "https://static.wixstatic.com/media/697bc8_49e72a53cd064655ba1991bf1d7c1deb~mv2_d_1920_1920_s_2.jpg/v1/fit/w_1920,h_1920,q_90/file.jpg",
54 "width": 1920,
55 "height": 1920
56 },
57 "id": ""
58 },
59 "items": [ {
60 "thumbnail": {
61 "url": "https://static.wixstatic.com/media/697bc8_49e72a53cd064655ba1991bf1d7c1deb~mv2_d_1920_1920_s_2.jpg/v1/fit/w_50,h_50,q_90/file.jpg",
62 "width": 50,
63 "height": 50
64 },
65 "mediaType": "image",
66 "title": "",
67 "image": {
68 "url": "https://static.wixstatic.com/media/697bc8_49e72a53cd064655ba1991bf1d7c1deb~mv2_d_1920_1920_s_2.jpg/v1/fit/w_1920,h_1920,q_90/file.jpg",
69 "width": 1920,
70 "height": 1920
71 },
72 "id": ""
73 }]
74 }
75 }
76 ],
77 "metadata": {
78 "items": 100,
79 "offset": 0
80 },
81 "totalResults": 2
82}
Example 2

Update Collection Properties

Updates specified properties of a collection

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.MODIFY_PRODUCTS

PATCH

https://www.wixapis.com/stores/v1/collections/{collection.id}

Path Params

NAME
TYPE
DESCRIPTION
collection.id
Required

string

Collection ID (generated automatically by the catalog)

Body Params

NAME
TYPE
DESCRIPTION
collection
Required

object

Collection data

Response Object

Update Collection Response

NAME
TYPE
DESCRIPTION
collection

object

Status/Error Codes

The response will include an HTTP status code.

Was this helpful?

Request

curl

Copy Code
1curl -X PATCH \
2 'https://www.wixapis.com/stores/v1/collections/81093e7d-a251-4a22-a238-df3aa816f3dc' \
3 --data-binary '{
4 "collection": {
5 "name": "Updated name"
6 }
7 }' \
8 -H 'Content-Type: application/json' \
9 -H 'Authorization: <AUTH>'

Response

json

1
2{"collection": {
3 "id": "81093e7d-a251-4a22-a238-df3aa816f3dc",
4 "name": "Updated name",
5 "media": {"items": []}
6}}

Delete Collection

Deletes a collection by ID

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.MODIFY_PRODUCTS

DELETE

https://www.wixapis.com/stores/v1/collections/{id}

Path Params

NAME
TYPE
DESCRIPTION
id
Required

string

Collection ID

Response Object

Delete Collection Response

Returns an empty object.

Status/Error Codes

The response will include an HTTP status code.

Was this helpful?

Request

curl

Copy Code
1curl -X DELETE \
2 'https://www.wixapis.com/stores/v1/collections/81093e7d-a251-4a22-a238-df3aa816f3dc' \
3 -H 'Content-Type: application/json' \
4 -H 'Authorization: <AUTH>'

Response

json

1
2{}

Collection Created

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.READ_PRODUCTS

Event Body

The event's data is received as a JSON Web Token (JWT). Make sure to verify that the data was received by Wix - read more about it in the Webhooks article.

Payload

NAME
TYPE
DESCRIPTION
collectionId

string

Collection ID (generated automatically by the catalog)

name

string

Collection name

media

object

Media items (images, videos etc) associated with this collection

Was this helpful?

Example of CollectionCreated

The data payload will include the following as an encoded JWT:

Event Body

json

1{
2 "data": {
3 "eventType": "<event-type>",
4 "instanceId": "<app-instance-id>",
5 "data": "<stringified-JSON>"
6 }
7}

The parsed data will include:

Sample Data

json

1
2{
3 "collectionId": "1044e7e4-37d1-0705-c5b3-623baae212fd",
4 "name": "My collection",
5 "media": {
6 "mainMedia": {
7 "thumbnail": {
8 "url": "https://static.wixstatic.com/media/bc001baa4397444f809fa5f147c28a9e.jpg/v1/fit/w_50,h_50,q_90/file.jpg",
9 "width": 50,
10 "height": 50
11 },
12 "mediaType": "image",
13 "title": "",
14 "image": {
15 "url": "https://static.wixstatic.com/media/bc001baa4397444f809fa5f147c28a9e.jpg/v1/fit/w_1920,h_1280,q_90/file.jpg",
16 "width": 1920,
17 "height": 1280
18 },
19 "id": ""
20 },
21 "items": [ {
22 "thumbnail": {
23 "url": "https://static.wixstatic.com/media/bc001baa4397444f809fa5f147c28a9e.jpg/v1/fit/w_50,h_50,q_90/file.jpg",
24 "width": 50,
25 "height": 50
26 },
27 "mediaType": "image",
28 "title": "",
29 "image": {
30 "url": "https://static.wixstatic.com/media/bc001baa4397444f809fa5f147c28a9e.jpg/v1/fit/w_1920,h_1280,q_90/file.jpg",
31 "width": 1920,
32 "height": 1280
33 },
34 "id": ""
35 }]
36 }
37}

Collection Changed

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.READ_PRODUCTS

Event Body

The event's data is received as a JSON Web Token (JWT). Make sure to verify that the data was received by Wix - read more about it in the Webhooks article.

Payload

NAME
TYPE
DESCRIPTION
collectionId

string

Collection ID (generated automatically by the catalog)

changedFields

Array<string>

Was this helpful?

Example of CollectionChanged

The data payload will include the following as an encoded JWT:

Event Body

json

1{
2 "data": {
3 "eventType": "<event-type>",
4 "instanceId": "<app-instance-id>",
5 "data": "<stringified-JSON>"
6 }
7}

The parsed data will include:

Sample Data

json

1
2{
3 "collectionId": "6547efe0-3dc4-bd30-3042-c71427ff2589",
4 "changedFields": ["name"]
5}

Collection Deleted

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.READ_PRODUCTS

Event Body

The event's data is received as a JSON Web Token (JWT). Make sure to verify that the data was received by Wix - read more about it in the Webhooks article.

Payload

NAME
TYPE
DESCRIPTION
collectionId

string

Collection ID (generated automatically by the catalog)

Was this helpful?

Example of CollectionDeleted

The data payload will include the following as an encoded JWT:

Event Body

json

1{
2 "data": {
3 "eventType": "<event-type>",
4 "instanceId": "<app-instance-id>",
5 "data": "<stringified-JSON>"
6 }
7}

The parsed data will include:

Sample Data

json

1
2{"collectionId": "135101-thisIs-135101-someId"}

Product

Attributes

NAME
TYPE
DESCRIPTION
stock

object

Product inventory status (In future this will be writable via Inventory API)

weight

number

Product weight (If variant management is enabled, weight will be set per variant, and this will be empty)

name

string

Product name

sku

string

Product SKU - stock keeping unit (If variant management is enabled, SKUs will be set per variant, and this will be empty)

collectionIds

Array<string>

A list of all collection IDs that this product is included in (writable via the Catalog > Collection APIs)

visible

boolean

Whether the product is visible to customers

lastUpdated

string

Timestamp when the product was last updated

productOptions

Array<object>

Options (color, size etc) for this product

description

string

Product description. Accepts rich text

price

object

Deprecated (use priceData instead)

slug

string

A permanent, friendly URL name (generated automatically by the catalog)

productType

string

One of unspecified_product_type, physical, digital.

Product type: physical/digital

priceData

object

Price data (fields requiring calculation are read-only)

ribbons

Array<object>

Optional text marker that store owners can add to specific products (e.g., sale, new arrival). Currently writable only from the UI

id

string

Product ID (generated automatically by the catalog)

customTextFields

Array<object>

Text box for the customer to add a message to their order (e.g., customization request). Currently writable only from the UI

media

object

Media items (images, videos etc) associated with this product (writable via Add Product Media endpoint)

productPageUrl

object

Product page URL for this product (generated automatically by the server)

numericId

integer

Product’s unique numeric ID (assigned in ascending order). Primarily for sorting and filtering when crawling all products

manageVariants

boolean

Whether variants are being managed for this product - enables unique SKU, price and weight per variant. Also affects inventory data.

inventoryItemId

string

Inventory item ID - ID referencing the inventory system

discount

object

Discount taken off of the product's original price

additionalInfoSections

Array<object>

Additional text that the store owner can assign to the product (e.g. shipping details, refund policy, etc.). Currently writable only from the UI

variants

Array<object>

Product variants, will be provided if the the request was sent with the includeVariants flag

Was this helpful?

Example of Product

Object

json

1
2{}

Create Product

Creates new product

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.MODIFY_PRODUCTS

POST

https://www.wixapis.com/stores/v1/products

Body Params

NAME
TYPE
DESCRIPTION
product

object

Product data

Response Object

Create Product Response

NAME
TYPE
DESCRIPTION
product

object

Status/Error Codes

The response will include an HTTP status code.

Was this helpful?

Request

curl

Copy Code
1curl -X POST \
2 'https://www.wixapis.com/stores/v1/products' \
3 --data-binary '{
4 "product": {
5 "name": "T-shirt",
6 "productType": "physical",
7 "priceData": {
8 "price": 10.5
9 },
10 "description": "nice summer t-shirt",
11 "sku": "123df",
12 "visible": false,
13 "weight": 0.2,
14 "discount": {
15 "type": "AMOUNT",
16 "value": 1
17 },
18 "manageVariants": true,
19 "productOptions": [
20 {
21 "name": "Size",
22 "choices": [
23 {
24 "value": "S",
25 "description": "S"
26 },
27 {
28 "value": "L",
29 "description": "L"
30 }
31 ]
32 }
33 ]
34 }
35 }' \
36 -H 'Content-Type: application/json' \
37 -H 'Authorization: <AUTH>'

Response

json

1
2{"product": {
3 "id": "e28e4ddd-6ed0-4098-a5e5-cf4bd9c4f7b5",
4 "name": "T-shirt",
5 "slug": "t-shirt-1",
6 "visible": false,
7 "productType": "physical",
8 "description": "nice summer t-shirt",
9 "stock": {
10 "trackInventory": false,
11 "inStock": true
12 },
13 "price": {
14 "currency": "ILS",
15 "price": 10.5,
16 "discountedPrice": 9.5,
17 "formatted": {
18 "price": "10.50 ₪",
19 "discountedPrice": "9.50 ₪"
20 }
21 },
22 "priceData": {
23 "currency": "ILS",
24 "price": 10.5,
25 "discountedPrice": 9.5,
26 "formatted": {
27 "price": "10.50 ₪",
28 "discountedPrice": "9.50 ₪"
29 }
30 },
31 "additionalInfoSections": [],
32 "ribbons": [],
33 "media": {"items": []},
34 "customTextFields": [],
35 "manageVariants": true,
36 "productOptions": [ {
37 "optionType": "drop_down",
38 "name": "Size",
39 "choices": [
40 {
41 "value": "S",
42 "description": "S",
43 "inStock": true,
44 "visible": true
45 },
46 {
47 "value": "L",
48 "description": "L",
49 "inStock": true,
50 "visible": true
51 }
52 ]
53 }],
54 "productPageUrl": {
55 "base": "https://www.itsjusttooeasy123.com/",
56 "path": "/product-page/t-shirt-1"
57 },
58 "numericId": "1567588455405000",
59 "inventoryItemId": "1d71b222-912f-bf67-5a1a-30b4263b084a",
60 "discount": {
61 "type": "AMOUNT",
62 "value": 1
63 },
64 "collectionIds": [],
65 "variants": [
66 {
67 "id": "00000000-0000-0001-0005-93fc95e0514a",
68 "choices": {"Size": "S"},
69 "variant": {
70 "priceData": {
71 "currency": "ILS",
72 "price": 10.5,
73 "discountedPrice": 9.5,
74 "formatted": {
75 "price": "10.50 ₪",
76 "discountedPrice": "9.50 ₪"
77 }
78 },
79 "weight": 10,
80 "visible": true
81 }
82 },
83 {
84 "id": "00000000-0000-0002-0005-93fc95e0514a",
85 "choices": {"Size": "L"},
86 "variant": {
87 "priceData": {
88 "currency": "ILS",
89 "price": 10.5,
90 "discountedPrice": 9.5,
91 "formatted": {
92 "price": "10.50 ₪",
93 "discountedPrice": "9.50 ₪"
94 }
95 },
96 "visible": true
97 }
98 }
99 ]
100}}

Get Product

Returns a product with the provided ID

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.READ_PRODUCTS

GET

https://www.wixapis.com/stores/v1/products/{id}

Path Params

NAME
TYPE
DESCRIPTION
id
Required

string

Requested product ID

Response Object

Get Product Response

NAME
TYPE
DESCRIPTION
product

object

Status/Error Codes

The response will include an HTTP status code.

Was this helpful?

Request

curl

Copy Code
1curl -X GET \
2 'https://www.wixapis.com/stores/v1/products/a60fef92-ee29-070f-a7ed-9bbc3cc1c2f4' \
3 -H 'Authorization: <AUTH>'

Response

json

1
2{
3 "product":{
4 "id":"a60fef92-ee29-070f-a7ed-9bbc3cc1c2f4",
5 "name":"T-shirt",
6 "slug":"t-shirt-1",
7 "visible":false,
8 "productType":"physical",
9 "description":"nice summer t-shirt",
10 "stock":{
11 "trackInventory":false,
12 "inStock":true
13 },
14 "price":{
15 "currency":"ILS",
16 "price":10.5,
17 "discountedPrice":9.5,
18 "formatted":{
19 "price":"10.50 ₪",
20 "discountedPrice":"9.50 ₪"
21 }
22 },
23 "priceData":{
24 "currency":"ILS",
25 "price":10.5,
26 "discountedPrice":9.5,
27 "formatted":{
28 "price":"10.50 ₪",
29 "discountedPrice":"9.50 ₪"
30 }
31 },
32 "additionalInfoSections":[
33
34 ],
35 "ribbons":[
36
37 ],
38 "media":{
39 "items":[
40
41 ]
42 },
43 "customTextFields":[
44
45 ],
46 "manageVariants":true,
47 "productOptions":[
48 {
49 "optionType":"drop_down",
50 "name":"Size",
51 "choices":[
52 {
53 "value":"S",
54 "description":"S",
55 "inStock":true,
56 "visible":true
57 },
58 {
59 "value":"L",
60 "description":"L",
61 "inStock":true,
62 "visible":true
63 }
64 ]
65 }
66 ],
67 "productPageUrl":{
68 "base":"https://www.itsjusttooeasy123.com/",
69 "path":"/product-page/t-shirt-1"
70 },
71 "numericId":"1567588455405000",
72 "inventoryItemId":"1d71b222-912f-bf67-5a1a-30b4263b084a",
73 "discount":{
74 "type":"AMOUNT",
75 "value":1.0
76 },
77 "collectionIds":[
78
79 ]
80 }
81}

Query Products

Returns a list of up to 100 products, given the provided paging, sorting and filtering.
See Stores Pagination for more information.
Hidden products are not returned

Description

Fields That Allow Filtering

FieldOperatorsSorting Allowed
name$eq,$ne,$hasSome,$contains,$startsWithAllowed
description$eq,$ne,$hasSome,$contains,$startsWith
sku$eq,$ne,$hasSome,$contains,$startsWithAllowed
id$eq,$ne,$hasSomeAllowed
price$eq,$ne,$hasSome,$lt,$lte,$gt,$gteAllowed
numericId$eq,$ne,$hasSome,$lt,$lte,$gt,$gteAllowed
productType$eq,$ne,$hasSomeAllowed
slug$eq,$ne,$hasSome,$contains,$startsWithAllowed
collections.id$eq,$ne,$hasSome,$hasAll
options.<option name>$eq,$ne,$hasSome,$hasAll
lastUpdated$eq,$ne,$hasSome,$lt,$lte,$gt,$gteAllowed

** Note that "HasSome" is same as the operator "IN" in SQL

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.READ_PRODUCTS

POST

https://www.wixapis.com/stores/v1/products/query

Body Params

NAME
TYPE
DESCRIPTION
query

object

includeVariants

boolean

Should variants be included in the response

Response Object

Query Products Response

NAME
TYPE
DESCRIPTION
products

Array<object>

metadata

object

totalResults

integer

Status/Error Codes

The response will include an HTTP status code.

Was this helpful?

Example 1

Request

curl

Copy Code
1curl -X POST \
2 'https://www.wixapis.com/stores/v1/products/query' \
3 --data-binary '{
4 "includeVariants": true
5 }' \
6 -H 'Content-Type: application/json' \
7 -H 'Authorization: <AUTH>'

Response

json

1
2{
3 "products": [
4 {
5 "id": "e28e4ddd-6ed0-4098-a5e5-cf4bd9c4f7b5",
6 "name": "T-shirt",
7 "slug": "t-shirt-1",
8 "visible": false,
9 "productType": "physical",
10 "description": "nice summer t-shirt",
11 "stock": {
12 "trackInventory": false,
13 "inStock": true
14 },
15 "price": {
16 "currency": "ILS",
17 "price": 10.5,
18 "discountedPrice": 9.5,
19 "formatted": {
20 "price": "10.50 ₪",
21 "discountedPrice": "9.50 ₪"
22 }
23 },
24 "priceData": {
25 "currency": "ILS",
26 "price": 10.5,
27 "discountedPrice": 9.5,
28 "formatted": {
29 "price": "10.50 ₪",
30 "discountedPrice": "9.50 ₪"
31 }
32 },
33 "additionalInfoSections": [],
34 "ribbons": [],
35 "media": {"items": []},
36 "customTextFields": [],
37 "manageVariants": true,
38 "productOptions": [ {
39 "optionType": "drop_down",
40 "name": "Size",
41 "choices": [
42 {
43 "value": "S",
44 "description": "S",
45 "inStock": true,
46 "visible": true
47 },
48 {
49 "value": "L",
50 "description": "L",
51 "inStock": true,
52 "visible": true
53 }
54 ]
55 }],
56 "productPageUrl": {
57 "base": "https://www.itsjusttooeasy123.com/",
58 "path": "/product-page/t-shirt-1"
59 },
60 "numericId": "1567588455405000",
61 "inventoryItemId": "1d71b222-912f-bf67-5a1a-30b4263b084a",
62 "discount": {
63 "type": "AMOUNT",
64 "value": 1
65 },
66 "collectionIds": [],
67 "variants": [
68 {
69 "id": "00000000-0000-0001-0005-93fc95e0514a",
70 "choices": {"Size": "S"},
71 "variant": {
72 "priceData": {
73 "currency": "ILS",
74 "price": 10.5,
75 "discountedPrice": 9.5,
76 "formatted": {
77 "price": "10.50 ₪",
78 "discountedPrice": "9.50 ₪"
79 }
80 },
81 "weight": 10,
82 "visible": true
83 }
84 },
85 {
86 "id": "00000000-0000-0002-0005-93fc95e0514a",
87 "choices": {"Size": "L"},
88 "variant": {
89 "priceData": {
90 "currency": "ILS",
91 "price": 10.5,
92 "discountedPrice": 9.5,
93 "formatted": {
94 "price": "10.50 ₪",
95 "discountedPrice": "9.50 ₪"
96 }
97 },
98 "visible": true
99 }
100 }
101 ]
102 },
103 {
104 "id": "6507fd67-94e5-10af-73e4-d2167852d5bc",
105 "name": "digital product",
106 "slug": "digital-product",
107 "visible": true,
108 "productType": "digital",
109 "description": "",
110 "sku": "",
111 "weight": 0,
112 "stock": {
113 "trackInventory": false,
114 "inStock": true
115 },
116 "price": {
117 "currency": "ILS",
118 "price": 123,
119 "discountedPrice": 123,
120 "formatted": {
121 "price": "123.00 ₪",
122 "discountedPrice": "123.00 ₪"
123 }
124 },
125 "priceData": {
126 "currency": "ILS",
127 "price": 123,
128 "discountedPrice": 123,
129 "formatted": {
130 "price": "123.00 ₪",
131 "discountedPrice": "123.00 ₪"
132 }
133 },
134 "additionalInfoSections": [],
135 "ribbons": [],
136 "media": {"items": []},
137 "customTextFields": [],
138 "manageVariants": false,
139 "productOptions": [],
140 "productPageUrl": {
141 "base": "https://www.my-website.com/",
142 "path": "/product-page/digital-product"
143 },
144 "numericId": "1544009414325000",
145 "inventoryItemId": "9af80298-6b1a-ef50-8c1b-2de987ad2a43",
146 "discount": {
147 "type": "NONE",
148 "value": 0
149 },
150 "collectionIds": ["ae886d55-2572-eee8-b2c4-13219844b5e4"],
151 "variants": [ {
152 "id": "00000000-0000-0000-0000-000000000000",
153 "choices": {},
154 "variant": {
155 "priceData": {
156 "currency": "ILS",
157 "price": 123,
158 "discountedPrice": 123,
159 "formatted": {
160 "price": "123.00 ₪",
161 "discountedPrice": "123.00 ₪"
162 }
163 },
164 "convertedPriceData": {
165 "currency": "ILS",
166 "price": 123,
167 "discountedPrice": 123,
168 "formatted": {
169 "price": "123.00 ₪",
170 "discountedPrice": "123.00 ₪"
171 }
172 },
173 "weight": 0,
174 "sku": "",
175 "visible": true
176 }
177 }]
178 }
179 ],
180 "metadata": {
181 "items": 100,
182 "offset": 0
183 },
184 "totalResults": 2
185}
Example 2
Example 3
Example 4
Example 5

Update Product

Updates specified fields in product

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.MODIFY_PRODUCTS

PATCH

https://www.wixapis.com/stores/v1/products/{product.id}

Path Params

NAME
TYPE
DESCRIPTION
product.id
Required

string

Product ID (generated automatically by the catalog)

Body Params

NAME
TYPE
DESCRIPTION
product
Required

object

Response Object

Update Product Response

NAME
TYPE
DESCRIPTION
product

object

Status/Error Codes

The response will include an HTTP status code.

Was this helpful?

Request

curl

Copy Code
1curl -X PATCH \
2 'https://www.wixapis.com/stores/v1/products/1044e7e4-37d1-0705-c5b3-623baae212fd' \
3 --data-binary '{
4 "product": {
5 "name": "T-shirt",
6 "productType": "physical",
7 "price": {
8 "price": 10.5
9 },
10 "description": "nice summer t-shirt",
11 "sku": "123df",
12 "visible": false,
13 "weight": 0.2,
14 "discount": {
15 "type": "AMOUNT",
16 "value": 1
17 },
18 "productOptions": [
19 {
20 "name": "Size",
21 "choices": [
22 {
23 "value": "S",
24 "description": "S"
25 },
26 {
27 "value": "L",
28 "description": "L"
29 }
30 ]
31 }
32 ]
33 }
34 }' \
35 -H 'Content-Type: application/json' \
36 -H 'Authorization: <AUTH>'

Response

json

1
2{"product": {
3 "id": "e28e4ddd-6ed0-4098-a5e5-cf4bd9c4f7b5",
4 "name": "T-shirt",
5 "slug": "t-shirt-1",
6 "visible": false,
7 "productType": "physical",
8 "description": "nice summer t-shirt",
9 "stock": {
10 "trackInventory": false,
11 "inStock": true
12 },
13 "price": {
14 "currency": "ILS",
15 "price": 10.5,
16 "discountedPrice": 9.5,
17 "formatted": {
18 "price": "10.50 ₪",
19 "discountedPrice": "9.50 ₪"
20 }
21 },
22 "priceData": {
23 "currency": "ILS",
24 "price": 10.5,
25 "discountedPrice": 9.5,
26 "formatted": {
27 "price": "10.50 ₪",
28 "discountedPrice": "9.50 ₪"
29 }
30 },
31 "additionalInfoSections": [],
32 "ribbons": [],
33 "media": {"items": []},
34 "customTextFields": [],
35 "manageVariants": true,
36 "productOptions": [ {
37 "optionType": "drop_down",
38 "name": "Size",
39 "choices": [
40 {
41 "value": "S",
42 "description": "S",
43 "inStock": true,
44 "visible": true
45 },
46 {
47 "value": "L",
48 "description": "L",
49 "inStock": true,
50 "visible": true
51 }
52 ]
53 }],
54 "productPageUrl": {
55 "base": "https://www.my-website.com/",
56 "path": "/product-page/t-shirt-1"
57 },
58 "numericId": "1567588455405000",
59 "inventoryItemId": "1d71b222-912f-bf67-5a1a-30b4263b084a",
60 "discount": {
61 "type": "AMOUNT",
62 "value": 1
63 },
64 "collectionIds": [],
65 "variants": [
66 {
67 "id": "00000000-0000-0001-0005-93fc95e0514a",
68 "choices": {"Size": "S"},
69 "variant": {
70 "priceData": {
71 "currency": "ILS",
72 "price": 10.5,
73 "discountedPrice": 9.5,
74 "formatted": {
75 "price": "10.50 ₪",
76 "discountedPrice": "9.50 ₪"
77 }
78 },
79 "weight": 10,
80 "visible": true
81 }
82 },
83 {
84 "id": "00000000-0000-0002-0005-93fc95e0514a",
85 "choices": {"Size": "L"},
86 "variant": {
87 "priceData": {
88 "currency": "ILS",
89 "price": 10.5,
90 "discountedPrice": 9.5,
91 "formatted": {
92 "price": "10.50 ₪",
93 "discountedPrice": "9.50 ₪"
94 }
95 },
96 "visible": true
97 }
98 }
99 ]
100}}

Delete Product

Deletes a product by ID

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.MODIFY_PRODUCTS

DELETE

https://www.wixapis.com/stores/v1/products/{id}

Path Params

NAME
TYPE
DESCRIPTION
id
Required

string

ID of product to be deleted

Response Object

Delete Product Response

Returns an empty object.

Status/Error Codes

The response will include an HTTP status code.

Was this helpful?

Request

curl

Copy Code
1curl -X DELETE \
2 'https://www.wixapis.com/stores/v1/products/1044e7e4-37d1-0705-c5b3-623baae212fd' \
3 -H 'Content-Type: application/json' \
4 -H 'Authorization: <AUTH>'

Response

json

1
2{}

Delete Product Options

Delete all options from a specific product (only available when variant management is disabled)

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.MODIFY_PRODUCTS

DELETE

https://www.wixapis.com/stores/v1/products/{id}/options

Path Params

NAME
TYPE
DESCRIPTION
id
Required

string

Product ID

Response Object

Delete Product Options Response

Returns an empty object.

Status/Error Codes

The response will include an HTTP status code.

Was this helpful?

Request

curl

Copy Code
1curl -X DELETE \
2 'https://www.wixapis.com/stores/v1/products/1044e7e4-37d1-0705-c5b3-623baae212fd/options' \
3 -H 'Content-Type: application/json' \
4 -H 'Authorization: <AUTH>'

Response

json

1
2{}

Product Options Availability

Gets the availability of relevant product variants based on the product ID and selections provided. See Use Cases for an example.

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.READ_PRODUCTS

POST

https://www.wixapis.com/stores/v1/products/{id}/productOptionsAvailability

Path Params

NAME
TYPE
DESCRIPTION
id
Required

string

Requested product ID

Body Params

NAME
TYPE
DESCRIPTION
options
Required

object

Set of key-value pairs. Array containing the selected options (e.g, color: Blue, size: Large)

Response Object

Product Options Availability Response

NAME
TYPE
DESCRIPTION
selectedVariant

object

The variant, given that the all the choices were provided

media

object

Media items (images, videos etc) associated with this choice

productOptions

Array<object>

Options (color, size, etc.) for this product, given the choices provided, with the inventory and visibility fields updated per the provided choices

availableForPurchase

boolean

Whether all the selected choices result in a visible, in-stock variant

Status/Error Codes

The response will include an HTTP status code.

Was this helpful?

Request

curl

Copy Code
1curl -X POST \
2 'https://www.wixapis.com/stores/v1/products/1044e7e4-37d1-0705-c5b3-623baae212fd/productOptionsAvailability' \
3 --data-binary '{
4 "options": {
5 "Size": "S",
6 "Color": "Green"
7 }
8 }' \
9 -H 'Content-Type: application/json' \
10 -H 'Authorization: <AUTH>'

Response

json

1
2{
3 "productOptions": [ {
4 "optionType": "color",
5 "name": "Color",
6 "choices": [
7 {
8 "value": "#008000",
9 "description": "Green",
10 "inStock": true,
11 "visible": true
12 },
13 {
14 "value": "#800080",
15 "description": "Purple",
16 "inStock": true,
17 "visible": true
18 }
19 ]
20 }],
21 "availableForPurchase": false
22}

Add Product Media

Adds media items to a specified product, either via URL or existing media ID

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.MODIFY_PRODUCTS

POST

https://www.wixapis.com/stores/v1/products/{id}/media

Path Params

NAME
TYPE
DESCRIPTION
id
Required

string

Product ID

Body Params

NAME
TYPE
DESCRIPTION
media

Array<object>

Response Object

Add Product Media Response

Returns an empty object.

Status/Error Codes

The response will include an HTTP status code.

Was this helpful?

Request

curl

Copy Code
1curl -X POST \
2 'https://www.wixapis.com/stores/v1/products/1044e7e4-37d1-0705-c5b3-623baae212fd/media' \
3 --data-binary '{
4 "media": [
5 {
6 "mediaId": "9cc22d8b8d5244aba9ed73fb1783fc26.jpg"
7 },
8 {
9 "url": "https://your-site-url/image.jpeg",
10 "choice": {
11 "option": "Color",
12 "choice": "Blue"
13 }
14 },
15 {
16 "mediaId": "11062b_382eeb350464462c8f9150e4d3e40f2b"
17 }
18 ]
19 }' \
20 -H 'Content-Type: application/json' \
21 -H 'Authorization: <AUTH>'

Response

json

1
2{}

Remove Product Media

Removes specified media items from a specific product

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.MODIFY_PRODUCTS

POST

https://www.wixapis.com/stores/v1/products/{id}/media/delete

Path Params

NAME
TYPE
DESCRIPTION
id
Required

string

Product ID

Body Params

NAME
TYPE
DESCRIPTION
mediaIds

Array<string>

Media IDs to remove. If not specified, all media items are removed

Response Object

Remove Product Media Response

Returns an empty object.

Status/Error Codes

The response will include an HTTP status code.

Was this helpful?

Request

curl

Copy Code
1curl -X POST \
2 'https://www.wixapis.com/stores/v1/products/1044e7e4-37d1-0705-c5b3-623baae212fd/media/delete' \
3 --data-binary '{
4 "mediaIds": [
5 "mediaId1",
6 "mediaId2"
7 ]
8 }' \
9 -H 'Content-Type: application/json' \
10 -H 'Authorization: <AUTH>'

Response

json

1
2{}

Add Product Media To Choices

Links media items that are already associated with a specific product to a choice within the same product.

Media items can only be set for choices within one option at a time - e.g., if you set media items for some or all of the choices within the Colors option (blue, green, and red), you won't be able to also assign media items to choices within the Size option (S, M, and L).

You can clear existing media from choices via the Remove Product Media From Choices endpoint

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.MODIFY_PRODUCTS

PATCH

https://www.wixapis.com/stores/v1/products/{id}/choices/media

Path Params

NAME
TYPE
DESCRIPTION
id
Required

string

Product ID

Body Params

NAME
TYPE
DESCRIPTION
media

Array<object>

Response Object

Add Product Media To Choices Response

Returns an empty object.

Status/Error Codes

The response will include an HTTP status code.

Was this helpful?

Request

curl

Copy Code
1curl -X POST \
2 'https://www.wixapis.com/stores/v1/products/1044e7e4-37d1-0705-c5b3-623baae212fd/choices/media' \
3 --data-binary '{
4 "option": "Color",
5 "choice": "blue",
6 "mediaIds": [
7 "9cc22d8b8d5244aba9ed73fb1783fc26.jpg",
8 "fljseif3l4ij3l4ijl3r32fwfwf23234.jpg"
9 ]
10 }' \
11 -H 'Content-Type: application/json' \
12 -H 'Authorization: <AUTH>'

Response

json

1
2{}

Remove Product Media From Choices

Removes media items from all or some of a product's choices. (Media items can only be set for choices within one option at a time - e.g., if you set media items for some or all of the choices within the Colors option (blue, green, and red), you won't be able to also assign media items to choices within the Size option (S, M, and L).)

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.MODIFY_PRODUCTS

POST

https://www.wixapis.com/stores/v1/products/{id}/choices/media/delete

Path Params

NAME
TYPE
DESCRIPTION
id
Required

string

Product ID

Body Params

NAME
TYPE
DESCRIPTION
media

Array<object>

Optional - if not provided all media will be removed from all choices

Response Object

Remove Product Media From Choices Response

Returns an empty object.

Status/Error Codes

The response will include an HTTP status code.

Was this helpful?

Request

curl

Copy Code
1curl -X POST \
2 'https://www.wixapis.com/stores/v1/products/1044e7e4-37d1-0705-c5b3-623baae212fd/choices/media/delete' \
3 --data-binary '{
4 "option": "Color",
5 "choice": "blue",
6 "mediaIds": [
7 "9cc22d8b8d5244aba9ed73fb1783fc26.jpg",
8 "fljseif3l4ij3l4ijl3r32fwfwf23234.jpg"
9 ]
10 }' \
11 -H 'Content-Type: application/json' \
12 -H 'Authorization: <AUTH>'

Response

json

1
2{}

Product Changed

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.READ_PRODUCTS

Event Body

The event's data is received as a JSON Web Token (JWT). Make sure to verify that the data was received by Wix - read more about it in the Webhooks article.

Payload

NAME
TYPE
DESCRIPTION
productId

string

Product ID

changedFields

Array<string>

Was this helpful?

Example of ProductChanged

The data payload will include the following as an encoded JWT:

Event Body

json

1{
2 "data": {
3 "eventType": "<event-type>",
4 "instanceId": "<app-instance-id>",
5 "data": "<stringified-JSON>"
6 }
7}

The parsed data will include:

Sample Data

json

1
2{
3 "productId": "a60fef92-ee29-070f-a7ed-9bbc3cc1c2f4",
4 "changedFields": ["price"]
5}

Product Created

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.READ_PRODUCTS

Event Body

The event's data is received as a JSON Web Token (JWT). Make sure to verify that the data was received by Wix - read more about it in the Webhooks article.

Payload

NAME
TYPE
DESCRIPTION
name

string

Product name

sku

string

Product SKU (stock keeping unit). If variants are being managed, this will be empty

visible

boolean

Whether the product is visible to customers

price

object

Product price

media

object

Media items (images, videos etc) associated with this product

productPageUrl

object

Product page URL for this product (generated automatically by the server)

productId

string

Product ID (generated automatically by the catalog)

Was this helpful?

Example of ProductCreated

The data payload will include the following as an encoded JWT:

Event Body

json

1{
2 "data": {
3 "eventType": "<event-type>",
4 "instanceId": "<app-instance-id>",
5 "data": "<stringified-JSON>"
6 }
7}

The parsed data will include:

Sample Data

json

1
2{
3 "productId": "6693f74a-2a79-0bb7-00ef-2b8581bc8757",
4 "name": "my product",
5 "price": {
6 "currency": "ILS",
7 "price": 32,
8 "discountedPrice": 30.4,
9 "formatted": {
10 "price": "32.00 ₪",
11 "discountedPrice": "30.40 ₪"
12 }
13 },
14 "visible": true,
15 "media": {
16 "mainMedia": {
17 "thumbnail": {
18 "url": "https://static.wixstatic.com/media/689fa9dd0c7f47d4b45a0b78afccdc8a.jpg/v1/fit/w_50,h_50,q_90/file.jpg",
19 "width": 50,
20 "height": 50
21 },
22 "mediaType": "image",
23 "title": "",
24 "image": {
25 "url": "https://static.wixstatic.com/media/689fa9dd0c7f47d4b45a0b78afccdc8a.jpg/v1/fit/w_5760,h_3840,q_90/file.jpg",
26 "width": 5760,
27 "height": 3840
28 },
29 "id": "689fa9dd0c7f47d4b45a0b78afccdc8a.jpg"
30 },
31 "items": [ {
32 "thumbnail": {
33 "url": "https://static.wixstatic.com/media/689fa9dd0c7f47d4b45a0b78afccdc8a.jpg/v1/fit/w_50,h_50,q_90/file.jpg",
34 "width": 50,
35 "height": 50
36 },
37 "mediaType": "image",
38 "title": "",
39 "image": {
40 "url": "https://static.wixstatic.com/media/689fa9dd0c7f47d4b45a0b78afccdc8a.jpg/v1/fit/w_5760,h_3840,q_90/file.jpg",
41 "width": 5760,
42 "height": 3840
43 },
44 "id": "689fa9dd0c7f47d4b45a0b78afccdc8a.jpg"
45 }]
46 },
47 "sku": "38473",
48 "productPageUrl": {
49 "base": "https://my-website.com",
50 "path": "/product-page/my-product"
51 }
52}

Product Deleted

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.READ_PRODUCTS

Event Body

The event's data is received as a JSON Web Token (JWT). Make sure to verify that the data was received by Wix - read more about it in the Webhooks article.

Payload

NAME
TYPE
DESCRIPTION
productId

string

ID of deleted product

Was this helpful?

Example of ProductDeleted

The data payload will include the following as an encoded JWT:

Event Body

json

1{
2 "data": {
3 "eventType": "<event-type>",
4 "instanceId": "<app-instance-id>",
5 "data": "<stringified-JSON>"
6 }
7}

The parsed data will include:

Sample Data

json

1
2{"productId": "135101-thisIs-135101-someId"}

Query Variants

Returns product variants, based on either choices (option-choice key-value pairs) or variant IDs.
See Stores Pagination for more information

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.READ_PRODUCTS

POST

https://www.wixapis.com/stores/v1/products/{id}/variants/query

Path Params

NAME
TYPE
DESCRIPTION
id
Required

string

Requested product ID

Body Params

NAME
TYPE
DESCRIPTION
choices

object

Set of key-value pairs. The specific choices available or chosen from within a selection (e.g., choosing the red Selection triggers the red Choice). You may specify all the relevant choices for a specific variant, or only some of the options, which will return all corresponding variants (Not relevant when passing variant IDs)

variantIds

Array<string>

List of variant IDs (Not relevant when passing choices)

paging

object

Response Object

Query Variants Response

NAME
TYPE
DESCRIPTION
variants

Array<object>

All variants

metadata

object

totalResults

integer

Status/Error Codes

The response will include an HTTP status code.

Was this helpful?

Request

curl

Copy Code
1curl -X POST \
2 'https://www.wixapis.com/stores/v1/products/1044e7e4-37d1-0705-c5b3-623baae212fd/variants/query' \
3 --data-binary '{}' \
4 -H 'Content-Type: application/json' \
5 -H 'Authorization: <AUTH>'

Response

json

1
2{
3 "variants": [ {
4 "id": "00000000-0000-0001-0005-7c2f8071346c",
5 "choices": {"Color": "Green"},
6 "variant": {
7 "priceData": {
8 "currency": "ILS",
9 "price": 35.95,
10 "discountedPrice": 35.95,
11 "formatted": {
12 "price": "35.95 ₪",
13 "discountedPrice": "35.95 ₪"
14 }
15 },
16 "weight": 0,
17 "sku": "K301",
18 "visible": true
19 }
20 }],
21 "metadata": {
22 "items": 1,
23 "offset": 0
24 },
25 "totalResults": 1
26}

Update Variants

Updates data for the specified product variant

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.MODIFY_PRODUCTS

PATCH

https://www.wixapis.com/stores/v1/products/{id}/variants

Path Params

NAME
TYPE
DESCRIPTION
id
Required

string

ID of product with managed variants

Body Params

NAME
TYPE
DESCRIPTION
variants

Array<object>

Response Object

Update Variants Response

NAME
TYPE
DESCRIPTION
variants

Array<object>

All variants

Status/Error Codes

The response will include an HTTP status code.

Was this helpful?

Request

curl

Copy Code
1curl -X PATCH \
2 'https://www.wixapis.com/stores/v1/products/1044e7e4-37d1-0705-c5b3-623baae212fd/variants' \
3 --data-binary '{
4 "variants": [
5 {
6 "choices": {
7 "Size": 'S',
8 "Color": 'Blue'
9 },
10 "price": 100
11 }
12 ]
13 }' \
14 -H 'Content-Type: application/json' \
15 -H 'Authorization: <AUTH>'

Response

json

1
2{"variants": [{
3 "id": "00000000-0000-0020-0005-92338aaf6c4a",
4 "choices": {
5 "Size": "S",
6 "Color": "Blue"
7 },
8 "variant": {
9 "priceData": {
10 "currency": "USD",
11 "price": 100,
12 "discountedPrice": 100,
13 "formatted": {
14 "price": "$100.00",
15 "discountedPrice": "$100.00"
16 }
17 },
18 "weight": 0,
19 "sku": "",
20 "visible": true
21 }
22}]}

Reset All Variant Data

Resets all variant data to default values (price = current product price; weight = current product weight; SKU = current product SKU; visibility = true)

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.MODIFY_PRODUCTS

POST

https://www.wixapis.com/stores/v1/products/{id}/variants/resetToDefault

Path Params

NAME
TYPE
DESCRIPTION
id
Required

string

Product ID

Response Object

Reset All Variant Data Response

Returns an empty object.

Status/Error Codes

The response will include an HTTP status code.

Was this helpful?

Request

curl

Copy Code
1curl -X POST \
2 'https://www.wixapis.com/stores/v1/products/1044e7e4-37d1-0705-c5b3-623baae212fd/variants/resetToDefault' \
3 --data-binary '{}' \
4 -H 'Content-Type: application/json' \
5 -H 'Authorization: <AUTH>'

Response

json

1
2{}

Variants Changed

Authorization

This API requires an authorization header - pass the access token from the OAuth installation flow.

Permissions

The API requires WIX_STORES.READ_PRODUCTS

Event Body

The event's data is received as a JSON Web Token (JWT). Make sure to verify that the data was received by Wix - read more about it in the Webhooks article.

Payload

NAME
TYPE
DESCRIPTION
productId

string

Product ID

variants

Array<object>

Was this helpful?

Example of VariantsChanged

The data payload will include the following as an encoded JWT:

Event Body

json

1{
2 "data": {
3 "eventType": "<event-type>",
4 "instanceId": "<app-instance-id>",
5 "data": "<stringified-JSON>"
6 }
7}

The parsed data will include:

Sample Data

json

1
2{
3 "productId": "7e4f023f-53d2-70da-30bb-31662b3c095f",
4 "variants": [
5 {
6 "variantId": "00000000-0000-0002-0005-918e4641acb0",
7 "choices": {"Size": "large"},
8 "changedFields": [
9 "sku",
10 "price"
11 ]
12 },
13 {
14 "variantId": "00000000-0000-0001-0005-918e4641acb0",
15 "choices": {"Size": "small"},
16 "changedFields": [
17 "sku",
18 "price"
19 ]
20 },
21 {
22 "variantId": "00000000-0000-0004-0005-918e4641acb0",
23 "choices": {"Size": "mySize"},
24 "changedFields": ["sku"]
25 }
26 ]
27}

Inventory

Read & Write inventory from Wix Stores Inventory

Orders

Read orders from Wix Stores

)}