cancel
Showing results for 
Search instead for 
Did you mean: 

promotions: display discounted value on product detail page

Former Member
0 Kudos

Hello experts,

we have the requirement to apply promotions directly on the product detail page for displaying the final prices.

So if for example a product (e.g. price = 1000 $) is part of a percentage discount promotion (e.g. 10% discount), we have to display the discounted price (e.g. =900 $)

What are the best options achieving this?

Right now i only see two:

  1. Create a temporary cart, apply the product, calculate cart + promotions

  2. Reimplement the promotion logic

As i do not like any of them, I'll hope for better ideas from your side 🙂

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

1) would basically be a simulation approach like ERP / SAP do it sometimes. That's very expensive - eventually acceptable, depending on the traffic on details pages. Depending on the complexity of a user context determining the promotion, the simulation could be cached.

As the promotion logic is made for complex rules / contexts around a cart/order to determine if a promotion applies it seems to me that it's significant effort to decouple it from cart/order. So the solution 2) doesn't seem reasonable as you'd either need to replace or duplicate the calculation logic.

A third solution could be to base your price promotion on normal discounts instead of promotions as they are global and part of the product price finding process. You could define your own derivate of discount that eventually has some more context (beyond product / customer / time etc.) to it, giving it some features of promotions. Alternatively addition PriceRows with additional restrictions on them. For both you need to replace / append the price finding logic to include your new restrictions. This limits the possibilities versus promotions, but does not require a cart or an order and should be less effort than 2) and is surely less expensive per call than 1).

Answers (4)

Answers (4)

0 Kudos

Hi,

Any update on this?

From what I understand, the suggested third solution where we can use normal discounts is a good option, however this only allows to create discounts one by one for each individual product right? The discount lines are assigned to each individual product and not for example to a category of products correct?

So are there any other option to create discount / promotion for let's say a category of products and be able to show them prior to add to the cart? (at product level detail)

Thanks

nicolabeghin-2
Employee
Employee
0 Kudos

Any update on this? It's pretty weird not being able to show a discount in the product details page! Maybe using a product-related promotion in place of a cart-based one? Just tried with a non cart-based promotion, and it still doesn't show up in the product details page, only in cart.

Former Member
0 Kudos

Hello experts,

I have just about the same requirement and I'm interested in finding the best approach. I'm currently trying to sort all the info I find about the deprecated promotion extension, the promotion engine, discounts etc. so any help would be much appreciated.

Today I know how to create a promotion rule, action, condition and so on. At runtime I can retreive the promotion in the productpagecontroller see the promotion info but I'm afraid the promotion only applies once the product is added to the cart.

Am I condemned to parse the sourcerule action and apply the promotion myself ? It seems kinda overkill.

Regards

Former Member
0 Kudos

thank you for your input!

option 3 is absolutely clear, unfortunately it's not an option for us to switch from promotions to vanilla discounts for various reasons.

So i think i'll stick with option 1. Is it somehow possible to use an in memory cart for this, or do i always have to create a cart in the db?

Former Member
0 Kudos

You can't use in memory cart with out-of-the-box promotions.

As of 5.0.3 (I think) you can cache promotion results, and this can be used with in memory cart.

HOWEVER, you would have to run all carts in this mode (not just the temporary cart for calculation), and it's highly likely that there would be knock on effects that would need to be detected (via testing) and fixed.

All in all, a huge change (and a fair amount of testing effort) for a relatively small requirement. I would not recommend going down that route.