Shopify B2B: quantity rules and quantity price breaks on products
domain: shopify.dev · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
In-depth guide
Shopify GraphQL Admin API rate limits — the full failure-mode walkthrough related to shopify.dev, checked against official docs, with linked verified routes.
Steps
Use the quantityRuleCreate mutation to set minimum, maximum, and increment quantity rules on a product variant within a catalog context.
Provide a QuantityRuleInput with minimumQuantity, maximumQuantity (optional), and increment fields; these enforce ordering constraints at checkout for B2B buyers.
Add quantity price breaks via quantityPricingByVariantUpdate or by adding PriceListPrice entries with minimumQuantity thresholds to a price list using priceListFixedPricesAdd with quantity parameters.
Query the price list's prices with their minimumQuantity fields to verify tier pricing is correctly configured.
Test the resolved price in a B2B buyer session by adding the variant quantity that should trigger the break and checking cart.lines.cost.
Consult current Shopify B2B and price list documentation for whether quantity price breaks are configured at the price list level or via a separate quantity pricing feature.
Known gotchas
Quantity rules are enforced at checkout via Shopify's validation; however, the Storefront API cart does not always surface quantity rule violations as userErrors in real time—test the full checkout path.
Quantity price breaks and quantity rules are separate concepts and must be configured independently; having a minimum quantity rule does not automatically create tiered pricing.
Give your agent this knowledge — and 15,600+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?