Complete product CRUD operations including variants, media, collections, and bulk operations using direct Wix REST API calls.
From wix-ecom-coworknpx claudepluginhub itayher/wix-ecom-cowork --plugin wix-ecom-coworkThis skill uses the workspace's default tool permissions.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Enables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Complete product CRUD operations including variants, media, collections, and bulk operations using direct Wix REST API calls.
df7c18eb-009b-4868-9891-15e19dddbe67${API_KEY}${SITE_ID}Endpoint: POST https://www.wixapis.com/stores/v1/products/query
API Call:
curl -X POST "https://www.wixapis.com/stores/v1/products/query" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}" \
-H "Content-Type: application/json" \
-d '{
"query": {
"paging": {
"limit": 50,
"offset": 0
}
}
}'
Response:
{
"products": [
{
"id": "abc123",
"name": "Product Name",
"description": "Product description",
"price": 29.99,
"visible": true,
"productType": "physical",
"stock": {
"trackInventory": true,
"inStock": true,
"quantity": 100
}
}
],
"metadata": {
"count": 50,
"offset": 0,
"total": 234
}
}
curl -X POST "https://www.wixapis.com/stores/v1/products/query" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}" \
-H "Content-Type: application/json" \
-d '{
"query": {
"filter": "{\"visible\": true}",
"paging": {"limit": 100}
}
}'
curl -X POST "https://www.wixapis.com/stores/v1/products/query" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}" \
-H "Content-Type: application/json" \
-d '{
"query": {
"filter": "{\"price\": {\"$gte\": 10, \"$lte\": 100}}",
"sort": "{\"price\": \"asc\"}",
"paging": {"limit": 50}
}
}'
curl -X POST "https://www.wixapis.com/stores/v1/products/query" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}" \
-H "Content-Type: application/json" \
-d '{
"query": {
"filter": "{\"collectionIds\": \"collection-abc123\"}",
"paging": {"limit": 100}
}
}'
Endpoint: GET https://www.wixapis.com/stores/v1/products/{productId}
API Call:
curl -X GET "https://www.wixapis.com/stores/v1/products/${PRODUCT_ID}" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}" \
-H "Accept: application/json"
Response:
{
"product": {
"id": "abc123",
"name": "Product Name",
"slug": "product-name",
"visible": true,
"productType": "physical",
"description": "Full product description",
"price": 29.99,
"comparePrice": 39.99,
"sku": "PROD-001",
"weight": 1.5,
"stock": {
"trackInventory": true,
"inStock": true,
"quantity": 100
},
"media": {
"mainMedia": {
"image": {
"url": "https://static.wixstatic.com/media/image.jpg",
"altText": "Product image"
}
},
"items": []
},
"customTextFields": [],
"productOptions": [],
"variants": []
}
}
Endpoint: POST https://www.wixapis.com/stores/v1/products
API Call:
curl -X POST "https://www.wixapis.com/stores/v1/products" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}" \
-H "Content-Type: application/json" \
-d '{
"product": {
"name": "New Product",
"description": "Product description here",
"priceData": {
"price": 29.99
},
"productType": "physical",
"visible": true,
"stock": {
"trackInventory": true,
"quantity": 50
}
}
}'
Response:
{
"product": {
"id": "new-product-id-123",
"name": "New Product",
"slug": "new-product",
"price": 29.99,
"visible": true,
"stock": {
"trackInventory": true,
"inStock": true,
"quantity": 50
}
}
}
Endpoint: PATCH https://www.wixapis.com/stores/v1/products/{productId}
Update Price and Visibility:
curl -X PATCH "https://www.wixapis.com/stores/v1/products/${PRODUCT_ID}" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}" \
-H "Content-Type: application/json" \
-d '{
"product": {
"price": 24.99,
"comparePrice": 34.99,
"visible": true
}
}'
Update Description and SEO:
curl -X PATCH "https://www.wixapis.com/stores/v1/products/${PRODUCT_ID}" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}" \
-H "Content-Type: application/json" \
-d '{
"product": {
"description": "Updated product description",
"seoData": {
"tags": [
{
"type": "title",
"children": "SEO Title",
"custom": true
},
{
"type": "meta",
"props": {
"name": "description",
"content": "SEO description"
}
}
]
}
}
}'
Endpoint: DELETE https://www.wixapis.com/stores/v1/products/{productId}
API Call:
curl -X DELETE "https://www.wixapis.com/stores/v1/products/${PRODUCT_ID}" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}"
Response:
{
"product": {
"id": "abc123"
}
}
curl -X POST "https://www.wixapis.com/stores/v1/products" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}" \
-H "Content-Type: application/json" \
-d '{
"product": {
"name": "T-Shirt",
"description": "Cotton t-shirt",
"priceData": {
"price": 19.99
},
"productType": "physical",
"productOptions": [
{
"name": "Size",
"choices": [
{"value": "Small", "description": "S"},
{"value": "Medium", "description": "M"},
{"value": "Large", "description": "L"}
]
},
{
"name": "Color",
"choices": [
{"value": "Red"},
{"value": "Blue"},
{"value": "Green"}
]
}
],
"manageVariants": true
}
}'
curl -X POST "https://www.wixapis.com/stores/v1/products/query" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}" \
-H "Content-Type: application/json" \
-d '{
"query": {
"filter": "{\"id\": \"${PRODUCT_ID}\"}",
"paging": {"limit": 1}
}
}'
Extract variants from response:
{
"products": [
{
"id": "product-123",
"variants": [
{
"id": "variant-001",
"choices": {
"Size": "Small",
"Color": "Red"
},
"variant": {
"priceData": {
"price": 19.99
},
"stock": {
"trackQuantity": true,
"quantity": 10,
"inStock": true
},
"sku": "TSHIRT-S-RED"
}
}
]
}
]
}
curl -X PATCH "https://www.wixapis.com/stores/v1/products/${PRODUCT_ID}" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}" \
-H "Content-Type: application/json" \
-d '{
"product": {
"variants": [
{
"id": "variant-001",
"variant": {
"priceData": {
"price": 17.99,
"comparePrice": 24.99
}
}
}
]
}
}'
curl -X PATCH "https://www.wixapis.com/stores/v1/products/${PRODUCT_ID}" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}" \
-H "Content-Type: application/json" \
-d '{
"product": {
"media": {
"mainMedia": {
"image": {
"url": "https://static.wixstatic.com/media/your-image.jpg",
"altText": "Product main image"
}
}
}
}
}'
curl -X PATCH "https://www.wixapis.com/stores/v1/products/${PRODUCT_ID}" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}" \
-H "Content-Type: application/json" \
-d '{
"product": {
"media": {
"items": [
{
"image": {
"url": "https://static.wixstatic.com/media/image1.jpg",
"altText": "First image"
}
},
{
"image": {
"url": "https://static.wixstatic.com/media/image2.jpg",
"altText": "Second image"
}
}
]
}
}
}'
Endpoint: POST https://www.wixapis.com/stores/v1/collections/query
curl -X POST "https://www.wixapis.com/stores/v1/collections/query" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}" \
-H "Content-Type: application/json" \
-d '{
"query": {
"paging": {"limit": 50}
}
}'
Response:
{
"collections": [
{
"id": "collection-123",
"name": "Summer Collection",
"slug": "summer-collection",
"description": "Hot summer items",
"visible": true,
"numberOfProducts": 25
}
],
"metadata": {
"count": 1,
"total": 1
}
}
curl -X PATCH "https://www.wixapis.com/stores/v1/products/${PRODUCT_ID}" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}" \
-H "Content-Type: application/json" \
-d '{
"product": {
"collectionIds": ["collection-123", "collection-456"]
}
}'
curl -X PATCH "https://www.wixapis.com/stores/v1/products/${PRODUCT_ID}" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}" \
-H "Content-Type: application/json" \
-d '{
"product": {
"collectionIds": []
}
}'
Endpoint: POST https://www.wixapis.com/stores/v1/bulk/products/update
Maximum: 100 products per request
curl -X POST "https://www.wixapis.com/stores/v1/bulk/products/update" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}" \
-H "Content-Type: application/json" \
-d '{
"set": [
{
"id": "product-1",
"property": "visible",
"value": true
},
{
"id": "product-2",
"property": "visible",
"value": true
},
{
"id": "product-3",
"property": "visible",
"value": false
}
]
}'
Response:
{
"bulkActionMetadata": {
"totalSuccesses": 3,
"totalFailures": 0,
"undetailedFailures": 0
},
"results": [
{
"itemMetadata": {
"id": "product-1",
"originalIndex": 0,
"success": true
},
"item": {
"id": "product-1"
}
}
]
}
curl -X POST "https://www.wixapis.com/stores/v1/bulk/products/update" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}" \
-H "Content-Type: application/json" \
-d '{
"set": [
{
"id": "product-1",
"property": "price",
"value": 19.99
},
{
"id": "product-2",
"property": "price",
"value": 29.99
}
]
}'
Note: Use Bulk Adjust Product Properties endpoint for multiple properties per product
curl -X POST "https://www.wixapis.com/stores/v1/bulk/products/adjust" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}" \
-H "Content-Type: application/json" \
-d '{
"products": [
{
"id": "product-1",
"price": 19.99,
"visible": true,
"stock": {
"quantity": 50
}
},
{
"id": "product-2",
"price": 29.99,
"visible": false
}
]
}'
#!/bin/bash
OFFSET=0
LIMIT=100
TOTAL=999999
while [ $OFFSET -lt $TOTAL ]; do
response=$(curl -s -X POST "https://www.wixapis.com/stores/v1/products/query" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}" \
-H "Content-Type: application/json" \
-d "{\"query\": {\"paging\": {\"limit\": $LIMIT, \"offset\": $OFFSET}}}")
echo "$response" | jq '.products[]'
TOTAL=$(echo "$response" | jq '.metadata.total')
COUNT=$(echo "$response" | jq '.metadata.count')
OFFSET=$((OFFSET + COUNT))
if [ $COUNT -eq 0 ]; then
break
fi
done
curl -X POST "https://www.wixapis.com/stores/v1/products/query" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}" \
-H "Content-Type: application/json" \
-d '{
"query": {
"filter": "{\"stock.trackInventory\": true, \"stock.quantity\": {\"$lte\": 10}}",
"sort": "{\"stock.quantity\": \"asc\"}",
"paging": {"limit": 100}
}
}'
curl -X POST "https://www.wixapis.com/stores/v1/products/query" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}" \
-H "Content-Type: application/json" \
-d '{
"query": {
"filter": "{\"stock.inStock\": false, \"visible\": true}",
"paging": {"limit": 100}
}
}'
curl -X POST "https://www.wixapis.com/stores/v1/products/query" \
-H "Authorization: ${API_KEY}" \
-H "wix-site-id: ${SITE_ID}" \
-H "Content-Type: application/json" \
-d '{
"query": {
"filter": "{\"price\": {\"$gte\": 100}}",
"sort": "{\"price\": \"desc\"}",
"paging": {"limit": 50}
}
}'
{
"name": "Product Name",
"price": 29.99,
"productType": "physical"
}
{
"name": "Product Name",
"description": "Full product description",
"price": 29.99,
"comparePrice": 39.99,
"cost": 15.00,
"sku": "PROD-001",
"productType": "physical",
"visible": true,
"slug": "product-name",
"weight": 1.5,
"stock": {
"trackInventory": true,
"quantity": 100,
"inStock": true
},
"media": {
"mainMedia": {
"image": {
"url": "https://static.wixstatic.com/media/main.jpg",
"altText": "Main product image"
}
},
"items": []
},
"collectionIds": ["collection-123"],
"ribbon": "Sale",
"brand": "Brand Name",
"customTextFields": [],
"productOptions": [],
"manageVariants": false,
"variants": []
}