Skip to content

Price Lists

A price list answers the question «how much is this item for this customer». Different customers legitimately see different prices: each has their own price list on the card (or on the category), and documents take prices exactly from it.

Where to find it: Modules → Prices → Registers → Price Lists

The register lives in the Prices module. It works in a pair with the «Prices» register: the price list is the «cover» with the rules, while the actual numbers live in «Prices» — one row per «price list + item» pair.

A worked example

The price list card

The demo database's main price list is RRP «Recommended retail prices (GBP)» (next to it lives the TRADE list — we will get to it below). In the header:

  • «Code» and «Comment» — the name by which the price list goes into customer cards.
  • «VAT»: Excludes / Includes — the most important switch. It says what the number in a price means: «Excludes» — prices are net, the tax is added on top; «Includes» — the tax is already inside. RRP keeps net prices: a helmet is 9.70, and the invoice shows it with the tax on top.
  • «Currency» — the currency of all the list's prices; here GBP. Empty means the firm's base currency.
  • «Replaces» and «Period» — the promo price list mechanism, covered below.
  • «Salesmen» — the manager the price list is pinned to. The field is only stored and printed: it affects neither document prices nor who may use the price list.

The numbers themselves are in the «Prices» register:

The «Prices» register: price list + item + price

How a document finds the price

When an item is typed into an order or invoice row, the system goes in turn:

  1. Is a promo price list active right now? If there is a list whose «Replaces» field names ours and whose «Period» covers the document date, and the item is on it — the price comes from it. The item is not in the promo — the search goes on as without one.
  2. The price from «Prices» for the pair «document's price list + item» — if the document date falls within the price list's «Period» (an empty «Period» sets no limit). If the document's price list itself replaces another one, it acts as a promo too: only within its own «Period», and beyond it the search goes by the same steps to the price list it replaces.
  3. The item is not on the list — the base price from the item card is taken.

The demo data shows all three fates of an item: the safety helmet is cheaper on the list than on the card (9.70 against 10.90), the safety glasses are dearer (5.10 against 4.50), and the respirator is not on the list at all — it goes by the card (2.55). So in a three-line order the prices may have three different sources — and all three are correct.

Where the document's own price list comes from: the customer card, and when it is empty — the customer's category, and when that is empty too — the payment term. In the demo both customer categories point to RRP, so it lands everywhere. One more path is the user's «Price list by default»: a new document of this person takes it only when the document's customer gives no price list of its own, neither by card nor by category; and once a customer is chosen in the document whose card or category has its own price list (or whose payment term has one), the document takes that one.

The promo price list

To avoid rewriting prices back and forth for a sale, a separate list is created: its «Replaces» field names the main list, the «Period» holds the promo dates, and «Prices» holds the promo numbers. While the period lasts, documents take the promo prices by themselves; when it ends, they return to the main ones. The main price list is not touched at all.

Only the promo items need to go into the promo list: every other item keeps taking its price from the main list during the promo. If two promos of the same list are active on the document date and both contain the item, the one with the longer «Period» wins — the system measures length by class, from the difference between end and start: a one-day promo (start = end) is the shortest class, then a difference of 1–6 days, 7–30, 31–364, a year or more. So a one-day promo loses to a week-long one even if it started earlier. Within one class (say, both promos last between a week and a month) the one that started earlier wins. A promo that does not contain the item takes no part in the choice.

The system lets you save «Replaces» without a «Period», but such a price list never applies: neither as a promo nor as the document's own price list — a document with it takes the prices of the list it replaces. «Time» does not affect the choice of price: a promo is judged by the «Period» dates only.

The matrix at the bottom of the card

The rows «Item code — Price group code — Formula» are rules for mass price calculation. In RRP the matrix is empty: its prices are kept by hand directly in «Prices». The demo's TRADE price list, though, is built entirely by rules: a matrix row ties a price group or a single item to a formula, and the «Calc. Prices for Items» maintenance turns the rules into «Prices» rows. The mechanism is taken apart in «Price Forms».

How to work with it

1. Create the price list

Code, comment, the VAT switch (decide at once — flipping it on a live list would change what every number means), the currency if needed.

2. Enter the prices

In the «Prices» register: a row per item — price list, item, price. The quick start for a similar list is «Duplicate» on the existing prices.

3. Assign it

Put the price list into customer cards, or straight into a category — then every customer of the category gets it automatically.

Values available in this document's printed form templates. How to write a variable in a template — see Print Forms.

Header fields:

Variable What it holds
PrList_Code Code
PrList_Repl Code 2
PrList_Comment Comment
PrList_StDate Period
PrList_StTime Time
CurCode_No Currency (code)
CurCode_Comment Currency (name)
PrList_VAT VAT
PrList_EndDate End Date
PrList_EndTime End time
PrList_Sman Salesman (login)

Row fields:

Variable What it holds
PrList_MNo Row position number
PrList_MItCode Item Code
PrList_MPrGrCode Price Group Code
PrList_MForm Formula

The records the document refers to through its form fields (location, customer, currency…) also expose the rest of their variables — code and name are already listed in the tables above, the rest is described in the register's article:

Common situations

«Why did the customer get the wrong price?» Look at the document's «Price List» tab — whose list was filled in. Then the chain: customer card → category → payment term. Then — whether a promo replacing this list was active on the document date. And remember the third source: if the item is not on the list, the price came from the item card.

The item is new and not on the list yet. Documents will not stop — they take the base price from the card. Once you add a row to «Prices», the list prices take over.

Prices «shifted» after flipping the VAT switch. The number 9.70 under «Excludes» and under «Includes» are two different prices. The switch is set at creation and left alone.

The sale is over but the prices are still promotional. Check the promo list's «Period» — until its end date passes, it keeps replacing the main list. A document judges the promo by its own date, not by today: a document dated on a promo day keeps getting promo prices. And prices already entered into rows stay after the promo ends — changing the date alone does not re-read them.

Field reference

Field Description
Code, Comment The list's name; this is what goes into customer and category cards
VAT: Excludes / Includes What a price number means: tax on top or already inside
Currency The currency of all prices; empty — the firm's base currency
Replaces The main list this one replaces during the «Period» (a promo)
Period When the promo list is active (by the document date)
Time Only stored and printed; does not affect the choice of price
Salesmen The manager the list is pinned to; only stored and printed
The matrix (Item / Price group / Formula) Mass calculation rules — see «Price Forms»; empty when prices are kept by hand