Product variables are available when the campaign is triggered on a product page or when a product is associated with the campaign trigger. They reflect the currently viewed or targeted product, including its pricing, imagery, ratings, and any discount applied by the campaign.
Price variables come in two flavours — formatted (e.g. ₹1,299) and number-only with the _wo_currency suffix (e.g. 1299). Use the number-only variant when you need to do calculations or apply filters, then format it with | currency.
product.name — The product's display name as it appears in the store.
product.price — The product's regular selling price, formatted with the store's currency symbol and locale.
product.price_wo_currency — The selling price as a raw number without currency formatting. Use this when you need to apply a filter or calculation.
product.effective_price — The final price the customer pays after the campaign discount is applied, formatted with currency.
product.effective_price_wo_currency — The effective price as a raw number.
product.compare_price — The original or crossed-out price set on the product (the "compare at" price), formatted with currency. Useful for showing the price before any ongoing sale.
product.compare_price_wo_currency — The compare-at price as a raw number.
product.discount_price — The amount discounted by the campaign alone, formatted with currency. This does not include any pre-existing price difference between the selling price and compare-at price.
product.discount_price_wo_currency — The campaign discount amount as a raw number.
product.discount_percent — The campaign discount as a percentage of the selling price.
product.compare_discount_amount — The total amount the customer saves relative to the product's original compare-at price, after both the existing price difference and the campaign discount are applied. Formatted with currency.
product.compare_discount_amount_wo_currency — The total saving vs original price as a raw number.
product.compare_discount_percentage — The total saving as a percentage of the original compare-at price. Always rounded to the nearest whole number.
product.image_url — The URL of the product's primary image.
product.category — The product's category or collection name.
product.rating — The product's average review rating (e.g. 4.5).
product.reviews — The total number of reviews the product has received.
product.tags — All tags applied to the product, returned as a comma-separated string. Use the
| splitfilter to extract individual tags.product.vendor — The product's vendor or brand name.
product.variant_count — The total number of variants available for this product (e.g. sizes, colours).
product.minPrice — The lowest variant price for this product, formatted with the store's currency symbol and locale. Useful for showing a "From ₹X" style label on products with multiple price points.
product.minPrice_wo_currency — The lowest variant price as a raw number without currency formatting.
product.maxPrice — The highest variant price for this product, formatted with the store's currency symbol and locale. Use alongside
product.minPriceto display a price range.product.maxPrice_wo_currency — The highest variant price as a raw number without currency formatting.
product.meta.* — A specific metafield value, accessed by its key — e.g.
product.meta.ingredients. Only metafields whose value is a number, boolean, or string up to 100 characters are accessible. Longer strings and complex objects are excluded.
Understanding compare_discount_amount vs discount_price
These two variables measure different things and are easy to confuse.
product.discount_price — only the discount the current campaign is giving.
product.compare_discount_amount — the full saving the customer gets relative to the product's original compare-at (crossed-out) price, combining the pre-existing price reduction and the campaign discount together.
Example: A product has an original price of ₹100 and a selling price of ₹90. Your campaign gives an additional 10% off, bringing the final price to ₹81.
product.discount_price → ₹9 (campaign discount only)
product.compare_discount_amount → ₹19 (total saving vs ₹100 original)
product.compare_discount_percentage → 19%
Use compare_discount_amount and compare_discount_percentage when you want to highlight the customer's total saving, which is typically the more compelling number to show.
