1

I'd like to set up some products with a promotion of 3 for £1 (usual price 50p each).

The closest I can find is to set up a promotion with a product price bonus of .33 for 3 products (which gives them a total of 99p) - there doesn't seem anywhere to say 3 of something costs £1.

I've looked at product quantity discounts but they also lack a 3 for £1 type option.

Also, with the above method makes all the products 33p once you've bought at least 3 (this is working as the devs intended, but not how I want it to work).

How do I set up a product so a user can by 1 or 2 for 50p each, 3 for £1, 4 for £1.50 (3 for £1 + 1 for 50p).

Similarly, how do I set up a product that's 3 for the price of 2?

Or buy one, get one free?

Quite happy to buy an addon that has this functionality but not sure which one fulfils my requirements. I'm also happy to develop this myself but I'm struggling to override /promotions/schema.php (cs-cart isn't reading my file in /addons/foo/schemas/promotions/schema.php file) to add my own bonus calculations.

RichardAtHome
  • 4,293
  • 4
  • 20
  • 29
  • [this](https://forum.cs-cart.com/topic/47859-promotion-buy-3-pay-2/) is a bit dated (2017), but it appears 3 for 2 at least is not possible out the box – Nick is tired Aug 14 '19 at 15:27
  • Can you load a different sku for the '3 pack'? This way users are forced to buy in quanta packs of 3. – StuartLC Aug 20 '19 at 06:25
  • Mathematically it's impossible without creating an extra identity which states that 3 = 1 pound. So this identity can be used to any price calculation when more than 3 are being bought. So you can do (amount_ordered % 3)*0.5 + (amount_ordered/3)*1 = final price. – Celius Stingher Aug 20 '19 at 21:20

1 Answers1

0

How about you define +3 and +1 functionalities. Users aren't dumb. They'll add +3 and +1 accordingly as they know +3 increase total by $1 and +1 will always create $0.50.

Worst case is you have a batch process that refunds users according to the total number and charges.

Edward Aung
  • 3,014
  • 1
  • 12
  • 15