Who this is for. Developers and solution architects building a store for trade or business customers. After this page you can give a group of customers their own prices, decide how those prices combine with other discounts, and choose the approval pattern that suits the client.
Prices for a group of customers
A product has one price per currency (Prices and currencies). Prices for a group of customers are a discount with a person-group condition: put the trade customers in a group, and give a discount a rule whose condition allows that group. The condition checks the groups of the signed-in member. A member in an allowed group gets the discount; everyone else, guests included, pays the catalogue price. A condition can also forbid a list of groups, to keep a discount away from them.
The discount's action sets the amount. An action covers all the items in the cart or chosen products, and takes off a percentage or a fixed amount:
| Amount | Takes off | Currencies |
|---|---|---|
| Percentage | A share of the price, from 0 to 100 | Every currency: one action covers them all |
| Fixed amount | A set amount of money | The action's own currency, or the site's default currency when it has none. A store that sells in several currencies gives the discount one fixed-amount action per currency. |
For a customer with prices of its own, give that customer's people a group of their own and the group its own discount. A price agreed for one order goes on a quote instead: a quote is priced before discounts, and staff enter the agreed prices on it (The life of a quote).
How a group discount combines with others
Every discount whose rules match the order applies. Discounts are taken in position order, and two flags decide how they combine:
- Final, on a discount or on one of its rules: a discount or rule marked final stops any discount after it from applying.
- Waterfall, on each action, on by default: on, the action takes its amount from the price the discounts before it left; off, it works from the item's original price.
To keep a trade price from combining with a storewide sale, give the group discount a position before the sale and mark it final. Where the two should combine, set the trade action's waterfall on purpose: after a 20% sale, a 10% trade discount with waterfall on takes 10% of the sale price, 28% off in all; with waterfall off it takes 10% of the original price, 30% off in all. How discounts and codes show at checkout is on Discounts at checkout.
Showing trade prices while browsing
Product pages and listings show the catalogue price: a discount is worked out in the cart and the checkout, and a product's price stays as entered. To show trade customers their price while they browse, calculate it in the template from the same numbers, the catalogue price less the group discount's percentage, for a signed-in member of the trade group. When the discount changes, change the figure the template uses with it, so the product page and the cart show the same price.
A public page is cached and served to every visitor, so print the trade price in an uncached fragment, the way a cached page shows who is signed in (Show logged-in state on a cached page).