ZingaShopSign in

Pricing

Pricing

Set detailed prices for a product variant — flat prices, compare-at (strike-
through) prices, and quantity-break tiers — per currency or per price list.

Requires data:write:products (or data:write:*).

Set variant prices

PATCH /papi/v1/variants/{variant_id}/prices

The body carries a prices array. Each entry targets a price list (by
pricelistId) or a currency (by currency), and sets either a flat
price or a tier ladder:

Field Notes
pricelistId Target a specific price list…
currency …or target by currency (ISO code)
priceCents Flat offer price, in cents (the amount charged)
compareAtCents Standard price shown struck through, in cents
tiers Quantity-break ladder (instead of a flat price)

Each tier is { fromQty, toQty, priceCents, compareAtCents }; use toQty: null
for the open-ended top tier. Provide exactly one of priceCents or tiers per
entry — sending neither (or both) returns 400 provide_priceCents_or_tiers.

curl -X PATCH https://api-v1.zingasuite.com/papi/v1/variants/<variant-id>/prices \
  -H "Authorization: Bearer zk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "prices": [
      { "currency": "USD", "priceCents": 1799, "compareAtCents": 1999 },
      { "currency": "INR", "tiers": [
        { "fromQty": 1, "toQty": 9,   "priceCents": 149900 },
        { "fromQty": 10, "toQty": null, "priceCents": 129900 }
      ]}
    ]
  }'

Offer vs standard price

  • priceCents is the offer price — what the customer pays.
  • compareAtCents is the standard price — shown struck through to signal a
    discount. Set it equal to priceCents (or omit it) when there is no discount.

Reading prices back

Fetch the product with GET /products/{id}?websiteId=<id>; each variant's
prices array reflects what you set here, including the resolved tiers. See
Products.

For price lists as objects (create/list/update), use the pricelists resource
under Generic resources.

Was this helpful?