Skip to main content

Pricing and discounts

The Pricing module decides what customers pay for catalog items. Each product's sales price in the Product Catalog is its list price. On top of it you can add price books (price lists for a currency, a customer group or a season), discount rules (promotions, quantity breaks, deals for a group) and discount limits that cap the discounts people may type by hand. Opportunities, quotations, sales orders and invoices price their catalog lines here.

Before you begin​

  • The Pricing module requires the Product Catalog. Give your products a Sales price and its Currency there: that is the list price.
  • Open the module by selecting Pricing in the sidebar (/m/pricing), or search for "Pricing", "price book", "price list" or "discount" in the command palette.
  • To view prices, price books, discounts, customer groups and the Price check, you need pricing.price.read (members have it by default).
  • To create or change price books, discounts, customer groups and discount limits, you need pricing.manage (administrators by default). Only people with this permission see the Discount limits tab.

Key concepts​

ConceptWhat it is
List priceThe product's (or variant's) Sales price in the Product Catalog. It applies only to sales in the same currency as that price.
Price bookA price list in one currency, for everyone or for one customer group, optionally valid for a period. It holds book prices for some items.
Book priceThe price of one product, or one variant, in a price book.
Customer groupA segment of customers priced alike, such as wholesale or partners. A company or contact belongs to at most one group.
Discount ruleA percentage or an amount off each unit, applied after the book or list price. With dates it is a promotion; with a minimum quantity it is a quantity break.
Discount limitThe largest discount (in percent) the members of a role may type on a document line.

The Pricing page has five tabs: Price books, Discounts, Customer groups, Discount limits and Price check.

How a price is chosen​

For each catalog line on a document, Modulix works out the price in three steps.

1. The unit price. Modulix looks for the first applicable price book that has the item. A book is applicable when it is active, in the sale's currency, valid on the document's date, and for the customer's group or for everyone. The customer group's books are tried first, then the books for everyone; within each, the lowest Priority number comes first. If no applicable book has the item, the list price is used, if the catalog price is in the sale's currency. Otherwise there is no price and you must type one.

2. The discount. Modulix finds the discount rules that fit the line: active, valid on the document's date, for the customer's group or everyone, for the item's variant, product or category (or everything), and reached by the line's quantity. Rules giving an amount off apply only in their currency. If several rules fit, the lowest Priority number wins, then the largest discount. A discount never takes the price below zero.

3. What you type. On a quotation, order or invoice, you can type your own unit price or discount on a line. A discount you type is checked against your discount limit; a discount that comes from a discount rule is not.

The customer whose group counts is the document's customer company. Documents are dated by their issue date (quotations and invoices) or order date (orders); opportunities are priced for today.

Manage price books​

Without price books, customers pay the catalog's list prices. Add books for other currencies, for customer groups or for seasons.

Create a price book​

  1. Open the Price books tab and select New price book.

  2. Fill in the fields:

    FieldWhat to enter
    NameFor example Wholesale CAD or Spring 2026.
    CurrencyThe currency of the book's prices. You cannot change it later.
    Customer groupOptional. Leave empty for a book that applies to Everyone.
    Valid from, Valid untilOptional. Outside these dates the book is not used. Valid until must be on or after Valid from.
    PriorityA number from 0 to 1000 (default 100). Lower numbers are tried first.
    ActiveInactive books are never used.
    DescriptionOptional notes.
  3. Select Save, then select the book's name in the list to open it and add prices.

The list shows each book's currency, its customer group (or Everyone), its validity (or Always), its priority and how many prices it holds.

Price books for different currencies and customer groups.

Add prices to a book​

  1. Open the price book.
  2. Select Add a price.
  3. Under Item, choose a product, or a variant of a product sold in variants.
  4. Enter the Book price and select Save.

A book holds one price per item. Items without a price in the book keep their list price, or the price of the next applicable book.

The book's page lists each item with its List price, its Book price and how far it is Below list (in percent). The list price appears only when the catalog price is in the book's currency. Use Search by product or SKU to find an item.

Book prices next to the catalog's list prices.

To change a price, select the item and edit its Book price. To remove one, open it and select Delete; the item falls back to the next book's price, or its list price.

Import and export book prices​

On a price book's page, use Import to add many prices from a CSV or Excel file, and Export to download them. The columns are Price book, Product and Book price.

Edit or delete a book​

On the book's page, select Edit to change its details, or the delete button to delete it. Deleting a book deletes its prices too. Documents that were already priced keep their prices.

Set up discounts and promotions​

  1. Open the Discounts tab and select New discount.

  2. Fill in the fields:

    FieldWhat to enter
    NameShown on the price check, for example Spring promotion or 10+ units.
    DiscountPercentage off, or Amount off each unit.
    ValueThe percentage (up to 100) or the amount off each unit.
    CurrencyRequired for an amount off. The rule applies only to sales in this currency.
    ProductOptional. Limit the rule to one product.
    VariantOptional. Limit it to one variant (choose its Product too).
    Product categoryOptional. Limit it to products of one category. Products of its subcategories are not included.
    Customer groupOptional. Leave empty for everyone.
    From quantityOptional. The line quantity from which the rule applies.
    Valid from, Valid untilOptional. Set them to make a time-limited promotion.
    PriorityA number from 0 to 1000 (default 100). Lower numbers win when several rules fit.
    ActiveInactive rules are ignored.
    DescriptionOptional notes.
  3. Select Save.

A rule with no product, variant or category applies to Everything. Rules with dates show a Promotion badge in the list.

Discount rules, quantity breaks and a time-limited promotion.

Quantity breaks​

To give larger discounts on larger quantities, create one rule per step with the same Priority, for example:

NameDiscountValueFrom quantityPriority
10+ unitsPercentage off510100
50+ unitsPercentage off1250100

A line of 60 units fits both rules. They have the same priority, so the larger discount (12 %) applies. A line of 20 units gets 5 %.

tip

Use priority to make one rule win over others regardless of size. For example, give a contract discount for a customer group priority 10 so that it applies instead of a general promotion with priority 100, even when the promotion is larger.

What happens to rules when things are deleted​

When the product, variant, category or customer group of a rule is deleted, the rule is turned off. Deleting a rule does not change documents that were already priced.

Manage customer groups​

Create a group​

  1. Open the Customer groups tab and select New customer group.
  2. Enter a Code (unique; saved in upper case) and a Name, and optionally a Description.
  3. Select Save.

Add customers to a group​

From the group's page:

  1. Select the group's name in the list.
  2. In the Customers card, choose Company or Contact, then pick the customer in Add a customer.

To take a customer out, select Remove from the group (the cross) next to them.

From the customer's page in Contacts: the Pricing card shows the Customer group. If you have pricing.manage, choose another group, or No group, from the list.

A customer group and its members.

A customer belongs to at most one group: adding them to a group moves them out of their previous one. When a customer is deleted, they leave their group; when two customers are merged, the kept record keeps its own group, or takes the other's if it had none.

Quotations, orders, invoices and opportunities are priced for the customer company, so set the group on the company.

Delete a group​

Deleting a customer group takes its customers out of it. Its price books are kept, but become inactive and for everyone, so check them before you turn them on again. Its discount rules are turned off.

Set discount limits​

Discount limits stop people from giving larger discounts than they should on document lines.

  1. Open the Discount limits tab. Every role of your organization is listed.
  2. In Largest discount, enter a percentage for a role. Leave it empty to use the Default.
  3. Select Save on that row.

How the limit of a person is worked out:

  • A person with several roles gets the largest limit among them.
  • A role without its own limit uses the organization's default: Administration → Settings, Pricing tab, Largest discount (percent) of roles without their own limit (100 by default).
  • People with pricing.discount.unlimited (Give any discount (no limit)) have no limit.
warning

Because a role without its own limit uses the default, and the default is 100 %, a person with any such role can give any discount. To enforce limits, lower the default or set a limit on every role.

The limit applies to discounts you type in the Discount % of a line on opportunities, quotations, sales orders and invoices. The Edit lines dialog shows "Your largest discount: …". A larger discount is refused with "Your largest discount is … %". Discounts that come from discount rules, and the prices and discounts of an invoice made from an order, are not checked.

Check a price​

Use Price check to see what a customer pays for an item on a day, and where the price comes from.

  1. Open the Price check tab.
  2. Under Customer, choose Company or Contact and pick the customer, or leave it empty for a customer without a group.
  3. Choose the Item, the Currency, the Day and the Quantity.
  4. Select Check.

The result shows:

  • the List price and the Book price (with its percentage below list);
  • the price used and its source: From price book "…", List price, or No price in this currency;
  • the discount rule that applies, if any (Discount "…", amount per unit and percentage), and the Price after discount.

Next to the Check button you also see your own largest discount.

Checking what a customer pays and where the price comes from.

How pricing appears on documents​

When you add a catalog item to a quotation, sales order or invoice and leave Unit price empty ("Empty: the price book's"), the line gets:

  • Unit price: the book price or list price;
  • Discount %: the discount of the best discount rule, as a percentage of the unit price (an amount off each unit is converted to a percentage).

You can type over either. Once a line is saved, its unit price and discount are kept when you edit the lines again, or when you change the customer, currency or date. To get the price book's price again, clear the line's Unit price and save.

Free-text lines are not priced by this module: you enter their price.

Taxes are worked out after the discount; see Taxes. For the documents themselves, see Quotations, Sales orders and Invoicing. Opportunity product lines are priced the same way; see Opportunities and pipelines.

Settings​

SettingWhereDefaultEffect
Largest discount (percent) of roles without their own limitAdministration → Settings, Pricing tab100The discount limit of roles that have no limit on the Discount limits tab.

Permissions​

Permission keyWhat it allowsGranted by default to
pricing.price.readView price books, prices, discounts and customer groups; see customers' groups; use Price check.Admin, Member
pricing.manageCreate, change and delete price books, prices, discounts and customer groups; put customers in groups; set discount limits.Admin
pricing.discount.unlimitedGive any discount on document lines, whatever the limits.Admin

Troubleshooting​

"No price in this currency: enter one." The item has no book price in an applicable book and its catalog price is in another currency. Add the item to a price book in the document's currency, or type a unit price.

A customer does not get their group's prices. Check that the group is set on the customer company (documents are priced for the company), that the book is active, in the document's currency and valid on the document's date, and that it holds a price for that exact item (a variant's price is separate from its product's).

Saving lines fails with "Your largest discount is … %". A discount on one of the lines is above your limit. If the discount came from a discount rule and you are editing the lines again, it now counts as typed by you: clear the line's Discount % to let the rule apply again, or ask someone with a higher limit.