In the marketing system a promotion is created:
Buy for more than $500, and get Product-A with a 50% discount
The promotion works just fine when Product-A is in the cart and the order total is > $500
But if the order total is less than $500 we want to inform the customer that he is missing out on a great discount
I see at least a few options when loading the cart page
Create a ContentArea property to add your promotions and apply personalizations based on visitor group criteria.
You can create visitor group criteria based on Total Spent. For that you will need to create a custom criteria. In that you can calulate the cart total.
Let me know if you need help in creating custom visitor group criteria.
Help ful links:
But how can the editor choose promotions in the UI?
Why you want to select the promotion in field? You can create a block and add promo code into the content of that block. Then apply the personalization on that block, for minimum purchase of 500 to show content of that block (to show promo code).
I want to show the promotion banner regardless of the current cart total.
However I would like to give the editor the option to choose what promotion to display on the cart page.
This can ofcourse be done by creating a new block item and inserting that into the new content area on the CartPage.
But since the promotion is created in the marketing system with nice texts and image I would like to be able to display these on the cart page to the customer
In that case, create a property list type (single/multi select) on cart page and pull data (promotions) for that, using PromotionEngineContentLoader.GetPromotions() and bind to that list. Now Editors will have to choose the promotion(s) to show on cart page. and you can pull the information of the selected promotion(s) to render on cart page.
Also, when you want to pull the information for selected promotion(s), you can filter using linq with PromotionEngineContentLoader.GetPromotions().Select() statement. That should work.
A more automated way could be to get all active promotions and filter them for the products in the cart, if they have a promotion attached to them.
You could combine the "techniques" I wrote about in these posts New Promotions and their Banners, Getting all products a promotion applies to