Zopping
API reference

Inventory

Set price and stock per store and read the audit trail. An item is the store-scoped record for a product (price, discount, stock, shelf location). Use stock-override to cap or buffer purchasable quantity by product, category or tag.

Base URLhttps://zopping.com

Items (price & stock)

The store-scoped sellable record. Upsert one per productId + storeId. Set mrp, discount and stock; use unlimitedStock for made-to-order or unbounded items. You may key by your own ids with clientItemId / clientStoreId.

Fields
FieldTypeDescription
productIdintegerrequiredProduct/variant this item is for.
storeIdintegerrequiredStore this price/stock applies to.
organizationIdstringrequired
stockintegerAbsolute available stock.
stockDeltaintegerAdjust stock by a relative amount instead of absolute.
mrpnumberMaximum retail price.
discountnumberDiscount off MRP.
unlimitedStockbooleanTreat as always in stock.
statusenumENABLED or HIDDEN.
clientItemIdstringkeyYour external product id.
clientStoreIdstringkeyYour external store id.
hsnCodestringTax HSN code.
locationobjectShelf location: aisle, rack, position.
GET/api/inventory-service/item

List items

Returns price & stock for the given products in a store.

Parameters
ParameterTypeDescription
organizationIdrequiredinteger· query
storeIdrequiredinteger· query
productIdrequiredstring· queryProduct id(s), comma-separated.
sellerIDinteger· query
Request
curl "https://zopping.com/api/inventory-service/item?organizationId=<org-id>&storeId=<store-id>&productId=88120" \
  -H "Authorization: Bearer $ZOPPING_TOKEN"
POST/api/inventory-service/item

Upsert an item

Create or update the price and stock for a product in a store.

Request
curl -X POST https://zopping.com/api/inventory-service/item \
  -H "Authorization: Bearer $ZOPPING_TOKEN" -H "Content-Type: application/json" \
  -d '{"organizationId":"<org-id>","productId":88120,"storeId":"<store-id>","stock":240,"mrp":28.0,"discount":2.0,"status":"ENABLED"}'
Request body
{
  "organizationId": "<org-id>",
  "productId": 88120,
  "storeId": "<store-id>",
  "stock": 240,
  "mrp": 28,
  "discount": 2,
  "status": "ENABLED",
  "location": {
    "aisle": "12",
    "rack": "4",
    "position": "B"
  }
}
PUT/api/inventory-service/item/{id}

Update an item

Path `id` is the `productId`. Send `stockDelta` to adjust stock relatively.

Parameters
ParameterTypeDescription
idrequiredinteger· pathProduct id.
DELETE/api/inventory-service/item/{id}

Delete an item

Inventory log

A read-only audit trail of stock changes — who changed what, by how much, and the resulting stock.

Fields
FieldTypeDescription
productNamestringread-only
storeNamestringread-only
stockDeltaintegerread-onlyChange applied.
stockintegerread-onlyStock after the change.
reasonstringread-only
datestringread-only
GET/api/inventory-service/inventory-log

List stock changes

Parameters
ParameterTypeDescription
organizationIdrequiredinteger· query
storeIdinteger· query
productIdstring· queryProduct id(s), comma-separated.
Response
{
  "inventoryLog": [
    {
      "productName": "Tata Salt 1kg",
      "storeName": "MG Road",
      "stockDelta": 50,
      "stock": 240,
      "reason": "RESTOCK",
      "date": "2026-06-20"
    }
  ],
  "count": 1,
  "limit": 20,
  "offSet": 0
}

Stock overrides

Constrain purchasable quantity beyond raw stock — a safety stockBuffer, min/max purchasable limits, or bulk thresholds — scoped by PRODUCT, CATEGORY or TAG and optionally by DELIVERY/PICKUP.

What & when. Raw stock says how many you have; a *stock override* governs how many a shopper may actually buy. Reach for it to hold back a safety buffer (never sell the last N units), cap quantity per order (e.g. "max 2 per customer"), or set different limits for delivery vs pickup — applied to one product or a whole category/tag.
Requires the StockOverrideextension
Fields
FieldTypeDescription
organizationIdstringrequired
storeIdinteger
typeenumPRODUCT · CATEGORY · TAG.
entityIdintegerId of the product/category/tag.
stockBufferintegerSafety stock held back from sale.
maxPurchasableStockinteger
minPurchasableStockinteger
orderTypeenumDELIVERY or PICKUP.
GET/api/catalogue-service/stock-override

List stock overrides

Parameters
ParameterTypeDescription
organizationIdrequiredstring· query
storeIdinteger· query
typeenum· query
entityIdinteger· query
PUT/api/catalogue-service/stock-override

Set a stock override

Request body
{
  "organizationId": "<org-id>",
  "storeId": "<store-id>",
  "type": "PRODUCT",
  "entityId": 88120,
  "stockBuffer": 10,
  "maxPurchasableStock": 20,
  "orderType": "DELIVERY"
}
DELETE/api/catalogue-service/stock-override

Remove a stock override