Contents
1. What this window is for2. The concepts you needPrice listTarget — whom it applies toChannelItem scope and tierThree item typesFloor price (minimum)VAT-inclusive list and currency3. Which price wins — the priority rulesExample4. Step by step: your first price list5. Bulk update and a copy for a new periodUpdate in bulk — an increase or a reductionCopy / new version — next period's list6. Export and import with CSV and Excel7. Versions — who changed what, and when8. CampaignsThe six-step wizardIf several campaigns fitStacking discounts (Settings tab)Budget, document cap and usage details9. Price simulator — trying without saving10. How prices fill in during document entry11. Below-price sale approval12. Dealer portal, field sales and Pulse13. Stock card report: Price Change — list versus actual14. On the phone (Garden + Steps)15. Who sees, who changes16. Frequently asked questions17. GlossaryHelp › Document Entry › Prices and Campaigns
Prices and Campaigns — A Guide from Scratch
Sales asks the same question every day: "What is the price of this product, for this customer, at this quantity, today — and why?" The six prices on the stock card cannot answer it alone: you give one price to dealers, another to construction firms, another to someone buying 60 metres, and in October you take 3% off the basket. The Prices and Campaigns window lets you define these rules once; when an invoice, order or quote is entered it finds the right price by itself, writes under the line why it chose that price, and keeps, version by version, who changed what and when.
1. What this window is for
The window has four tabs: Price lists (which price, for whom, in which period, for which product), Campaigns (extra discounts given by looking at the basket), Price simulator (trying "what would this product cost this customer?" without saving anything) and Settings (stacking discounts). It answers four questions:
- Which price? — the right list and tier are chosen by customer, channel, date, product and quantity (section 3).
- Which discount? — if the basket meets a campaign's condition, a discount or a free product is added (section 8).
- Why? — every price comes with a "Why this price?" explanation: which list, which rule, which tier, which campaign (sections 9 and 10).
- Was it sold below price? — a sale below the floor price is not blocked, but after saving it goes to approval (section 11).
Where to open it. Prices and Campaigns in the Sales / CRM group of the dock. The line at the top of the window shows how many lists and campaigns are active in the company. While there is no active list or campaign, sales use the stock card price exactly as before — installing this window does not disturb the old way of working; it takes effect on the day you save your first list.
2. The concepts you need
Price list
A price list's header says to whom and when it applies: list name, currency, priority, start and end date (both inclusive; empty = unlimited), channel, target (applies to), description, and the "Prices are entered including VAT" and Active flags. Its items say which price is given to which product. An inactive list appears struck through and is never applied to a sale.
Target — whom it applies to
| Target | What it means |
|---|---|
| Single account | Only one chosen customer. For negotiated special prices. |
| Account group | All customers who are members of a subgroup on the account card (for example "dealers", "construction firms"). |
| Account type | By the type on the account card (Buyer, Buyer-Seller, Seller…). |
| Everyone (general) | All customers; a price asked without choosing an account also looks here. |
Channel
A list can apply to all channels or to a single one: Office (document entry) — desktop and web invoice/order/quote entry; Dealer portal (B2B); Field sales — the field app and Pulse; Store (retail) — retail sales invoices. A list with a specific channel comes before an "All channels" list.
Item scope and tier
Each row of the list is written for a scope: Stock (a single product), Stock group (products that are members of a subgroup on the stock card), Stock type or family (for example finished goods, raw materials, or the whole stock family) or All products. The row's columns are the tiers: "Base" applies to any quantity, "≥ 60" to 60 and above. The tier threshold is always written in the product's main unit — for a pipe whose main unit is the metre, "≥ 60" means 60 metres; if 10 bars (1 bar = 6 m) are entered on a document, that counts as 60 metres.
Three item types
| Type | How the price is found |
|---|---|
| Fixed price | The price you write, in the list's currency. You can also add a line discount on top. |
| Discount off the sales list | The stock card price that the company chose as its "sales list" is taken, and the percentage you write is given as a discount. When the card price changes, the list price follows by itself. |
| Percentage of card price | You choose one of the prices 1-6 on the stock card and adjust it by a percentage: "Price 2 +10" is an increase, "Price 1 −5" a reduction. Foreign-currency card prices (4-6) are converted at the exchange rate. |
Floor price (minimum)
An optional floor price can be written in each cell: the lowest price a sales representative may go down to. The floor price does not block the sale; if the approval rule is on, a sale below it goes to approval after saving (section 11). If no floor price is written, the price the engine found counts as the floor. A campaign price is a legitimate sales price: on a line with a campaign, the floor cannot be higher than the campaign's net price.
VAT-inclusive list and currency
If "Prices are entered including VAT" is ticked, the prices in the list include VAT; the engine removes the VAT using the product's VAT rate. The price written to the document and shown in the simulator is always excluding VAT. If the currency is empty, the list is in the company's local currency; if a currency such as USD is written and the document is in another currency, it is converted at the nearest rate before the document date. If no rate is found, the price is left in the list currency, the explanation says so, and it is not written to the document automatically. For documents dated close to today, the rate comes from the same source as document entry (the central bank); for older dates the nearest rate in the rate table is used. If the rate is more than 7 days old, the explanation warns that it may be out of date.
3. Which price wins — the priority rules
Several lists may fit one sale. The engine first collects the candidate items: the items of lists that are active, within their dates, and whose channel and target fit, and whose scope fits the product and whose tier is reached by the quantity. Then it compares the candidates by the criteria below, from left to right; once a criterion decides the winner, the later ones are not looked at. The same input always gives the same result.
| # | Criterion | Winner |
|---|---|---|
| 1 | Target | Single account › account group › account type › everyone (general) |
| 2 | Channel | A specific channel › all channels |
| 3 | List priority | The larger number first |
| 4 | Item scope | Stock › stock group › stock type › stock family › all products |
| 5 | The newest | The later start date › the last changed › the one saved first |
| 6 | Tier | Within the same list and scope, the largest threshold the quantity reaches |
- Target first, scope second. If the customer's own list only has "All products −5%", that 5% is applied, not the product-specific fixed price in the general list.
- If the tier is not reached, the next candidate is used. If a row only defines "≥ 50" and the quantity is 10, that row is not a candidate; the engine looks at the next one (the same list's group row or another list).
- If there is no candidate, the stock card price. The card price the company chose as its "sales list" is used — exactly the old behaviour. In document entry the line is then left untouched.
- Campaigns are applied after the list (section 8). The explanation also names the lists that lost (up to three) as "had a lower priority".
Example
The "Construction firms 2026" list: target Account group: construction firms, 01.01–31.12.2026, priority 5. Rows: stock 3/4 D — Base 70, ≥ 60 66 (fixed price); stock group natural gas — Base: 12% discount off the sales list. For a customer in this group: 3/4 D × 10 m → 70 (Price list); 3/4 D × 60 m → 66 (Tier price); 1 D in the natural gas group (card price 138.99) → 138.99 − 12% = 122.31; a product outside the group → the stock card price. The same products are sold at the stock card price to a customer who is not in the group.
4. Step by step: your first price list
- On the Price lists tab, press New list at the top left.
- Fill in the header: List name, Currency (empty = local), Priority, Start, End, Channel and Applies to (choose the target type; for a group or an account, type in the search box and pick). If needed, tick "Prices are entered including VAT"; Save. The list opens as version 1.
- Press Add row, choose the scope (Stock, Stock group, Stock type or family, All products), search for the value and press Add. The new row appears in the grid and its "Base" cell opens for editing.
- If you need a tier, type the quantity (in the main unit) in the Threshold box and press Add tier column; a new column such as "≥ 60" opens. Empty cells show "+".
- Click a cell: choose the Type, enter the Price (or Discount %, or Card price no. + Percentage); if you wish, add a Line discount %, a Floor price (minimum) and a Note; Apply. Clear cell removes that tier, Delete row removes all tiers of the row.
- Press Save. Before you save, the bottom of the screen reads "There are unsaved changes. Saving creates a new version." After saving you see a summary such as "Saved: version 2 · 3 added, 0 changed, 0 deleted."
Changing the header later. Edit header changes the dates, priority, target and channel; this also writes a new version. Delete removes the list, but its version history is kept. A list can hold at most 20,000 items.
5. Bulk update and a copy for a new period
Update in bulk — an increase or a reduction
Press Update in bulk and enter the Percentage (+ increase, − discount) (for example 5 or −3). The Rounding step (0.01 · 0.05 · 0.1 · 0.5 · 1 · 5 · 10 · 50 · 100) rounds the price to the nearest step. If the step is 1 or larger, Psychological price (such as 99.99) can be chosen: a rounded 100 becomes 99.99. Apply and save a new version finishes the job. The percentage is applied to fixed prices and floor prices; in "Percentage of card price" items the percentage is updated; "Discount off the sales list" items do not change (they already follow the card price). Example: +5% with a 0.05 step turns 70 → 73.5 and 66 → 69.3.
Copy / new version — next period's list
To prepare next year's prices today, press Copy / new version: New list name, a percentage and rounding if you wish, new Start and End dates; Copy. The items are copied into a new list (version 1); the old list does not change. If two lists overlap for the same customer, in the same channel and at the same priority, the one with the later start wins: a copy starting on 01.01.2027 takes effect by itself on that day, and the old list stays valid until then. To avoid confusion it is still good to give the old list an end date.
6. Export and import with CSV and Excel
Download CSV and Download Excel (XLSX) write the list's items to a file; the file name contains the list name and the version number. Columns: Scope, Scope value, Tier threshold, Type, Price, Discount %, Card price no., Percentage, Floor price (minimum), Note. Headers are written in the screen language; on import, Turkish, English and local-language headers are recognised. In CSV the separator may be a semicolon, a comma or a tab.
- Press Import from file and choose the file (.csv, .txt, .xlsx, .xls).
- Choose the mode: Merge (lines in the file are added or updated, lines not in the file stay) or Replace (the list will contain only the lines in the file; the others are deleted).
- Read the dry-run preview: "Preview: 120 rows read · 15 will be added, 40 will change, 0 will be deleted." Nothing has been written at this point. Unrecognised columns, unreadable cells and codes with no stock card are listed with a yellow warning — a mistyped code never matches a sale, so fix the file first.
- Import and save a new version. The result reads "Imported: version N · … added, … changed, … deleted."
7. Versions — who changed what, and when
Every save (creation, header change, saving items, bulk update, copy, import, deletion) writes a new version of the list and keeps a full picture of the old one. Pressing Versions opens a table: Version, Action, Who, When, What changed ("3 added, 1 changed, 0 deleted", the changed header fields, "bulk 5%"). Versions cannot be deleted.
Comparing two versions: choose one version as A; B is the current list by default (you can pick another version as B, and return with B: current list). The difference rows are coloured: Changed (old → new and the percentage change; an increase in red, a decrease in green), Added, Deleted; changes to header fields are listed on top. If there is no difference you see "There is no difference between the two versions."
8. Campaigns
A list looks at a single line; a campaign looks at the whole basket and is applied after the list: "3% if the basket exceeds 5,000", "buy 3, pay 2", "10% if A and B are bought together". The table on the Campaigns tab shows each campaign's condition → reward summary, whom it applies to, its period and the Used / budget value. An inactive campaign is struck through; a non-combinable one carries a "Not combinable" badge.
The six-step wizard
Press New campaign (to change an existing one, Edit on its row). Every step has Next and Back; you cannot go past a step with missing information.
- Basic information — campaign name, start, end, description, Active.
- For whom — target (everyone, account type, account group, single account) and channel; the same as in lists.
- Condition — Basket amount at least (net amount of the lines in scope), Quantity at least (total quantity in scope, in the main unit) or If the products are bought together (all the stock codes written with commas are in the basket). "Which products count" narrows the scope (stock, stock group, stock type or family, all products).
- Reward — Percentage discount, Amount discount (spread across the lines in scope in proportion to their amounts) or Free product (buy X, pay Y). For a free-product reward the condition must be a quantity: threshold 3, free 1 → buy 3, pay 2 (1 free in every 3, as a discount on the line). If you choose another stock in the "Free product" field, that product is given free: "1 unit of product X free for every 10".
- Budget and combining — total budget (empty = unlimited), maximum discount per document (empty = unlimited), combining and priority (below).
- Summary — the campaign reads as one sentence ("Basket of at least 5,000 for natural gas → 3% discount"); Save campaign.
If several campaigns fit
Each campaign either Combines with other campaigns or is Applied on its own (not combinable). The engine compares the stand-alone campaign that gives the largest discount with the total of the combinable campaigns and applies the one that is better for the customer (on a tie, the higher priority, then the one saved first). Combinable campaigns are applied one after another on the line: 5% and 3% → 7.85%.
Stacking discounts (Settings tab)
The Settings tab decides what happens when a line already has a discount from the list and a campaign discount arrives as well. Say the list gives 10% and the campaign 5%:
- No (default): the larger one is applied → 10%. If the campaign is not better, it is not applied on that line; the explanation says "stacking discounts is off and the list discount is better".
- Yes: applied one after another → 1 − (0.90 × 0.95) = 14.5%.
Budget, document cap and usage details
The Total budget is the total discount the campaign may give across all documents; when it is used up the campaign stops ("budget is used up"). Maximum discount per document caps the amount in one document ("capped at its limit"); a free gift of a different product also counts towards the budget and this cap at its value. The budget is consumed once, at the root of the document chain: the order or an invoice issued directly. A quotation is not binding, so it does not consume the budget (an order copied from a quotation does). When the root document is edited, its usage is recalculated (not added again); when an order is fully invoiced, the usage moves to the invoice; when the root document is deleted, the usage returns to the budget. Usage is recorded per line: on a line whose discount was changed by hand, only the part actually written to the line counts. Amounts, thresholds and budgets are always kept in local currency; in a foreign-currency document they are converted at the document's rate. Clicking the Used / budget value in the table opens the Usage details: date, document, account, discount, who.
9. Price simulator — trying without saving
Use the Price simulator tab before putting a new list live, or when a customer asks "why this price?". Nothing is saved.
- Choose the Account (leave it empty for the general price), set the Date and the Channel. Choosing a future date lets you try next period's list.
- Enter the Product and the Quantity (in the main unit); if you wish, write Your proposed price. Add more lines to the basket with Add product — campaigns look at the whole basket.
- Calculate price. A result card appears for each line: the net price (excluding VAT, net) in large type, the source badge (Price list, Tier price, Campaign or Stock card), the list price, discount %, floor price, the list name and version, and below them the numbered Why this price? explanation. If your proposed price is lower than the floor price allows, the card shows an Approval required badge.
- Below the cards you see the campaigns applied to the basket ("October basket: 148.77 discount"), free-product suggestions and, if set, the below-price sale approval threshold.
10. How prices fill in during document entry
While a sales invoice, sales order or sales quote is entered (transaction Sale), the engine works in the background. If the company has no active list or campaign, nothing changes; purchase documents are never touched.
- When is it calculated? About half a second after the product, quantity, unit, account, date or currency changes. Choose the account before the lines.
- What is written? The line's price and discount — only if you have not changed that line's price by hand (the price is empty, is the stock card price, or is the price the engine last wrote). A price you typed yourself is never overwritten. The quantity is converted to the main unit and the price back to your entry unit: if 1 bar = 6 m, a product priced 66 per metre is written as 396 per bar.
- The "Why this price?" strip. A small strip appears under the line: the source badge, the list or campaign name and, if any, a tier such as "≥ 60". Clicking Why this price? opens the numbered explanation ("Price list Construction firms 2026 selected (version 2). · Rule: Stock 3/4 D. · Quantity 66; the tier threshold is 60 and above, so the tier price was applied."). If the price came from the stock card and you did not touch it, no strip appears.
- The campaign band. Under the lines, a green band names the campaign applied: "The October basket campaign was applied: 137.21 discount." If the campaign gives a different product free, the band shows an Add free line button; one tap adds the free line.
- A manual price below the floor. On a line where you wrote a price other than the list price, a "Manual price · list 69.30" badge appears. If the net price is lower than the floor price allows, an amber "Below the floor price. Goes to approval after saving" warning appears. The document is still saved; if the approval rule is on, an approval request is created after saving (section 11).
- If the engine does not respond, it reads "The price engine did not respond; the stock card price stayed on the lines." and document entry carries on as before.
A note on channels. The document entry screen calculates prices with the Office channel. A list written only for the "Store (retail)" channel does not fill lines on this screen; the approval check after saving, however, uses the store channel on a retail invoice. If you want store-specific prices, it is clearer to make the list "All channels" and separate it by target.
11. Below-price sale approval
To turn the approval check on, add a rule of type Below-price sale % under Management › Approvals › Approval rules and enter the threshold. The threshold is how many percent below the floor price is allowed: with a threshold of 2, for a product whose floor price is 100, a net price below 98 goes to approval; with 0, every sale below the floor does. If there are several rules, the smallest threshold applies. Whether the rule is on is shown on the Settings tab of the Prices and Campaigns window.
- What is the floor based on? The item's floor price if one is written; otherwise the net list price the engine found. A product that is in no list has no floor and does not go to approval — if "The stock card price is also treated as a floor" is chosen in the Settings tab, the card price becomes the floor. On a campaign line the floor cannot be higher than the campaign net. In documents with VAT-inclusive prices, the line price is compared after removing VAT.
- What happens? The sales document is saved normally. Right after saving, an approval request of type "below-price sale" is opened; its description names the document number, the threshold and the products that fell below the floor. The request is approved or rejected in the Management › Approvals queue.
- When does it run? Only on sales documents, and only while the company has at least one active list or campaign.
How do I set a quotation price? If the list price is not enough, Suggest price on a sales quotation line, or the Sales / CRM › Price Suggestion window, produces a suggestion from cost, target margin, the customer's last price and this engine's list price and floor; sales below the minimum margin also go to the same below-price approval queue. Details: Quotation price suggestion assistant.
12. Dealer portal, field sales and Pulse
- Dealer portal (B2B). When a dealer logs in, the account is known from their portal session. The price shown in the product search list and the price/discount written to the order come from the engine with the B2B channel. If the engine finds no list or campaign, price 1 on the stock card is used as before.
- Field sales. If an order coming from the field app carries no price, the price is taken from the engine with the Field sales channel, and if there is none, price 1 on the stock card. For now the field app's product list shows price 1 on the stock card, while the price written to the order is the engine's price.
- Pulse › "+" › Check price. On the phone, the salesperson chooses the customer, product and quantity and sees the price with its explanation (Field sales channel). Nothing is saved. The quick action is visible to users who can open the Prices and Campaigns window (see the Mobile guide).
13. Stock card report: Price Change — list versus actual
Reports › Price Change on the stock card (see the Stock Card guide) plots the actual sales and purchase unit prices month by month. If the company has at least one price list, the report now also works out, for every sales line, the expected list price with the list version that was valid on the date of that sale and with the line's account (Office channel, without campaigns, excluding VAT, converted to local currency). So even after a later price increase, sales before the increase are compared with the old version and later ones with the new version. For each month a quantity-weighted list price and the deviation % = (actual − list) / list are calculated. The chart shows a separate List price line, and the monthly breakdown shows the List price, Actual (listed sales only) and Deviation % columns; the note under the chart states how many sales lines had a list and how many had none (and fell back to the stock card price). If there is no list at all, the report is exactly as before.
14. On the phone (Garden + Steps)
On a small screen the window opens with four sections: Check price, Price lists, Campaigns and Settings. All buttons are large enough to press comfortably with a finger.
- Check price — four steps: For which account? (or "Continue without an account (general price)") → Which product? → How many units? (in the main unit) → Show price. The result comes in the "Price of this product for this customer" card with its explanation; carry on with Change quantity or Ask about another product.
- Price lists — lists appear as cards; tapping one opens its header details and item cards (scope, tier, type, price, floor price). If you may make changes, Edit this item works in two steps: new price/discount → a comparison of the old and new value → Save (new version). Versions also open on the phone. Adding a new row or a tier column is done on the desktop.
- Campaigns — campaign cards (condition → reward, target, period, used / budget); New campaign and Edit open the same six-step wizard as on the desktop, with large fields.
- Settings — the stacking-discounts choice and the status of the below-price sale approval.
15. Who sees, who changes
| Task | Who can do it |
|---|---|
| Opening the window, viewing lists and campaigns, the simulator, Check price | Anyone with the invoice, order, quote or stock module permission. |
| Changing lists, items, bulk updates, copies, imports, campaigns and settings | The system administrator, or a user with the Stock transactions permission (someone who may change stock card prices). A read-only user cannot change anything; the top of the window tells them "Read-only: changing requires the stock transactions permission." |
| A user with "Do NOT show prices on orders" ticked | Unless they are a system administrator, they cannot use the price window, the simulator or Check price — someone who must not see prices is not shown prices. |
Every change is written to the version history with who and when (section 7), and also goes into the audit trail. The last version of a deleted list or campaign also stays readable in the history.
16. Frequently asked questions
| Question | Answer |
|---|---|
| I defined a list, but the price on the invoice did not change. | Check in order: is the list active and within its dates; does the customer fit the target (choose the account before the lines); is the channel Office or "All channels"; does the quantity reach the tier; did you type the line's price by hand; is the transaction Sale; is there an exchange rate for a foreign-currency list. The quickest way is to try the same account, product, quantity and date in the Price simulator — the explanation tells you why. |
| Will the engine change a price I typed myself? | No. The engine only updates a price that is empty, came from the stock card, or was written by the engine itself. Under a manual price, the "Manual price · list …" badge reminds you of the list price. |
| The customer fits both a group list and their own special list. Which one applies? | Their own special list (single account), because the target is the first criterion. But if that list has no item covering this product, or the tier is not reached, the group list is used (section 3). |
| Why was the campaign not applied? | The "Why this price?" explanation tells you: the condition was not met, it is outside its dates, its budget is used up, it hit the document cap, it was not chosen because it does not combine with another campaign, or stacking discounts is off and the list discount was better. |
| I sold below the floor price. Was the invoice saved? | Yes, the sale is never blocked. If the approval rule is on, a "below-price sale" approval request is created after saving, and your manager decides under Management › Approvals (section 11). |
| "The list changed in the meantime (version 5). Refresh the page and try again." | Someone else saved the same list while you were editing it. The save was refused so that nobody's change is silently overwritten. Reopen the list, look at what changed under Versions, and enter your change again. |
| Is the old campaign band in document entry that says "add this and you gain" the same thing? | No. That band is a suggestion from the old sales campaigns and does not touch the price. The campaigns in this window affect the price and appear in the green campaign band. Both may appear together. |
| If I delete a list or raise its prices, do old invoices change? | No. Saved documents keep their own prices; a list only applies to newly entered lines. The version history is not deleted, and the Price Change report keeps comparing old sales with the version that was valid on that day. |
| "The price engine tables have not been set up in this company yet." | The module's tables are created when the Java server opens the company. The system administrator must restart the Java service. Until then, sales continue with the stock card price. |
17. Glossary
| Term | Meaning |
|---|---|
| Price list | A set of rules saying which price is given to which product, for whom, in which period and on which channel. |
| Target | The customers a list or campaign applies to: a single account, an account group, an account type or everyone. |
| Channel | Where the sale is made: office (document entry), dealer portal, field sales, store. |
| Scope | Which products an item fits: a single stock, a stock group, a stock type or family, all products. |
| Tier | A price valid from a certain quantity (in the main unit) upwards: "≥ 60". |
| Floor price (minimum) | The price below which a sale needs approval; it does not block the sale. |
| Card price | The prices numbered 1-6 on the stock card; the one the company uses for sales applies when there is no candidate at all. |
| Campaign | A rule that looks at the basket and gives a discount or a free product when its condition is met; applied after the list. |
| Combining | Whether a campaign may be applied together with other campaigns on the same line. |
| Stacking discounts | Whether the list discount and the campaign discount are applied one after another, or only the larger one. |
| Budget / document cap | The most discount a campaign may give in total / in a single document. |
| Version | A full copy created at every save that cannot be deleted, with who, when and what changed. |
| Source | Where the price came from: price list, tier price, campaign or stock card. |
| Below-price sale | A sales line whose net price is below what the floor price allows; it goes to approval after saving. |
Related guides: Document Entry · Stock Card — reports · Account Card · Field · Mobile.