diff --git a/Sources/EPiServer.Reference.Commerce.Site/Views/Product/Index.cshtml b/Sources/EPiServer.Reference.Commerce.Site/Views/Product/Index.cshtml
index eff3708b..f9fc1386 100644
--- a/Sources/EPiServer.Reference.Commerce.Site/Views/Product/Index.cshtml
+++ b/Sources/EPiServer.Reference.Commerce.Site/Views/Product/Index.cshtml
@@ -1,6 +1,4 @@
-@using EPiServer.Reference.Commerce.Site.Features.Recommendations
-
-@model EPiServer.Reference.Commerce.Site.Features.Product.ViewModels.FashionProductViewModel
+@model EPiServer.Reference.Commerce.Site.Features.Product.ViewModels.FashionProductViewModel
@@ -126,7 +124,12 @@
}
}
-
-@section RightMarginRecommendations {@{ Html.RenderAction("Index", "Recommendations", new { recommendations = Model.AlternativeProducts });}}
-
-@section BottomRecommendations {@{ Html.RenderAction("Index", "Recommendations", new { recommendations = Model.CrossSellProducts });}}
\ No newline at end of file
+@if (@Functions.UseClientSideTracking())
+{
+ @section RecommendationsContextSettings { sectionMappings: [{ area: "productAlternativesWidget", selector: ".recommendations-right", numberOfItemsToRender: 3 }, { area: "productCrossSellsWidget", selector: ".recommendations-bottom"}] }
+}
+else
+{
+ @section RightMarginRecommendations {@{ Html.RenderAction("Index", "Recommendations", new {recommendations = Model.AlternativeProducts}); }}
+ @section BottomRecommendations {@{ Html.RenderAction("Index", "Recommendations", new {recommendations = Model.CrossSellProducts}); }}
+}
\ No newline at end of file
diff --git a/Sources/EPiServer.Reference.Commerce.Site/Views/Product/_Quickview.cshtml b/Sources/EPiServer.Reference.Commerce.Site/Views/Product/_Quickview.cshtml
index 09f5886a..7d0d0b0b 100644
--- a/Sources/EPiServer.Reference.Commerce.Site/Views/Product/_Quickview.cshtml
+++ b/Sources/EPiServer.Reference.Commerce.Site/Views/Product/_Quickview.cshtml
@@ -1,4 +1,6 @@
-@model EPiServer.Reference.Commerce.Site.Features.Product.ViewModels.FashionProductViewModel
+@using EPiServer.Personalization.Commerce.Extensions
+@using EPiServer.Tracking.Commerce
+@model EPiServer.Reference.Commerce.Site.Features.Product.ViewModels.FashionProductViewModel
@@ -71,6 +73,7 @@
}
}
+ @Html.SetupOnLoadTracking()
}
diff --git a/Sources/EPiServer.Reference.Commerce.Site/Views/Search/Index.cshtml b/Sources/EPiServer.Reference.Commerce.Site/Views/Search/Index.cshtml
index 9ccfb2f6..81d757c0 100644
--- a/Sources/EPiServer.Reference.Commerce.Site/Views/Search/Index.cshtml
+++ b/Sources/EPiServer.Reference.Commerce.Site/Views/Search/Index.cshtml
@@ -1,6 +1,4 @@
-@using EPiServer.Reference.Commerce.Site.Features.Recommendations
-
-@model EPiServer.Reference.Commerce.Site.Features.Search.ViewModels.SearchViewModel
+@model EPiServer.Reference.Commerce.Site.Features.Search.ViewModels.SearchViewModel
@{
if (Request.IsAjaxRequest())
{
@@ -26,4 +24,11 @@
}
-@section BottomRecommendations {@{ Html.RenderAction("Index", "Recommendations", new { recommendations = Model.Recommendations });}}
\ No newline at end of file
+@if (@Functions.UseClientSideTracking())
+{
+ @section RecommendationsContextSettings { sectionMappings: [{ area: "searchWidget", selector: ".recommendations-bottom" }] }
+}
+else
+{
+ @section BottomRecommendations {@{ Html.RenderAction("Index", "Recommendations", new { recommendations = Model.Recommendations });}}
+}
\ No newline at end of file
diff --git a/Sources/EPiServer.Reference.Commerce.Site/Views/Shared/_Layout.cshtml b/Sources/EPiServer.Reference.Commerce.Site/Views/Shared/_Layout.cshtml
index 65679929..afd865d1 100644
--- a/Sources/EPiServer.Reference.Commerce.Site/Views/Shared/_Layout.cshtml
+++ b/Sources/EPiServer.Reference.Commerce.Site/Views/Shared/_Layout.cshtml
@@ -1,88 +1,72 @@
-@using System.Web.Optimization
-@using EPiServer.Editor
-@using EPiServer.Security
-@using EPiServer.Reference.Commerce.Site.Features.Shared.Extensions
+@using EPiServer.Editor
@using EPiServer.Framework.Web.Mvc.Html
+@using EPiServer.Personalization.Commerce.Extensions
+@using EPiServer.Reference.Commerce.Site.Features.Shared.Extensions
+@using EPiServer.Security
@using EPiServer.Web.Routing
+@using System.Web.Optimization
-
-
-
-
-
@{ Html.RenderAction("Title", "Head"); }
- @RenderSection("Meta", false)
-
-
- @Styles.Render("~/styles/bundled")
-
-
-
-
-
- @{
- var requestLang = ViewContext.RequestContext.GetLanguage();
- if (!string.IsNullOrEmpty(requestLang))
- {
- //ChangeThis - Using language annotations. You should update defaultLanguage below according your site.
- //Refer to: https://support.google.com/webmasters/answer/189077?hl=en for detail guide.
- var defaultLanguage = "en";
- var requestContentLink = ViewContext.RequestContext.GetContentLink();
- @Helpers.RenderHrefLangs(requestContentLink, defaultLanguage);
+
+
+
+
+
@{ Html.RenderAction("Title", "Head"); }
+ @RenderSection("Meta", false)
+ @Styles.Render("~/styles/bundled")
+
+
+
+
+ @{
+ var requestLang = ViewContext.RequestContext.GetLanguage();
+ if (!string.IsNullOrEmpty(requestLang))
+ {
+ //ChangeThis - Using language annotations. You should update defaultLanguage below according your site.
+ //Refer to: https://support.google.com/webmasters/answer/189077?hl=en for detail guide.
+ var defaultLanguage = "en";
+ var requestContentLink = ViewContext.RequestContext.GetContentLink();
+ @Helpers.RenderHrefLangs(requestContentLink, defaultLanguage);
}
- }
- @Html.RequiredClientResources("Header")
-
-
-
- @Html.RenderEPiServerQuickNavigator()
- @if (!PageEditing.PageIsInEditMode && PrincipalInfo.HasEditAccess)
- {
- // Add element to make room for quick navigator.
-
- }
-
- @Html.RenderReadonlyMessage()
-
-
-
+ }
+ @Html.RequiredClientResources("Header")
+ @Html.LoadTrackingAPI()
+
+
+ @Html.RenderEPiServerQuickNavigator()
+ @if (!PageEditing.PageIsInEditMode && PrincipalInfo.HasEditAccess)
+ {
+ // Add element to make room for quick navigator.
+
+ }
+ @Html.RenderReadonlyMessage()
+
+
+ @Html.Translate("/Header/Cookie/CookieUse")
-
-
-
- @Html.Translate("/Header/Cookie/CookieUse")
-
-
- @{
- Html.RenderAction("Index", "Navigation");
- }
-
-
-
-
- @RenderBody()
+ @{ Html.RenderAction("Index", "Navigation"); }
+
+
@RenderBody()
+
@RenderSection("UpperRecommendations", false)
+
@RenderSection("LeftMarginRecommendations", false)
+
@RenderSection("RightMarginRecommendations", false)
+
@RenderSection("BottomRecommendations", false)
-
-
@RenderSection("UpperRecommendations", false)
-
@RenderSection("LeftMarginRecommendations", false)
-
@RenderSection("RightMarginRecommendations", false)
-
@RenderSection("BottomRecommendations", false)
-
-
-
- @{ Html.RenderAction("Index", "Footer"); }
-
- @Scripts.Render("~/bundles/jquery")
- @Scripts.Render("~/bundles/bootstrap")
- @Scripts.Render("~/bundles/jqueryval")
- @Scripts.Render("~/bundles/js")
- @Html.RequiredClientResources("Footer")
-
+ @{ Html.RenderAction("Index", "Footer"); }
+ @Scripts.Render("~/bundles/jquery")
+ @Scripts.Render("~/bundles/bootstrap")
+ @Scripts.Render("~/bundles/jqueryval")
+ @Scripts.Render("~/bundles/mustache")
+ @Scripts.Render("~/bundles/js")
+ @Html.RequiredClientResources("Footer")
+
+ @if (@Functions.UseClientSideTracking())
+ {
+ @Html.Partial("_RecommendationsTemplates")
+ @Html.SetupOnLoadTracking("Recommendations.render", Helpers.RenderContextSettings().ToString())
+ }
+
\ No newline at end of file
diff --git a/Sources/EPiServer.Reference.Commerce.Site/Views/Shared/_MiniCartDetails.cshtml b/Sources/EPiServer.Reference.Commerce.Site/Views/Shared/_MiniCartDetails.cshtml
index 94715369..e8a7399a 100644
--- a/Sources/EPiServer.Reference.Commerce.Site/Views/Shared/_MiniCartDetails.cshtml
+++ b/Sources/EPiServer.Reference.Commerce.Site/Views/Shared/_MiniCartDetails.cshtml
@@ -1,4 +1,5 @@
-@using EPiServer.Reference.Commerce.Site.Features.Shared.Extensions
+@using EPiServer.Personalization.Commerce.Extensions
+@using EPiServer.Reference.Commerce.Site.Features.Shared.Extensions
@model EPiServer.Reference.Commerce.Site.Features.Cart.ViewModels.MiniCartViewModel
@@ -76,7 +77,7 @@
}
- }
+ }
@if (Model.ItemCount > 0)
@@ -94,3 +95,8 @@
}
+
+@if (Request.IsAjaxRequest())
+{
+ @Html.SetupOnLoadTracking()
+}
diff --git a/Sources/EPiServer.Reference.Commerce.Site/Views/Shared/_RecommendationsTemplates.cshtml b/Sources/EPiServer.Reference.Commerce.Site/Views/Shared/_RecommendationsTemplates.cshtml
new file mode 100644
index 00000000..44c59036
--- /dev/null
+++ b/Sources/EPiServer.Reference.Commerce.Site/Views/Shared/_RecommendationsTemplates.cshtml
@@ -0,0 +1,25 @@
+
+
\ No newline at end of file
diff --git a/Sources/EPiServer.Reference.Commerce.Site/Views/Shared/_WishListMiniCartDetails.cshtml b/Sources/EPiServer.Reference.Commerce.Site/Views/Shared/_WishListMiniCartDetails.cshtml
index 9518a05b..8f8d1ae2 100644
--- a/Sources/EPiServer.Reference.Commerce.Site/Views/Shared/_WishListMiniCartDetails.cshtml
+++ b/Sources/EPiServer.Reference.Commerce.Site/Views/Shared/_WishListMiniCartDetails.cshtml
@@ -1,4 +1,5 @@
-@using EPiServer.Reference.Commerce.Site.Features.Shared.Extensions
+@using EPiServer.Personalization.Commerce.Extensions
+@using EPiServer.Reference.Commerce.Site.Features.Shared.Extensions
@model EPiServer.Reference.Commerce.Site.Features.Cart.ViewModels.WishListMiniCartViewModel
@@ -66,4 +67,9 @@
-