Price versus discount: Channels and Customer Groups

Decide whether a requirement is a Price concern or a discount concern, and understand why Channels are the recommended mechanism for negotiated B2B pricing.

Ask about this Page
Copy for LLM
View as Markdown

After completing this page, you should be able to:

  • Classify a requirement as a Price concern (Channels) or a discount concern (Customer Groups).

  • Explain how Channels and Customer Groups differ in what they bind to.

  • Justify Channel-based pricing as the default for per-company negotiated rates.

Architects new to B2B often reach for Customer Groups to set negotiated prices, because in many other systems a "price list" is attached to a customer segment. That instinct leads to avoidable complexity. This page draws the line between the two tools: Channels carry negotiated Price; Customer Groups drive discounts, and explains the architectural reason behind the recommendation, so you can defend it in a design review.

Both can scope a Price, but that is not the distinction

It is true, and worth stating plainly, that a Standalone Price can be scoped by either a Channel or a Customer Group. Customer Group is even the highest-priority dimension in price selection. So the difference between them is not "one prices and the other does not." The difference is what each one binds to:
  • A Channel binds to the Store. Attach a distribution Channel to a Store, and every Business Unit that resolves to that Store has the Channel available in its commercial context. Product browsing uses that Channel as priceChannel, and Cart Line Items use it as distributionChannel for price selection.
  • A Customer Group binds to the buyer. A Customer Group is resolved from the customerGroup on the Cart or the customerGroupAssignments on the Customer. There is no link from a Store to a Customer Group. So to price by Customer Group, the storefront or middleware must establish that group context on every Cart.

That single difference is the whole argument. With Channels, the Store you already designed in Module 1 supplies the valid pricing Channel for the buyer context. With Customer Groups, you take on responsibility for setting the right group on every buyer interaction. For negotiated per-company pricing (where the company already maps cleanly to a Store), Channels are simpler, more reliable, and the recommended default.

When to use which

Use this division when you evaluate a B2B pricing or discount requirement:

  • Negotiated contract price for a company → a distribution Channel on that company's Store, carrying Channel-scoped Standalone Prices. This is the primary B2B pattern.
  • Volume break on a negotiated price → a native Price tier on the Channel-scoped Standalone Price (from company-specific pricing). Still a Price concern, not a discount.
  • A discount applied on top of the agreed price (a temporary promotion, a campaign, a conditional reduction) → a Customer Group with Cart or Product Discounts targeting it.

In practice, discounts are comparatively rare in B2B because the negotiated price already reflects the commercial agreement. When a discount genuinely applies, the Customer Group is the right home for it, which is what Customer Groups are well suited to.

Why not model negotiated price as a Customer Group?

You can, and price selection will even prioritize it. But consider what you take on:
  • Every Cart must resolve the correct Customer Group for the buyer, because nothing on the Store does it for you.
  • A Customer-Group-scoped Price outranks a Channel-scoped Price in price selection. If you use Channels for negotiated price and Customer Groups for discounts on the same buyer, an accidentally Customer-Group-scoped Price can silently override the negotiated rate.
The cleaner architecture keeps the two scopes in separate jobs: Channels own the price the buyer pays; Customer Groups, when needed, own a discount applied to it. Keeping the price scope on the Store and out of the buyer's session is what makes the model predictable.

Worked example: classifying Atlas Corporate requirements

Atlas Corporate Solutions brings a mixed set of requirements. Classify each as a Price concern or a discount concern, then assign the mechanism.

RequirementConcernMechanism
Atlas's APAC division pays its negotiated contract rate on the full catalogPriceDistribution Channel on the APAC Store + Channel-scoped Standalone Prices
Unit price drops above 50 units on bulk consumablesPricePrice tier on the relevant Standalone Prices
A one-quarter 5% promotion on a product category to encourage trialDiscountCustomer Group for the promotion + a Cart or Product Discount targeting it
Atlas's EU division pays a different negotiated rate than APACPriceA separate distribution Channel on the EU Store

Notice that three of the four are Price concerns solved with Channels and tiers, and only the genuinely promotional requirement is a discount. That ratio is typical of B2B: the negotiated price carries most of the commercial logic, and Customer Groups handle the occasional discount on top.

Key takeaways

  • Both Channels and Customer Groups can scope a Price; the real difference is what they bind to.
  • A Channel binds to the Store, so a Business Unit resolves the pricing context from its Store, the recommended pattern for B2B negotiated pricing.
  • A Customer Group binds to the buyer (Cart or Customer), with no Store link, so it requires group context on every Cart.
  • A Customer-Group-scoped Price outranks a Channel-scoped Price in price selection, so mixing the two scopes for one buyer needs care.
  • Treat negotiated price as a Channel concern and discounts as a Customer Group concern; in B2B, discounts are the exception, not the mechanism.

Test your knowledge