Fetch the product by key or ID and note the current version for optimistic concurrency
Use the addPrice product update action with a price object that includes a tiers array; each tier has minimumQuantity and value (typed Money with currencyCode and centAmount)
Set customerGroup or channel on the price to scope the tiered pricing to a specific buyer segment or sales channel if needed
Publish the product changes (using the publish action) so staged prices become current and visible via the Product Projections API
Verify via a GET to /product-projections/{id}?staged=false that the prices.tiers array reflects the intended breaks before going live
Known gotchas
Tier entries must be ordered by minimumQuantity ascending in the tiers array; out-of-order tiers may be accepted but can cause unexpected pricing resolution at query time
Price tiers are evaluated at cart calculation time based on line item quantity — they do not automatically display on the product page unless the storefront explicitly fetches and renders tier data
Changing a price (rather than removing and re-adding it) uses the changePrice action with the priceId; using addPrice for an already-existing priceId creates a duplicate rather than updating
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp