If you have customer groups specified for A and B it should be possible to set pricing differently. See documentation about pricing
For a temporary promotion I would probably create a visitor group for A and B and apply discount on promotion like
Anyone got a better way?
If you are using the latest version of commerce (and depending on your target release date) then you could build your own discount using the new discount engine:
I have blogged about this too (the continious release process has moved on since writing so some minor change may have applied since writing):
David
I am Extending the Critera from David's blog
public class VisitorGroupPromoData : OrderPromotion { [Display( Name = "Matching visitor group(s)" , Description = "Customers who match one of the selected visitor group(s) will be eligible for the promotion") ] [SelectMany(SelectionFactoryType = typeof (VisitorGroupSelectionFactory))] public virtual string MatchingVisitorGroups { get; set; } [Display( Name = "Discount Percentage" , Description = "Elligible customers will receive this %'ge discount off their orders")] [Range(0, 99)] public virtual int DiscountPercent { get; set; } [Display( Name = "Categories")] [AllowedTypes(typeof(NodeContent))] public virtual IList<ContentReference> Categories { get; set; } }
and use that in Promotion engine to evaluate
public class VisitorGroupPromoProcessor : PromotionProcessorBase<VisitorGroupPromoData> { public override IPromotionResult Evaluate(IOrderGroup orderGroup, VisitorGroupPromoData promotionData) { //Get Line items from order group and their categories //compare it with the categories defined in promotion data } }
I am afraid, Performance can be an issue here.
/K
I need advise on a challenge I have with promotions and discounts.
implementing customer specific discounts. i.e.
- Customer A has discount on certain catalogue nodes ie furniture 50% and accessories 30%
- Customer B has discount on certain catalogue nodes i.e. Furniture 35% and accessories 20%.
thanks in advance