Projects:Discounts & Promotions
The aim of this project is to extend current Price Adjustments to make it adaptable to new rules.
Currently Price Adjustments are defined by a Discount Amount and/or Discount % or Fixed Price and applied based on a series of filters (BP Categories, Business Partners, Product Categories, Products and Price Lists)
When a price adjustment is applied to an order/invoice line, Net Unit Price is recalculated and a new Price Adjustment line is inserted (as child of the order/invoice line).
Logic is implemented in:
- DB Triggers in c_oder_line, c_invoice_line to add new price adjustments lines.
M_GET_OFFERS_PRICEPL to calculate the adjustments that are applicable as well as the final price.
- Callouts in Order/Invoice lines to calculate prices using
M_GET_OFFERS_PRICEis used by many other PL functions
- Discounts & Promotions can be used from Web POS.
- Ability to define different types of discounts and promotions. Each type has its own rules and fields to work with.
- Add Organization as new filter, so promotions can be applied based on Organization.
- Ideally organizations can be optionally selected based on tree
- New flag to stop applying other discounts. Discounts are applied based on their priority, when a discount flagged in this way is applied, no other one will be.
- User friendly description. Currently discounts are identified by a name, this name can be internal but not giving much information to end user. There should be a way to describe the promotion to be presented to the end user (being possible also to use some kind of expression to include variables).
Current implementation will be named "Price Adjustments" and will continue working as is now.
2 new promotions types will be implemented in the short term:
- "Discount". Works in a similar way "Price Adjustments" does but is simplified in the sense it only accepts percentage discount.
- "Buy X pay Y"