Quantity on Product Cards
Let's start with the honest answer: the built-in storefront Product Card has no quantity field, and you cannot add one to it. Its complete field list is Product Name, Description, Price, Period, Image URL, Button Text, Button Action, and Button Link URL. There is no quantity input, no spinner, and no per-card quantity value anywhere in that component. If you are looking for the legacy card's input-spinner, it has no equivalent here.
Quantity is real in PeakCommerce — it just lives in the journey and product-set path, not on a storefront card.
Where quantity actually lives
Per-line add-on quantity. In a journey's billing step, each add-on from the product set renders as a checkbox. When the buyer checks one, a Quantity number input appears beneath it with a minimum of 1. The value is persisted into the journey context as addonQty_<productId>, the order summary multiplies the add-on's unit price by it, and the cart line is created with that quantity. Journey URLs can prefill it, so a link can carry a pre-built cart with custom add-on counts.
Quantity-driven plan pricing. The dynamic pricing page derives quantity tiers from the product set's pricing bands and re-resolves prices when the buyer moves between them. It calls the public pricing resolver with journeyId, currency, and quantity, then redraws every plan card from the returned per-product amounts. Quantity here is a page-level tier selector that drives which price a card shows — not a spinner on each card.
How to get the intent
To sell N of something, use a journey backed by a product set. Model the item as an add-on so the buyer gets the checkbox plus the quantity input, and so the quantity reaches the cart and the order.
To price a plan by volume, use pricing bands on the set item. The pricing page turns those bands into the tier control automatically.
If you genuinely need a bespoke card with its own quantity control, build a code-type custom component and resolve prices through the runtime bridge (
window.PC.call("data", "pricing-resolve", …)). You own the input and the state; nothing about the built-in card is reused.
Gotchas
Quantity is persisted per product id, not per set item. Two items in the same set that point at the same product share one
addonQty_<productId>value.The floor is 1. Values are clamped, and unchecking the add-on clears the stored quantity.
The quantity input only appears in the journey billing step. Other add-on lists render checkbox-only — see Checkbox Add-ons and Conditional Quantity.
Related
Last updated
Was this helpful?
