apiupdateprices JSON request body bulk by SKU products + variations
POST /api/updateprices updates prices only. It does not create products or change other fields.
SKU matching
Each row is matched by sku using case-insensitive comparison.
Variation SKUs are checked first; if no variation matches, a simple product SKU is used.
Deleted products are not updated.
Top-level JSON fields
keyYour API key.
items
Bulk price updates. Each item must contain sku and price.
You can send thousands of rows in one request.
{
"key": "YOUR_API_KEY",
"items": [
{ "sku": "SIMPLE-001", "price": 19.99 },
{ "sku": "VAR-RED-S", "price": 24.5 },
{
"sku": "TIERED-001",
"price": {
"Supplier A": {
"1": [10, 12.5, 0, 5],
"10": [9, 11, 0, 0]
}
}
}
]
}
Single-item mode
If items is omitted, you may send one sku and price at the top level:
{
"key": "YOUR_API_KEY",
"sku": "SIMPLE-001",
"price": 29.99
}
price formats
Simple number
When price is a number (or numeric string), the API stores one tier:
amount 1, cost 0, sale price = your number, delivery 0, discount 0.
{ "sku": "ABC", "price": 15.5 }
Stored as:
{
"Supplier": {
"1": [0, 15.5, 0, 0]
}
}
If the product or variation already has a price object with supplier names, the first existing supplier name is reused instead of Supplier.
Full price object
Same structure as apicreateproduct price / variation prices:
{
"Supplier A": {
"1": [100, 110, 0, 5],
"10": [90, 95, 0, 0]
}
}
"1","10"= quantity tiers[cost, sale_price, delivery, discount]- index 3 = discount percent (default
0when omitted — 3-element tiers remain valid)
Response
"status": "ok"when all items were updated"status": "partial"when some items succeeded and some failed"status": "error"when none of the items succeeded
{
"status": "partial",
"data": {
"updated": [
{
"index": 0,
"sku": "SIMPLE-001",
"type": "product",
"id": 42,
"price": { "Supplier": { "1": [0, 19.99, 0, 0] } }
},
{
"index": 1,
"sku": "VAR-RED-S",
"type": "variation",
"id": 7,
"product_id": 42,
"price": { "Supplier": { "1": [0, 24.5, 0, 10] } }
}
],
"errors": [
{ "index": 2, "sku": "MISSING-SKU", "error": "not found" }
],
"count_updated": 2,
"count_errors": 1
}
}
Common errors per item
sku required— empty or missing SKUprice required— missingpricefieldprice invalid—priceis not a number or valid price objectnot found— no product or variation with that SKU
Notes
- Only the
pricefield is changed (and productsupplieraverage sale price is recalculated for simple products). - Variable parent products are updated when their own SKU is sent; variation rows update
product_variations.price. - Other product fields (name, category, attributes, images, etc.) are untouched.