Customer wants to create a discount like this:
"Packageprice round table + 2 chairs for xxx SEK"
Is there a builtin discount that would fit?
Tried looking at fixed price, but it does not look like i can have two different articles and get a discount for them
Sounds more like you should create a "package" catalog entry and put pricing on that one instead of using promotions to achieve it :)
It appears that there is no built in discount for this. To solve this you could create and implement the "Package price" as a bundle and then create a custom promotion for setting discounts on bundles like so: https://jstemerdink.wordpress.com/2017/09/07/buy-a-bundle-get-a-discount/
Joel's answer is correct - however keep in mind that package has its own inventory as well. So unless you allocate a number of combination for that package, say you have 120 tables and 200 chairs, then you might need to allocated 50 tables and 100 chairs for that specific "discount". If you want to have it dynamic, it can be very tricky to get right.
Is the scenario above possible to do this with a custom promotion?
I ask because it could be a pretty big task to introduce package in a existing solution.
Yes, absolutely, you can do almost anything if you're creating your own promotion. In the promotion processor, you can implement any logic and give any amount of discount depending on what you have in the cart.
Ok, do you know which of the builtin promotions that are closest to scenario above?
Is it BuyQuantityPayFixedAmount that is most similar and most suitable to start from?
Well logically it seems to be it, but when it comes to implement the processor, things can drift quickly. I'd have to say to achieve what you are trying to do is a magnitude more difficult than BuyQuantityPayFixedAmount, so I really doubt it will be easier than actually implementing the package.
Sounds like a good start! If you take a look at the conditions and rewards, they match the scenario. The only difference is that you might want to build the processor checking that you have all the provided condition items, not just one. So start there :)
The reward matches, the conditions doesn't really match as you would have to add seperate field for the quantity of each article and seperate content references for each.
Then if you want to support a third article in the discount you have to extended the promotion further.
You can do it but implementing support for packages is by far a better software design solution and will most likely turn out to be the cheapest alternative in the long run.
For instance what would you do if the customer decides that they want to give a discount to additional chairs if the customer has bought the "Packageprice round table + 2 chairs for xxx SEK"?
If it is a package it is an easy matter to create a discount for the additional chairs, if it is a discount...you would most likely have to extended your discount something horrible to account for all possible variations...
I'm of course not seeing the big picture (it's your solution, you know it best ;) ), but my gut feeling is that if you can, always use the native/fully support feature from the framework. It will help a lot in long run.
The new promotion engine is of course very flexible and you can do a lot of thing with it, but, remember, the package is fully supported and intensively tested. If you found a bug in that we would be happy to work on that. But if you have a bug in your custom promotion, well, you're on your own (technically, it can be a bug in the engine, but that's very unlikely)
I have a few minutes to spare, so I try and create this https://vimvq1987.com/package-equivalent-promotion-type-in-episerver-commerce/
Full disclosure in the post, but TL;DR: this is for fun and for educational purposes only
I intended to start doing som POC tomorrow about writing this as a custom promotion. ( I'm not sure, but I think promotions would fits our needs better.)
And just in time you have posted a blogpost about it with codeexample. Perfect!
I havent read the post yet. I understand it's for educational purposes and it's more to do then just copy and paste it, but it would be a god starting point.