Back to API docs

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

key
string, required

Your API key.

items
array of objects, required for bulk

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]
  }
}

Response

{
  "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

Notes