Define 2x1 or 3x2 or 5+1 promotions

I will like to define a 2x1 (1 product free for each one ordered ) or 3x2 (1 product free for each one ordered) or 5+1 (1 product free for each 5 orderd) for a specific product.

For example using a 2x1, when selling 1 units I will pay the full amount but when ordering two I will get two lines:

  • One with quantity 1 and the product list_price
  • Another with 1 quantity and 0 list price

Using a 3x2, when selling 1 or 2 units I will pay the full amount but when ordering three I will get two lines:

  • One with quantity 2 and the product list_price
  • Another with 1 quantity and 0 list price

Using a 5+1, when selling up to 4 units I will pay the full amount but when ordering 5 I will get two lines:

  • One with quantity 5 and the product list_price
  • Another with 1 quantity and 0 list price

How can we achieve this with Tryton?

for example with sale_extra module but extending the clause.

Otherwise, it is just a price list with proper computation of the price depending on the quantity which is probably the most correct way. Because I’m not sure that you are allowed sell a product for 0 next to the same product with a different price.
Also usually the extra product is not pushed to the consumer automatically but only if he request it.

You mean adding the product and quantity as filter of the sale_extra pattern?

I do not think it will be a good idea to set a line for all of the combinations of quantities possible.

Why not? I see there are some of companies doing it (at least in Spain)

For example.

Showing you a marketing message like that but you do not know how they are doing their accounting.
For example in Belgium it is forbidden by law to sale a product below the cost price outside the sold period.
Maybe you can do that as long as the real unit price is not below the cost price. But I do not know how this should be booked in the accounting.