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 to price when 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 price as the discounted price reference, read salePrice instead. price now represents the list price reference.
  • Olisterp, Shein, or Traydiscount now represents the amount saved, not the promotional price. The discounted price reference is available in salePrice.
  • 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: discount is always a monetary amount (never a percentage), salePrice is never greater than price, and when a store reports no price at all, the three fields are returned as null — no values are invented.


For the full pricing model, per-platform mapping, and JSON examples, see Product & Variant Pricing — Canonical Model.