In this guide 6 sections
Build wholesale pricing in four layers. Start with a base list, add dealer tier lists and quantity breaks, then record negotiated contract prices for named dealers, with a fixed rule for which price wins. Add minimum order values and credit limits, and show each logged in dealer only the prices assigned to their own account.
Start with the base list and the tiers
Begin with one master price list per currency. Every item code carries a list price and a landed cost, for example a 6205 bearing, a 16 amp MCB or a 20 litre drum of hydraulic oil. Everything else is a rule on top.
Next define dealer tiers. A small set works best, such as stockist, dealer and retailer, and each tier gets a fixed discount off list or its own price file. Every dealer account belongs to exactly one tier.
Resist creating a tier for each customer. A dealer who negotiated special terms on cable and switchgear holds a contract price, which sits one layer above the tier and expires on its own date.
- Master list with cost and list price per item code
- Tier name and its discount or own price list
- Currency and tax treatment per tier
- Effective from and valid until dates
Add quantity breaks and contract prices
Quantity breaks reward bigger lines. Define them as bands: one to forty nine units at the tier price, fifty to ninety nine at a lower price, and so on. Decide whether a band applies to one line or to the total across a product family such as all pipe fittings. Bands must not overlap.
Contract prices are negotiated for named dealers on named items, often tied to an annual rebate, and each one needs an approver who signed the deal. Store each as one record holding customer, SKU, price, start date, end date and approver, so that nobody has to hunt through email for the agreed rate later. An expired contract must lapse by itself.
Mixed pack sizes cause trouble. Price per base unit and convert from there, so a carton of twelve, a pallet layer and a single piece never disagree on the same invoice line. Convert once. Use it everywhere.
Decide which price wins
The system needs a fixed order. A common rule: an active contract price wins, then the tier quantity break, then the tier price, then the master list. Write the order on one plain sheet and pin it beside the quotation desk where every salesperson sees it before quoting. Plain wording only.
Decide whether a seasonal promotion or a clearance coupon may stack with a contract price, because without that rule a dealer can land below your floor. Set a minimum margin per SKU and hold every line below it for a sales manager, who can approve the exception or ask the dealer to adjust the quantity.
Log which rule produced each price on every order line, so that when a dealer disputes an invoice the sales desk can show the reason within seconds. Evidence ends disputes.
- Contract price, then tier break, then tier, then list
- Stacking allowed or blocked with promotions
- Floor price per item
- Manager approval for any line under the floor
Minimum orders and credit limits
Pricing rules sit beside commercial rules. Set a minimum order value per tier, plus a minimum quantity or case size for items sold in packs, such as a box of fifty fasteners. Show the shortfall in the cart. The dealer then fixes it before checkout.
Connect the credit limit from your accounting package, whether Zoho Books, QuickBooks or SAP Business One, so the portal reads each dealer’s outstanding balance live. It should weigh ageing invoices, then hold or warn on any order that would breach the limit, sending held orders to the area manager.
Payment terms can follow the tier too, running from advance payment for new stockists to net thirty or open account for dealers with a clean record. Terms follow trust, not size.
Show each dealer only their own prices
Prices must depend on login. A visitor who is not signed in sees the catalogue without prices, or a request to apply for a dealer account. A signed in dealer sees only the prices resolved for that account and tier, calculated on the server at the moment the page is built.
Test this with real accounts. Log in as a stockist, a dealer and a retailer, then compare the same ten SKUs line by line against the contract table and the tier sheet. Check that Cloudflare or any other page cache never serves one dealer’s price list to another dealer, because cached pages ignore who is logged in. A cached page leaks prices.
Next step: export your current price lists, mark which ones are really contracts, and draft the price wins rule on one page.
Dealer pricing rules sheet
The sheet has three blocks. The first block lists each tier with its discount, minimum order value, credit limit, payment terms and the dealers assigned to it. The second is the contract price table with columns for dealer, SKU, price, start, end and approver, and the third holds the price wins order and the floor margin.
Open a blank worksheet to printQuestions owners ask
How many dealer tiers should we have?
Three or four cover most distributors. More tiers make the rules hard to explain and audit, so handle exceptions through contract prices on specific SKUs instead of inventing another tier.
Can dealers see each other’s prices?
They should not. Resolve the price on the server for the logged in account, keep price pages out of shared caches, and test with accounts before opening the portal to dealers.
What happens when a contract price expires?
The system should fall back to the tier price on the end date, and the account manager should receive a reminder a few weeks earlier. Renewal talks start early.
Should the portal block orders over the credit limit?
Usually it should hold them for approval. The account manager can release the order after a payment arrives or raise the limit for a trusted dealer, while the dealer sees why it waits.
