A price book is the layer that acts last — transcript
Play this as a presentation — one slide per step, with the same narration. Every word of every step is on this page.
This lesson is for whoever at GadgetSphere sets up promotions and has wondered why a price book that looks perfectly configured changes nothing on a sales line. In about twelve minutes you will know what a price book actually does, the single setting that decides whether it runs at all, and which two controls on the book itself are decoration.
Step 1 — Put the price book in the right place in the chain
After this step you will stop thinking of a price book as a price list. The pricing scheme already decided what this item costs: the price lives on the item’s own price record, one per scheme, item and unit of measure, and the document opens the line with that number on it. The price book runs after that, on the number that is already there. It does not choose a price list, it does not replace one, and on its own it has no prices in it at all. What it has is conditions — who, where, when, which items — and an instruction for what to do to a price that already exists.
Reference: Pricebook — Overview
Step 2 — Give the applet exactly one book, or nothing happens
After this step you will have fixed the commonest reason a promotion does nothing. Each applet that can apply a price book — the till, sales invoice, sales order, sales quotation — loads the one book named in its own Default Pricebook setting, and builds its engine for that book alone. Not the active books. Not all of them. One, per applet, per tenant. If GadgetSphere’s till points at the festive book and the sales invoice applet points at nothing, a promotion you wrote applies at twenty-two counters and never on an invoice. This is a setting in the consuming applet, not in the Pricebook applet, which is exactly why it is the step everyone forgets.
Reference: Pricebook — Settings in other applets that control this applet
Step 3 — Stop trying to switch a book off with its Status
After this step you will not lose an afternoon to a control that does nothing. The Price Book edit screen has a Status of Active or Inactive. It is saved as an extension row beside the book, and no engine anywhere reads it. All five read paths were searched — Java accessors, raw SQL, resources, every applet repository, and the serialised response — and the only thing that reads that value back is this applet’s own edit screen, redisplaying what you typed. Setting a book Inactive leaves every one of its price sets applying exactly as before. To stop a book, clear the Default Pricebook setting in the applet that uses it, or set each price set Inactive.
Reference: Pricebook — Price Book — create
Step 4 — Leave Calculation Logic alone unless you scan cash bills
After this step you will know why a drop-down with nine options has one reader. Calculation Logic is meant to decide between several matching price sets — lowest amount, highest points, priority ascending and so on. Exactly one piece of code reads it, and it is the server-side processor that awards membership points from scanned cash bills. Nothing on a till, a sales invoice, an order or a quotation consults it; they all use priority order and first match, which is the next lesson. The data agrees with the code: across every tenant database, almost every price book leaves this field unset, and the handful of values that are set sit in a very small number of tenants.
Reference: Pricebook — Points: the till computes, the server fills the gaps
Step 5 — Recognise that a price set holds no price either
After this step you will read a price set correctly. A price set has three parts and only the third does anything to money. The rules say who qualifies, on the Doc Hdr tab, and which items are covered, on the Single Line tab. The treatment says what happens: a discount, a sales price, or membership points, each one an operator and a value applied to a source. That source is where the number comes from — the standard amount already on the line, the moving-average cost, the net amount, or a named pricing scheme. So a price set is a conditional instruction about an existing price, and the whole of the rest of this series is about which instruction runs and against which number.
Reference: Pricebook — Price Set — Treatment tab
Step 6 — Take the one sentence away
After this step you will have the sentence for anyone who asks what a price book is. A pricing scheme decides what an item costs; a price book decides what happens to that cost when a condition is met; and the price book only runs where an applet has been told to load it. Everything that goes wrong on this surface goes wrong in one of three places — the book never ran, the wrong price set won, or the treatment acted on a number you did not expect. The next four lessons take those three in order, and the third of them is where the real surprises are.
Reference: Pricebook — Which engine prices your line
How the steps fit together
flowchart LR
I["Item price record<br/>scheme + item + unit"] --> L["Document line<br/>opens with a price"]
DP["Default Pricebook<br/>setting in the applet"] -. "decides whether<br/>anything runs" .-> PB
PB["Price book<br/>rules + treatment"] --> L2["Line after the book"]
L --> L2
ST["Book Status"] -. "read by nothing" .-> PB
CL["Calculation Logic"] -. "read only by the<br/>scanned-bill points job" .-> PB
Check yourself
Three to five questions on what you just heard. Every correct answer links to the page that makes it correct, so you can check the source, not just the mark.
Answer key
- Whether the Sales Invoice applet's Default Pricebook names that book — Pricebook — Settings in other applets that control this applet
- Nothing changes — no engine reads the book's Status — Pricebook — Price Book — create
- The server-side processor that awards points from scanned cash bills — Pricebook — Points: the till computes, the server fills the gaps
- From the line, which the pricing scheme already priced, or from a source the treatment names — Pricebook — Where the number came from, and what the line remembers
Next: Which price set wins, and why the answer moves · Back to the series · Play this as a presentation