Standardized Product Pricing in EcartAPI
Standardized Product Pricing in EcartAPI v2 — August 10, 2026
Effective August 10, 2026, we are standardizing how product and variant price references are returned across all platforms in EcartAPI v2. Until now, price, salePrice, and discount behaved differently depending on the platform. From that date they follow a single, platform-independent contract:
price— the original / list (regular) price reference.salePrice— the discounted price reference; always present, and equal topricewhen there is no promotion.discount— the amount saved (price − salePrice);"0.00"when there is no promotion.
These are product price references only and do not affect orders in any way. This update also lets Shopify integrations expose the list price (so you can display the real discount) and returns a consistent category.all shape ({ id, name }) on Shopify.
What you need to do
For most integrations, no action is required — salePrice and discount will now always be populated where they were often null before. Review your integration only if you fall into one of these cases:
- Shopify or Tiendanube — If you read
priceas the discounted price reference, readsalePriceinstead.pricenow represents the list price reference. - Olisterp, Shein, or Tray —
discountnow represents the amount saved, not the promotional price. The discounted price reference is available insalePrice. - Shopify
products.category.all— If you expect an array of strings, note it now returns an array of{ id, name }objects, consistent with other platforms.
Important:
discountis always a monetary amount (never a percentage),salePriceis never greater thanprice, and when a store reports no price at all, the three fields are returned asnull— no values are invented.
For the full pricing model, per-platform mapping, and JSON examples, see Product & Variant Pricing — Canonical Model.