Price and discount on order lines

Price and discount on order lines


Price and discount on order lines are calculated by one common engine, so you get the same result no matter how the line was created – whether you add the product manually, change the quantity, switch product or switch currency. This article explains how the price is set, how the discount is set, which lines do not get a discount automatically, and what the padlock for custom values means.



TABLE OF CONTENTS



How the price is set


The price of an order line is set automatically based on what is registered on the customer and the product. The system looks in a fixed order and uses the first price it finds.

  1. Customer-specific price – agreed price for this customer on this product. Entered under the «Prices» tab on the customer card.
  2. Currency-specific price – if the currency module is active, a separate price in the currency the order is in (or is to be created in). Entered under the currency tab on the product card.
  3. The sales price on the product card – the ordinary price of the product.
  4. The sum of the lines below – used only if none of the steps above gave a price, typically a package or a composite product. The sum is updated when the content changes.

NOTE: If you give the package its own sales price, it stops calculating from the content. That price then stands regardless of what is below.


Two exceptions take precedence over the list above

Exception 1 – price on the sub-selection product. If the sub-selection product itself has been given a price, it is used regardless of which choice is made below.

Example: the sub-selection product is set to 500. The customer can choose variant A (300) or variant B (700). The line becomes 500 in both cases. This applies to both price and discount – if the line is priced by the sub-selection product, it is the sub-selection product's discounts and maximum limit that are used.


Tip: If you do not use a common price for all choices, leave the sub-selection product with price 0. A price entered there «by accident» will now take effect.



Exception 2 – separate price in the product link. When a product is added as content in a package, the link between them can have its own price. It is used before the order above.


Example: the package contains product X. X's product card says 150, but the link says 120. The line becomes 120. The sub-selection product's price (exception 1) takes precedence over the link's price.

Full order when both exceptions apply

  1. Price on the sub-selection product
  2. Price in the product link
  3. Customer-specific price
  4. Currency-specific price
  5. Sales price
  6. Sum of the lines below



How the discount is set


The system finds all discounts that can apply and uses the best. Between the candidates, the highest percentage always wins.

CandidateWhere it is set
Base discountThe customer card
Minimum discountThe product link the line was created from
Discount matrix and couponThe discount matrix (quantity, customer group, discount group, coupon code)



Example: the customer has a 10% base discount. The discount matrix gives 15% at 10 pcs or more. If you enter 12 pcs, the line gets 15%. The customer's base discount therefore does not block a better discount.


NOTE: When several rows in the discount matrix match at the same time, a system setting controls which one is used: the one with the highest percentage (default), or the most specific (product before manufacturer, before category, before customer, before discount group). Contact us if you are unsure what is set for you.



Maximum discount

  • If the discount is higher than the product's «Max discount %», it is reduced to the maximum.
  • «Max discount %» set to 0 means the product should have no discount at all.
  • Additional discount is not covered by the maximum limit.


Where the discount comes from

The discount comes from the product that gave the price on the line. If the line is priced by a sub-selection product, it is the sub-selection product's discounts and maximum limit that apply – not those of the selected product. The quantity is then converted to the sub-selection product's units.

Example: if there are 3 pcs of the selected product per sub-selection, 6 pcs correspond to 2 sub-selections when discount tiers are determined.



Lines that do not get a discount automatically


  • Headings and line expansion. The value lies in the lines they are split into, not in the heading. Headings cannot get a discount – the system sets it to 0 when the line is saved.

  • Lines that are placed under another line. Only main lines get a discount automatically. If the line is under a package or a composite product, no discount is given by itself.

  • Lines with a customer-specific price. That price has already been negotiated, so no discount is added on top. This is controlled by a system setting and may be set differently for you.

All lines that are not headings can still get a discount if you enter it manually.


NOTE: Changed with this update: underlying lines could previously get a discount automatically. If you have given a discount on the content of a package that calculates the price from the content, the package no longer becomes cheaper as a result. Put the discount on the package line instead.


Additional discount

It is possible to have an extra discount field on the line. The field is only visible if the function is activated on your instance. Additional discount follows the same «best wins» rule as ordinary discount, but has no maximum limit.



Custom price and discount (the padlock)


If you enter a price or discount that differs from what the system would set, the line is considered manually overridden. You get a padlock icon by the net price in the order view, and the system then no longer changes the price and discount on that line automatically.



The lock applies to price and discount together

One lock covers price and discount together. If you enter your own price, the discount is also locked – and if you set your own discount, the price is locked. It is not possible to lock them separately. If you have the additional discount field visible, it is included in the same lock.

How to remove the lock

Clear the field you have overridden and save. An empty field retrieves the system's value again. If you clear all overridden fields, the lock disappears. There is no separate «unlock» button. You can also:

  • «Update prices» in the action menu on the order – retrieves the system's price and discount again and removes the lock.
  • Switch currency on the line – price and discount are retrieved again for the new currency.
  • «Update prices, keep discounts» – keeps the discounts, but overwrites a price you have entered yourself.



Empty field or 0?


You enterThe system understands
Empty field«Use the system's value» – the number is retrieved again. If you clear all overridden fields, the line is unlocked.
0«The price/discount is 0». The line is locked only if the system would have set something other than 0.



0 means the line costs 0 (or that the discount is 0%), not that the system should calculate the number.


NOTE: Do you use your own integrations, custom reports or dashboards that create or update order lines and send price or discount 0 to make the system calculate itself? An empty field is now the only placeholder that retrieves the system value again – the value 0 is saved as 0. Such integrations must be changed. Contact us.



What happens when you change something?


  • Quantity. If you increase the quantity past a discount tier, the discount increases. If you set the quantity down again, the high discount remains, and the line is locked. Use «Update prices» if you want the discount back to what the quantity actually gives.

  • Currency. Price and discount are retrieved again for the new currency. A price you have entered yourself is discarded, not converted – there is no correct conversion of a manual number.

  • Product change. Name and description are always taken from the new product, even if you have changed them manually. If you change the choice on a sub-selection, price and discount are updated for the new choice, but the quantity stays as it was.

  • Content in a package. If you add, remove or change the quantity of something under a package that calculates the price from the content, the package price is updated. If the package has its own fixed price, it stands.

  • Sub-selections in multiple levels. The quantity is multiplied up for each level.



«This looks wrong» – checklist


  • Is there a padlock icon by the net price? Then the line is manually overridden.
  • Is the line under another line? Then it does not get a discount automatically.
  • Does the product have «Max discount %» set to 0? Then no discount is given.
  • Does the customer have a customer-specific price on the product? Then no discount is normally added on top.
  • Has a price been entered on the sub-selection product? It overrides the choice below.
  • Is there a 0 where you meant to leave the field empty?

If you cannot find the answer here, contact support - provide a link to the relevant order







Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article