Discounts and Promotions, formerly Price Adjustments, defines rules to be applied to invoice and order lines to adjust prices.
This feature is an Openbravo Advanced Feature that is hidden by default, however and as any other advanced feature can be shown in a very easy way.
This advanced feature requires to set as "Active":
- the "Read-Only" Tab "Discounts and Promotions" in below listed windows:
- Purchase Order
- Sales Order
- Purchase Invoice
- Sales Invoice
- and Sales Quotation
Please review the Advanced Features section of this user guide to better understand how a window and a tab of a window can be shown.
How Promotions are applied
Rules are applied to order or invoice lines based on the filters in that rule, for example to a specific Business Partner Category acquiring a concrete set of products during a fixed period of time.
When the line is saved, actual price shown in it does not take into account promotions. Promotions are calculated when the invoice/order is processed or by clicking the Calculate Promotions button.
Openbravo manages prices in 3 chunks:
- Price List: it is base price defined as Product Price. It is the base price reference.
- Price Standard: it is the first discount applied to the price. It can come directly from the Price List, or can be manually edited while entering the line.
- Actual price: it is real price that will be used in the document. Promotions are applied to Price Standard to obtain this one.
Multiple promotions can be chained in cascade, in this case the one applied in 2nd position will use as base the actual price obtained after applying the first one. An alternative mechanism to apply promotions in WebPOS is implemented by Promotions Best Deal Case module.
How Promotions are defined
The main fields to take into account when defining a promotion are:
- Type: indicates which is the implementation of the promotion. By default, Openbravo 3 distribution includes Price Adjustment type, but external modules can provide additional implementations, for example Discounts and Promotions Rules module (which is included in Openbravo for Retail package) ships 4 additional types. Documentation for developers on how to implement new types can be found here.
- Name and Printed Name: is the way to identify the promotion. Printed Name is used to display the rule to the final user, whereas name is intended for internal usage, although in case Printed Name is empty, Name is used instead.
- Filter Options section: filter options configure in which cases it can be applied.
- Starting and Ending dates: The period of time the promotion is valid.
- Priority: As explained in previous section, multiple promotions can be applied in cascade. Priority field defines which is the order these promotions are applied in. When more than one promotion can be applied to a single line, these promotions are sorted by ascending priority, this is, the promotion with priority 1 will be applied before than the one with priority 2. Note it is very important to set priority in case of defining rules that can be applied in cascade.
- Apply Next: It allows to stop promotion cascade chain. When it is flagged, in case after applying current promotion, there is another one that is applicable, it will be applied. If it is not flagged, this rule will be the last in the chain.
- Included method: There are 6 drop down fields to define how Business Partner Categories, Business Partners, Product Categories, Products, Price Lists and Organizations are filtered. The actual values for the filters are added in the subtabs with the same names, these fields only define the strategy to filter each of them, values here can be:
- All excluding defined (default value). It removes from the filter the items selected. For example if we set it to products and add product A, the promotion will apply to any product but A. Note as this is the default value for all filters, in case it is left as is for all of them, and no filter option is added in any sub tab, the promotion will be always applicable.
- Only those defined: Restricts the filter to just the items that are included in the correspondent sub tab.
- Definition section: Fields shown in this section vary depending on the selected promotion type. Here it is typically defined how much to discount and additional conditions to be met to apply the rule.
Price Adjustment is the promotion type included by default in Openbravo 3 distribution, it behaves almost in the same way Price Adjustments did before they were extended to Promotions and Discounts.
As opposed to the rest of Promotions and Discounts, in order to maintain backwards compatibility, prices with adjustments are calculated while the order/invoice line is being edited so final price is shown there even before processing it. Unlike it behaved before 3.0MP17, Promotions and Discounts lines are not created until the document is processed. Because of this different behavior between Price Adjustments and the rest of Discounts and Promotions, it is advisable not to use both of them together, so in case Price Adjustments are defined and applied, do not define other types to be applied to the same products.
To define a promotion of Price Adjustment type, follow the indications in the section above for filtering. In the Definition section these are the fields to be taken into account:
- Discount Amount: It is a fixed amount discounted to the price.
- Discount %: Percentage discounted to the price. In case Discount Amount field is not 0, percentage is applied to the price obtained after subtracting Discount Amount value.
- Fixed Unit Price: Sets the price per unit. If this field is set, the two mentioned above are not used.
- Min and Max quantities: Specifies which is the quantity range to apply the rule, values here are included and any (or both) of them can be empty. For example, a promotion with Min Quantity 5 to product A (which UOM is unit) would apply whenever there is a line with 5 or more units of product A.