Hi there,
I have another interesting discount problem. Here are some of the requirements:
- A user can add products to the cart using Express buy (with subscriptions).
- When they are creating their first subscription, they can choose one free product. The products they can choose from come from a group called Gifts.
- Products that are in the Gifts group are not only gifts; they can also be purchased normally.
- A product that is also in the Gifts group should not be added to the cart as a discount when ordered normally.
Here's the data set up
PRODUCTS
--------
PRODA
PRODB
PRODC
PRODD
PRODE
PRODF
GIFTS
-----
PRODA
PRODB
So, PRODA and PRODB can both be ordered normally and added as a gift when the user as selects it. Here's the user flow:
- I log in and go to Express Buy
- I see the products from the Products group above
- I add one or more of these to the cart and click Next to go the Gifts page
- The gifts page shows just the products from the Gifts group above
- I select one of them and click Add. This adds that product to the cart for free with a quantity of one.
A lot of this is already working with standard and custom functionality. For example, I have a standard discount that gives 100% off on the products in the Gifts group. I also have a custom DiscountExtender that marks the discount as not applicable when a user is not creating his first subscription.
Where I am running into problems is with these two items (at least for now)
- When I add a product to the cart in #3 above that is also in the Gifts group (i.e. PRODA or PRODB) it gets discounted immediately because of the 100% off discount. I don't want that; they can only be discounted when selected as a gift (and only once)
- When I add a product to the cart in #3 above that is also in the Gifts group (i.e. PRODA or PRODB), it gets discounted for the entire quantity that the user has chosen. What I want instead is just give one product away for free.
So, in other words, when I add PRODA with a quantity of 2 and then also select PRODA as the gift in the next step, the cart should contain three products and charge for two products and give one away for free.
If instead I add, say, PRODC with a quantity of 2 and select PRODA as a gift in the next step, my cart contains three products and should charge for two products PRODC and give one PRODA away for free.
In a real world analogy, I would have a basket of products on my counter and ask my customer to pick one if their purchase contained eligible products. Sounds simple, but turns out to be quite hard to set up in Dynamicweb.
Any ideas on how to implement this? Open for all implementations, including a custom (old) discount provider if I have to. I just need to understand what to implement and how.
Thanks!
Imar