Maxim

Maxim

Last updated on Oct 8, 2026

Sets a product's stock at a storage location. You pass the final stock, not the change: Controlata creates an adjustment for the difference between the current and the new stock.

v1/products/update_stock.php

Parameters

Field Type Required Description
product_id int Yes Product ID
storage_id int Yes Storage location ID
stock float Yes New stock
notes string No Notes for the adjustment

If stock sync with Shopify is connected in Controlata, the new stock is sent to Shopify per its settings, like any other stock change.

Example request

{
    "product_id": 3120,
    "storage_id": 3999,
    "stock": 12,
    "notes": "Stocktake at the storage location"
}

Example response

{
    "success": true
}

Errors

Error Reason
No stock in input A required field is missing (instead of stock, the field's name)
Invalid stock value. Must be a number The stock is not a number, e.g. "" or "4,2"
Storage ID not found Storage location not found or deleted
Product not found or access denied Product not found or deleted