Display tiered and bulk pricing
Show quantity breaks and volume discounts on a product detail page so the buyer sees how the unit price drops.
Query
query GetBulkPrices($productId: Int!, $taxZone: String) {
product(productId: $productId) {
... on Product {
price(input: { taxZone: $taxZone }) {
gross
net
}
priceData {
bulkPriceDiscountType
}
bulkPrices(input: { taxZone: $taxZone }) {
gross
net
list
discount {
quantityFrom
}
}
}
}
}
Variables
{
"productId": 123,
"taxZone": "NL"
}
Response
{
"data": {
"product": {
"price": { "gross": 10.00, "net": 12.10 },
"priceData": { "bulkPriceDiscountType": "NET_PRICE" },
"bulkPrices": [
{ "gross": 8.50, "net": 10.29, "list": 10.00, "discount": { "quantityFrom": 10 } },
{ "gross": 7.00, "net": 8.47, "list": 10.00, "discount": { "quantityFrom": 50 } }
]
}
}
}
How it works
Each entry in bulkPrices is the unit price that applies from discount.quantityFrom up to the next tier's threshold. The bulkPriceDiscountType tells you how the tier price was derived: NET_PRICE is a fixed unit price, LIST_PRICE_MIN is a percentage off the list price and COST_PRICE_PLUS is the cost price plus a margin. The list field always shows the original list price for reference. Below the first threshold the regular price applies.
See also
- Tiered and volume pricing — full guide on bulk pricing