How do I give members, retail and wholesale different prices for the same item? Setting up pricing schemes
“How do I give members, retail and wholesale different prices for the same item?” With a pricing scheme for each: the same item carries a standard price in every scheme, and the branch, the applet and the customer decide which scheme is applied when a document line opens, so nobody types a price on the document.
A pricing scheme is how the same item carries more than one standard price — one for walk-in retail, one for members, one for wholesale — without anybody typing a price on a document. This page sets one up and, more importantly, explains which scheme a given line will use, what the line keeps once it has a price, and what moves when you change a price while every branch is selling — because that is where the surprises live.
Creating the schemes is the short part. Read What happens when a line is priced before you change a price that branches are already selling at.
Setting up pricing schemes, at a glance
- Step 1: Create the schemes — on this page.
- Step 2: Put the prices in — on this page.
- Step 3: Say which scheme each applet sells at.
- Step 4: Keep them in step.
- Step 5: Find out why a price changed.
The job runs across four pages: Steps 1 and 2 are on this one, Step 3 is on Which scheme each applet sells at, Steps 4 and 5 are on Keep schemes in step and trace a change, and how a line gets its price, the explanation behind every step, closes it on a page of its own.
Meet GadgetSphere
GadgetSphere Sdn Bhd prices three ways: Retail in the 22 branches, Member for its loyalty customers, and Wholesale for the distribution company’s corporate clients. Same 5,200 items, three price lists. One person in head office owns the three lists; the branches sell from them and do not type prices.
Pricing schemes, price books, and which one you want
Both change the price on a line, and they are not the same tool.
| Pricing scheme | Price book | |
|---|---|---|
| What it is | A standard price list — this item costs this much in this scheme | A set of conditional rules — if the customer, the item and the date look like this, adjust the price |
| Where the number lives | On the item, per scheme | In the price set’s treatment |
| Good for | Retail vs member vs wholesale price lists | Promotions, volume tiers, prices for one group of customers |
| Guide | This page | Setting up a price book |
They work together, and a business that runs promotions has a scheme paired with a price book: a line starts at its pricing-scheme price and a matching price set can then discount it. A price set can also name a scheme as its treatment’s price source, and the screens read that differently: on a sales order it applies the price set only to lines already on that scheme, at the till it takes the item’s price in that scheme as the figure to work from, and on a sales invoice it falls back to the price already on the line (Pricebook applet).
If you just want three standard price lists, you want pricing schemes and nothing else. Use a price book instead of a fourth scheme when the difference depends on a condition — a date window, a quantity, a customer category — rather than on who the buyer is.
Step 1: Create the schemes
Doc Item Maintenance > Pricing Schemes > Create
Three fields: the code, which is generated for you; the name, which is required; and a description.
Create Retail, Member and Wholesale. Name them for what they are, because the name is what everybody will see in a dropdown.
The scheme itself holds no prices. It is a column heading.
Step 2: Put the prices in
Doc Item Maintenance > Items > (an item) > Pricing Scheme tab
Each item has a row per scheme. For the flagship smartphone: RM 4,299 retail, RM 4,099 member, RM 3,950 wholesale. The item and its units must exist before it can carry a price row, so create items first and price them second.
For 5,200 items you do not do this one at a time. Two tools:
- Import Item with the Doc Item Pricing template takes a CSV of prices per scheme.
- Export Item with the same template exports the current prices, filtered by scheme if you like, so you can edit them and bring them back — export, edit, re-import is the safe way to make a bulk change.
Copying one scheme from another
Pricing Schemes > (a scheme) > Copy tab
This is the fastest way to create the second and third scheme: duplicate every item price from another scheme, optionally with an amendment. Build Retail properly, then copy it into Member with a reduction, and into Wholesale with a bigger one. Then correct the handful of items where the rule does not hold. Where the target scheme already has a price for an item, the copy changes it through the same update as an edit on the item’s tab, with the same knock-on effects (see Changing a price while 22 branches are selling).
A price for one specific supplier — and why the customer half does not work
Items > (an item) > Entity Pricing tab, or Entity Pricing Import for many at once. A row here ties one item to one counterparty, outside the scheme structure entirely, and it has a purchase half and a sales half.
The purchase half works. Replenishment reads the supplier’s row — purchase price, minimum and maximum order quantity, lead time — when it raises a purchase order for you. Use it sparingly all the same: a dozen supplier prices is maintainable, a thousand is not.
The sales half does not reach a sales document. You can type a sales price for a customer, save it, and see it on the tab afterwards — and no sales order, invoice, quotation or POS line will ever use it. When a line is added, the applet asks the item-scan endpoint for the item’s prices, and that query knows nothing about the customer on the document; it can only see pricing schemes. Nothing warns you, which is what makes this expensive: every invoice to that customer goes out at the ordinary price and looks perfectly normal.
To give one customer a different price, put them in a customer category (Customer Maintenance → Customer Category) and write a price book price set with a Customer Category rule. That rule is one the selling side genuinely evaluates.
Step 3: Say which scheme each applet sells at
Outside the till’s Add Item panel, the branch record’s own Default Pricing Scheme comes first, and the applet’s Default Selection › Default Pricing Scheme only when the branch has none; in the back office the customer’s own Pricing Scheme outranks both when the item has a price on it — it is blank unless somebody filled it in, which is what makes it easy to miss — and if the item is priced on exactly one scheme, that one is applied and no default is consulted at all.
POS adds two more layers: Branch Settings › Pricing Scheme, with a priority, prices the till’s Add Item panel (a scanned barcode ignores it), and the Role ↔ Pricing Scheme Link filters the schemes at the till (unless Show All Pricing Schemes is on) and not on a back-office document. The full order, and the check to run when a price surprises somebody, are on Which scheme each applet sells at.
Step 4: Keep them in step
BigLedger keeps no rule that ties one scheme to another: after a Copy, Member is a separate list, and a later change to Retail does not reach it. Keeping them in step is the price-list owner’s job, on a rhythm, by exporting the schemes side by side. The full step, with what each branch sees while a price change reaches it, is on Keep schemes in step and trace a change.
Step 5: Find out why a price changed
Doc Item Maintenance > Item Price Change is a report, not an editing tool: each row is one recorded change to one price row, old value beside new. It holds only what was recorded once BigLedger switched price history on for your tenant, so an empty report for an item you know was repriced means not recorded, not not changed. Start with the line, which keeps the price it was given. The full step, with what the report’s dates and User column really show, is on Keep schemes in step and trace a change.
What success looks like
Five minutes, on the flagship smartphone at one branch, GS-KV-01:
- Open the item’s Pricing Scheme tab. All three schemes have a price, and Member sits between Retail and Wholesale.
- Open the branch record for
GS-KV-01and note its Default Pricing Scheme. If it is blank, note the Sales Invoice applet’s Default Selection › Default Pricing Scheme instead. That is the scheme you expect. - Raise a draft sales invoice at
GS-KV-01for a customer whose own Pricing Scheme field is blank, and add the phone. Pass: the line opens at the expected scheme’s price. If it opens at another scheme’s price, the item is priced on only one scheme, or the customer field is not blank after all — Step 3 names the order to check. - Change the customer on that draft to one whose own Pricing Scheme is Member, delete the line and add it again. Pass: the line now opens at RM 4,099, the Member price.
- Open Item Price Change, leave the dates open and search for an item you know was repriced recently. Pass: a row with the old and new price. Nothing means history is not being recorded for you, and the report cannot help until BigLedger switches it on.
Discard the draft.
Common mistakes
| What goes wrong | What you see | The fix |
|---|---|---|
| Expecting the scheme itself to hold prices | An empty scheme that does nothing | Prices live on the item, per scheme |
| Building the second scheme item by item | Days of work | Use the scheme’s Copy tab, with an amendment |
| Correcting an item’s tax code and expecting the price rows to follow | The invoice still charges the old rate. The price row’s own edit form still shows the old Output Tax Code, and nothing compares it with the item’s | A price row keeps a copy of the item’s tax taken when the row was created and nothing refreshes it. Re-save the price rows, and see the Pricing Scheme tab |
| Treating the minimum price as a rule | Somebody sells below it anyway, through an import or the API | The minimum is checked in the browser only, and only when DISALLOW_SELL_BELOW_MIN_PRICE is on. The maximum price is checked nowhere at all |
| Setting a validity window on a price and expecting it to expire | The expired price is still offered, and still selected | The price query does not filter on those dates; only the POS and Sales Order v2 item search reads them, and only to choose the promotion price |
| Setting a customer’s special price on the item’s Entity Pricing tab | Nothing at all — the price saves, and every invoice still goes out at the ordinary price | Price the customer’s category from a price book price set. Entity Pricing’s purchase half is the half that works, and it is for suppliers |
| Using entity pricing for everything | Thousands of one-off prices nobody can audit | Use schemes for price lists and price books for conditional discounts; keep supplier entity prices for genuine exceptions |
The mistakes in choosing a scheme (no default, two cashiers on one till, one branch pricing differently) are with Step 3; those in changing and tracing a price (schemes drifting apart, drafts at the old price, repricing in trading hours, bundles, and reading Item Price Change) are with Steps 4 and 5.