London Dev Meetup Rescheduled! Due to unavoidable reasons, the event has been moved to 21st May. Speakers remain the same—any changes will be communicated. Seats are limited—register here to secure your spot!

implementing customer specific discounts

Vote:
0

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:
0

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:
0

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:
0

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.