implementing customer specific discounts

Vote:
 

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

#145194
Feb 26, 2016 23:53
Vote:
 

If you have customer groups specified for A and B it should be possible to set pricing differently. See documentation about pricing 

http://world.episerver.com/documentation/Items/Developers-Guide/EPiServer-Commerce/9/Pricing/Pricing/

For a temporary promotion I would probably create a visitor group for A and B and apply discount on promotion like

http://world.episerver.com/blogs/Jeff-Wallace/Dates/2013/8/Special-Promotions-and-Offers-for-Customer-Segments-in-EPiServer-Commerce/

Anyone got a better way?

#145196
Feb 27, 2016 6:46
Vote:
 

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:

http://world.episerver.com/documentation/Items/Developers-Guide/EPiServer-Commerce/8/Marketing/discounts-beta/

I have blogged about this too (the continious release process has moved on since writing so some minor change may have applied since writing):

http://www.david-tec.com/2015/07/creating-a-custom-promotion-with-the-new-episerver-commerce-9-promotion-engine-beta---part-1/

David

#145198
Feb 27, 2016 16:06
Vote:
 

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

#145267
Mar 01, 2016 12:04
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.