Skip to main content

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 {
gross
net
list
from
}
}
}
}

Variables

{
"productId": 123,
"taxZone": "NL"
}

Response

{
"data": {
"product": {
"price": { "gross": 10.00, "net": 12.10 },
"priceData": { "bulkPriceDiscountType": "NET_PRICE" },
"bulkPrices": [
{ "gross": 10.00, "net": 12.10, "list": 10.00, "from": 1 },
{ "gross": 8.50, "net": 10.29, "list": 10.00, "from": 10 },
{ "gross": 7.00, "net": 8.47, "list": 10.00, "from": 50 }
]
}
}
}

How it works

Each entry in bulkPrices represents the unit price at a quantity threshold. The from field is the minimum quantity for that tier — the tier applies from that quantity up to the next tier's from - 1. The bulkPriceDiscountType determines how tiers work: NET_PRICE means each tier's gross/net is the absolute unit price, while PERCENTAGE means the value is a discount off the base price. The list field always shows the original list price for reference.

See also