Binh Nguyen
Apr 4, 2019
  1269
(4 votes)

Workaround for supporting multilingual promotion

Did you use to be bored with old marketing system? The performance when running the old promotion engine or customizing a promotion used to be a big problem. But since the new marketing system was launched, the hard time has been ended.

But one good day, you have a customer request that we need to show our promotion name/description in the front view by multiple different languages. For example: there are 2 available languages in our site are English and Sweden.

How to do that?

We are aware that we could not do that with OOTB's Episerver until now. Although discount data has already been based on IContent but it has some limitations compared to other Episerver content like pages, blocks or catalog contents.

So is there any way to workaround with this requirement?

The answer here is YES but it is not simple way. Here is my way:

1. Install package EPiServer.VisitorGroupsCriteriaPack. We will use SelectedLanguage criterion for filtering promotions based on the current language

2. Setup 2 visitor groups for English and Sweden

3. Create 2 different campaigns for these two languages and appropriated promotions in these campaigns

4. Modiy MarketContentLoader class in QuickSilver sample code a bit to see proper promotions based on the current language in the home page: Using CampaignVisitorGroupFilter to filter campaign based on visitor group

 private readonly CampaignVisitorGroupFilter _campaignVisitorGroupFilter;
public virtual IList<PromotionData> GetEvaluablePromotionsInPriorityOrderForMarket(IMarket market)
{
   var result = _campaignVisitorGroupFilter.Filter(
                new PromotionFilterContext(GetPromotions().Where(x => IsValid(x, market)),
                    RequestFulfillmentStatus.All));
   return result.IncludedPromotions.OrderBy(x => x.Priority).ToList();
}

5. Finally, let's see the result in the front view

  • In English

  • In Sweden

Apr 04, 2019

Comments

Please login to comment.
Latest blogs
A day in the life of an Optimizely Developer - Vertical Slicing in CMS12

There is such a vast choice these days in how you can build a website, aside from all of the different programming languages out there, there are...

Graham Carr | Mar 20, 2023

Tag Helpers in CMS 12

Microsoft introduced the TagHelper back in the primordial soup of ASP.NET vNext which became .Net 5, then .NET Core then .Net 5 you know the drill…...

MartinOttosen | Mar 20, 2023

Security.txt with minimal api .net core

Learn why security.txt is a good practice to implement and how easy it can be done.

Luc Gosso (MVP) | Mar 20, 2023 | Syndicated blog

Optimizely named a leader in the Gartner 2023 Magic Quadrant

The Optimizely DXP and CMP are once again being recognised as leaders in the Magic Quadrant by Gartner.

Ynze | Mar 20, 2023 | Syndicated blog