diff --git a/README.md b/README.md
index 9cd0aea1..8cc71dba 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,6 @@ More features will be added over time.
The following is a list of features to be added in the future:
* In-store pickup.
-* Package and bundle support.
* Multi-payment support.
Installation
diff --git a/Sources/AssemblyVersionAuto.cs b/Sources/AssemblyVersionAuto.cs
index fb9557f4..9e0bc88d 100644
--- a/Sources/AssemblyVersionAuto.cs
+++ b/Sources/AssemblyVersionAuto.cs
@@ -2,6 +2,6 @@
-[assembly: AssemblyVersion("10.4.1.0")]
-[assembly: AssemblyInformationalVersion("10.4.1")]
-[assembly: AssemblyFileVersion("10.4.1.2266")]
+[assembly: AssemblyVersion("10.4.2.0")]
+[assembly: AssemblyInformationalVersion("10.4.2")]
+[assembly: AssemblyFileVersion("10.4.2.2273")]
diff --git a/Sources/EPiServer.Reference.Commerce.Manager/EPiServer.Reference.Commerce.Manager.csproj b/Sources/EPiServer.Reference.Commerce.Manager/EPiServer.Reference.Commerce.Manager.csproj
index ba9e869b..b0c77b9f 100644
--- a/Sources/EPiServer.Reference.Commerce.Manager/EPiServer.Reference.Commerce.Manager.csproj
+++ b/Sources/EPiServer.Reference.Commerce.Manager/EPiServer.Reference.Commerce.Manager.csproj
@@ -33,8 +33,7 @@
prompt
4
true
- true
- 5
+ 6
pdbonly
@@ -44,6 +43,7 @@
prompt
4
true
+ 6
@@ -431,109 +431,109 @@
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\EPiServer.Business.Commerce.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\EPiServer.Business.Commerce.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\EPiServer.Commerce.Internal.Migration.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\EPiServer.Commerce.Internal.Migration.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.BusinessFoundation.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.BusinessFoundation.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.BusinessFoundation.Data.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.BusinessFoundation.Data.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.Marketing.Validators.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.Marketing.Validators.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.Plugins.Payment.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.Plugins.Payment.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.Plugins.Shipping.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.Plugins.Shipping.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.Website.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.Website.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.Workflow.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.Workflow.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.DataProvider.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.DataProvider.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.FileUploader.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.FileUploader.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.MetaDataPlus.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.MetaDataPlus.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Search.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Search.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Search.Extensions.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Search.Extensions.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Search.LuceneSearchProvider.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Search.LuceneSearchProvider.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.SqlDataProvider.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.SqlDataProvider.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.WebConsoleLib.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.WebConsoleLib.dll
True
- ..\..\packages\EPiServer.CommerceManager.10.4.1\lib\net45\Mediachase.ConsoleManager.dll
+ ..\..\packages\EPiServer.CommerceManager.10.4.2\lib\net45\Mediachase.ConsoleManager.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\AjaxControlToolkit.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\AjaxControlToolkit.dll
True
- ..\..\packages\EPiServer.CommerceManager.10.4.1\lib\net45\ComponentArt.Web.UI.dll
+ ..\..\packages\EPiServer.CommerceManager.10.4.2\lib\net45\ComponentArt.Web.UI.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\nsoftware.IBizPay.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\nsoftware.IBizPay.dll
True
- ..\..\packages\EPiServer.CommerceManager.10.4.1\lib\net45\RssToolkit.dll
+ ..\..\packages\EPiServer.CommerceManager.10.4.2\lib\net45\RssToolkit.dll
True
- ..\..\packages\EPiServer.CommerceManager.10.4.1\lib\net45\Validators.dll
+ ..\..\packages\EPiServer.CommerceManager.10.4.2\lib\net45\Validators.dll
True
-
+
This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
+
diff --git a/Sources/EPiServer.Reference.Commerce.Manager/packages.config b/Sources/EPiServer.Reference.Commerce.Manager/packages.config
index 360a6fa1..611844d9 100644
--- a/Sources/EPiServer.Reference.Commerce.Manager/packages.config
+++ b/Sources/EPiServer.Reference.Commerce.Manager/packages.config
@@ -32,6 +32,6 @@
-
-
+
+
diff --git a/Sources/EPiServer.Reference.Commerce.Manager/web.config b/Sources/EPiServer.Reference.Commerce.Manager/web.config
index a9b794ce..8720bb24 100644
--- a/Sources/EPiServer.Reference.Commerce.Manager/web.config
+++ b/Sources/EPiServer.Reference.Commerce.Manager/web.config
@@ -550,75 +550,75 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/Sources/EPiServer.Reference.Commerce.Shared/EPiServer.Reference.Commerce.Shared.csproj b/Sources/EPiServer.Reference.Commerce.Shared/EPiServer.Reference.Commerce.Shared.csproj
index ad250a54..ff213052 100644
--- a/Sources/EPiServer.Reference.Commerce.Shared/EPiServer.Reference.Commerce.Shared.csproj
+++ b/Sources/EPiServer.Reference.Commerce.Shared/EPiServer.Reference.Commerce.Shared.csproj
@@ -22,7 +22,7 @@
prompt
4
true
- 5
+ 6
pdbonly
@@ -32,6 +32,7 @@
prompt
4
true
+ 6
bin\CA\
@@ -289,83 +290,83 @@
-->
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\EPiServer.Business.Commerce.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\EPiServer.Business.Commerce.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\EPiServer.Commerce.Internal.Migration.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\EPiServer.Commerce.Internal.Migration.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.BusinessFoundation.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.BusinessFoundation.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.BusinessFoundation.Data.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.BusinessFoundation.Data.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.Marketing.Validators.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.Marketing.Validators.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.Plugins.Payment.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.Plugins.Payment.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.Plugins.Shipping.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.Plugins.Shipping.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.Website.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.Website.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.Workflow.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.Workflow.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.DataProvider.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.DataProvider.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.FileUploader.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.FileUploader.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.MetaDataPlus.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.MetaDataPlus.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Search.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Search.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Search.Extensions.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Search.Extensions.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Search.LuceneSearchProvider.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Search.LuceneSearchProvider.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.SqlDataProvider.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.SqlDataProvider.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.WebConsoleLib.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.WebConsoleLib.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\AjaxControlToolkit.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\AjaxControlToolkit.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\nsoftware.IBizPay.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\nsoftware.IBizPay.dll
True
diff --git a/Sources/EPiServer.Reference.Commerce.Shared/packages.config b/Sources/EPiServer.Reference.Commerce.Shared/packages.config
index c2b0eba4..e201293d 100644
--- a/Sources/EPiServer.Reference.Commerce.Shared/packages.config
+++ b/Sources/EPiServer.Reference.Commerce.Shared/packages.config
@@ -30,5 +30,5 @@
-
+
diff --git a/Sources/EPiServer.Reference.Commerce.Site.Tests/EPiServer.Reference.Commerce.Site.Tests.csproj b/Sources/EPiServer.Reference.Commerce.Site.Tests/EPiServer.Reference.Commerce.Site.Tests.csproj
index b1c341f4..57b2ea91 100644
--- a/Sources/EPiServer.Reference.Commerce.Site.Tests/EPiServer.Reference.Commerce.Site.Tests.csproj
+++ b/Sources/EPiServer.Reference.Commerce.Site.Tests/EPiServer.Reference.Commerce.Site.Tests.csproj
@@ -30,7 +30,7 @@
prompt
4
true
- 5
+ 6
pdbonly
@@ -40,6 +40,7 @@
prompt
4
true
+ 6
bin\CA\
@@ -410,91 +411,91 @@
-->
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\EPiServer.Business.Commerce.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\EPiServer.Business.Commerce.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\EPiServer.Commerce.Internal.Migration.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\EPiServer.Commerce.Internal.Migration.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.BusinessFoundation.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.BusinessFoundation.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.BusinessFoundation.Data.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.BusinessFoundation.Data.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.Marketing.Validators.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.Marketing.Validators.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.Plugins.Payment.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.Plugins.Payment.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.Plugins.Shipping.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.Plugins.Shipping.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.Website.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.Website.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.Workflow.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.Workflow.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.DataProvider.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.DataProvider.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.FileUploader.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.FileUploader.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.MetaDataPlus.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.MetaDataPlus.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Search.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Search.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Search.Extensions.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Search.Extensions.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Search.LuceneSearchProvider.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Search.LuceneSearchProvider.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.SqlDataProvider.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.SqlDataProvider.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.WebConsoleLib.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.WebConsoleLib.dll
True
- ..\..\packages\EPiServer.Recommendations.1.0.6\lib\net45\EPiServer.Recommendations.dll
+ ..\..\packages\EPiServer.Recommendations.1.1.0\lib\net45\EPiServer.Recommendations.dll
True
- ..\..\packages\EPiServer.Recommendations.Commerce.10.4.1\lib\net45\EPiServer.Recommendations.Commerce.dll
+ ..\..\packages\EPiServer.Recommendations.Commerce.10.4.2\lib\net45\EPiServer.Recommendations.Commerce.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\AjaxControlToolkit.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\AjaxControlToolkit.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\nsoftware.IBizPay.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\nsoftware.IBizPay.dll
True
diff --git a/Sources/EPiServer.Reference.Commerce.Site.Tests/Features/Search/Controllers/CategoryControllerTests.cs b/Sources/EPiServer.Reference.Commerce.Site.Tests/Features/Search/Controllers/CategoryControllerTests.cs
index 1c2bdda9..35b0a0b7 100644
--- a/Sources/EPiServer.Reference.Commerce.Site.Tests/Features/Search/Controllers/CategoryControllerTests.cs
+++ b/Sources/EPiServer.Reference.Commerce.Site.Tests/Features/Search/Controllers/CategoryControllerTests.cs
@@ -60,10 +60,35 @@ public void Index_WhenPassingFormModel_ShouldPassItOnToFactory()
// Assert
_viewModelFactoryMock.Verify(v => v.Create(It.IsAny(), formModel));
}
-
+
+ [Fact]
+ public void Facet_WhenBrowsingFirstResultPage_ShouldSendFacetTracking()
+ {
+ _subject.Facet(null, new FilterOptionViewModel() {SelectedFacet = "key:value", Page = 1 });
+ _recommendationServiceMock.Verify(
+ x => x.SendFacetTrackingData(
+ It.IsAny(),
+ It.IsAny()
+ ),
+ Times.Once);
+ }
+
+ [Fact]
+ public void Facet_WhenBrowsingNextResultPage_ShouldNotSendFacetTracking()
+ {
+ _subject.Facet(null, new FilterOptionViewModel() {SelectedFacet = "key:value", Page = 2 });
+ _recommendationServiceMock.Verify(
+ x => x.SendFacetTrackingData(
+ It.IsAny(),
+ It.IsAny()
+ ),
+ Times.Never);
+ }
+
private readonly CategoryController _subject;
private readonly Mock _viewModelFactoryMock;
private readonly Mock _httpRequestMock;
+ Mock _recommendationServiceMock;
public CategoryControllerTests()
{
@@ -72,13 +97,14 @@ public CategoryControllerTests()
.Returns(() => new ContentReference(1));
_viewModelFactoryMock = new Mock(null, null);
_httpRequestMock = new Mock();
+ _recommendationServiceMock = new Mock();
var context = new Mock();
context.SetupGet(x => x.Request).Returns(_httpRequestMock.Object);
_subject = new CategoryController(
- _viewModelFactoryMock.Object,
- Mock.Of(),
+ _viewModelFactoryMock.Object,
+ _recommendationServiceMock.Object,
referenceConverterMock.Object);
_subject.ControllerContext = new ControllerContext(context.Object, new RouteData(), _subject);
}
diff --git a/Sources/EPiServer.Reference.Commerce.Site.Tests/Features/Search/Controllers/SearchControllerTests.cs b/Sources/EPiServer.Reference.Commerce.Site.Tests/Features/Search/Controllers/SearchControllerTests.cs
index 5e2098c7..ab6c929c 100644
--- a/Sources/EPiServer.Reference.Commerce.Site.Tests/Features/Search/Controllers/SearchControllerTests.cs
+++ b/Sources/EPiServer.Reference.Commerce.Site.Tests/Features/Search/Controllers/SearchControllerTests.cs
@@ -29,9 +29,9 @@ public void Index_ShouldReturnViewModel()
}
[Fact]
- public void Index_ShouldSendSearchTracking()
+ public void Index_WhenBrowsingFirstResultPage_ShouldSendSearchTracking()
{
- _subject.Index(new SearchPage(), new FilterOptionViewModel());
+ _subject.Index(new SearchPage(), new FilterOptionViewModel() { Page = 1 });
_recommendationServiceMock.Verify(
x => x.SendSearchTracking(
It.IsAny(),
@@ -41,6 +41,19 @@ public void Index_ShouldSendSearchTracking()
Times.Once);
}
+ [Fact]
+ public void Index_WhenBrowsingNextResultPage_ShouldNotSendSearchTracking()
+ {
+ _subject.Index(new SearchPage(), new FilterOptionViewModel() { Page = 2 });
+ _recommendationServiceMock.Verify(
+ x => x.SendSearchTracking(
+ It.IsAny(),
+ It.IsAny(),
+ It.IsAny>()
+ ),
+ Times.Never);
+ }
+
[Fact]
public void QuickSearch_WhenSearch_ShouldReturnIEnumerableProductViewModel()
{
diff --git a/Sources/EPiServer.Reference.Commerce.Site.Tests/packages.config b/Sources/EPiServer.Reference.Commerce.Site.Tests/packages.config
index c47e9a99..76b97398 100644
--- a/Sources/EPiServer.Reference.Commerce.Site.Tests/packages.config
+++ b/Sources/EPiServer.Reference.Commerce.Site.Tests/packages.config
@@ -41,7 +41,7 @@
-
-
-
+
+
+
diff --git a/Sources/EPiServer.Reference.Commerce.Site/EPiServer.Reference.Commerce.Site.csproj b/Sources/EPiServer.Reference.Commerce.Site/EPiServer.Reference.Commerce.Site.csproj
index a4f4d34f..cb6d3dbb 100644
--- a/Sources/EPiServer.Reference.Commerce.Site/EPiServer.Reference.Commerce.Site.csproj
+++ b/Sources/EPiServer.Reference.Commerce.Site/EPiServer.Reference.Commerce.Site.csproj
@@ -931,16 +931,26 @@
10.0
$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
-
+
true
+ full
+ false
bin\
DEBUG;TRACE
+ prompt
+ 4
true
- full
- AnyCPU
+ 6
+
+
+ pdbonly
+ true
+ bin\
+ TRACE
prompt
- MinimumRecommendedRules.ruleset
- 5
+ 4
+ true
+ 6
bin\
@@ -997,103 +1007,103 @@
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\EPiServer.Business.Commerce.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\EPiServer.Business.Commerce.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\EPiServer.Commerce.Internal.Migration.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\EPiServer.Commerce.Internal.Migration.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.BusinessFoundation.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.BusinessFoundation.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.BusinessFoundation.Data.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.BusinessFoundation.Data.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.Marketing.Validators.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.Marketing.Validators.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.Plugins.Payment.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.Plugins.Payment.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.Plugins.Shipping.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.Plugins.Shipping.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.Website.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.Website.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Commerce.Workflow.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Commerce.Workflow.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.DataProvider.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.DataProvider.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.FileUploader.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.FileUploader.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.MetaDataPlus.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.MetaDataPlus.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Search.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Search.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Search.Extensions.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Search.Extensions.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.Search.LuceneSearchProvider.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.Search.LuceneSearchProvider.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.SqlDataProvider.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.SqlDataProvider.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\Mediachase.WebConsoleLib.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\Mediachase.WebConsoleLib.dll
True
- ..\..\packages\EPiServer.Commerce.UI.10.4.1\lib\net45\EPiServer.Commerce.Shell.dll
+ ..\..\packages\EPiServer.Commerce.UI.10.4.2\lib\net45\EPiServer.Commerce.Shell.dll
True
- ..\..\packages\EPiServer.Commerce.UI.ManagerIntegration.10.4.1\lib\net45\EPiServer.Commerce.Shell.ManagerIntegration.dll
+ ..\..\packages\EPiServer.Commerce.UI.ManagerIntegration.10.4.2\lib\net45\EPiServer.Commerce.Shell.ManagerIntegration.dll
True
- ..\..\packages\EPiServer.Commerce.UI.10.4.1\lib\net45\EPiServer.Commerce.UI.dll
+ ..\..\packages\EPiServer.Commerce.UI.10.4.2\lib\net45\EPiServer.Commerce.UI.dll
True
- ..\..\packages\EPiServer.Recommendations.1.0.6\lib\net45\EPiServer.Recommendations.dll
+ ..\..\packages\EPiServer.Recommendations.1.1.0\lib\net45\EPiServer.Recommendations.dll
True
- ..\..\packages\EPiServer.Recommendations.Commerce.10.4.1\lib\net45\EPiServer.Recommendations.Commerce.dll
+ ..\..\packages\EPiServer.Recommendations.Commerce.10.4.2\lib\net45\EPiServer.Recommendations.Commerce.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\AjaxControlToolkit.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\AjaxControlToolkit.dll
True
- ..\..\packages\EPiServer.Commerce.Core.10.4.1\lib\net45\nsoftware.IBizPay.dll
+ ..\..\packages\EPiServer.Commerce.Core.10.4.2\lib\net45\nsoftware.IBizPay.dll
True
diff --git a/Sources/EPiServer.Reference.Commerce.Site/Features/Search/Controllers/CategoryController.cs b/Sources/EPiServer.Reference.Commerce.Site/Features/Search/Controllers/CategoryController.cs
index 723784fb..0623c374 100644
--- a/Sources/EPiServer.Reference.Commerce.Site/Features/Search/Controllers/CategoryController.cs
+++ b/Sources/EPiServer.Reference.Commerce.Site/Features/Search/Controllers/CategoryController.cs
@@ -42,7 +42,7 @@ public ViewResult Index(FashionNode currentContent, FilterOptionViewModel viewMo
[ChildActionOnly]
public ActionResult Facet(FashionNode currentContent, FilterOptionViewModel viewModel)
{
- if (viewModel != null && !string.IsNullOrEmpty(viewModel.SelectedFacet))
+ if (viewModel != null && !string.IsNullOrEmpty(viewModel.SelectedFacet) && viewModel.Page <= 1)
{
_recommendationService.SendFacetTrackingData(HttpContext, viewModel.SelectedFacet);
}
diff --git a/Sources/EPiServer.Reference.Commerce.Site/Features/Search/Controllers/SearchController.cs b/Sources/EPiServer.Reference.Commerce.Site/Features/Search/Controllers/SearchController.cs
index 3efd0739..e53883b6 100644
--- a/Sources/EPiServer.Reference.Commerce.Site/Features/Search/Controllers/SearchController.cs
+++ b/Sources/EPiServer.Reference.Commerce.Site/Features/Search/Controllers/SearchController.cs
@@ -35,9 +35,12 @@ public SearchController(
public ActionResult Index(SearchPage currentPage, FilterOptionViewModel filterOptions)
{
var viewModel = _viewModelFactory.Create(currentPage, filterOptions);
- viewModel.Recommendations = _recommendationService
+ if (filterOptions.Page <= 1)
+ {
+ viewModel.Recommendations = _recommendationService
.SendSearchTracking(HttpContext, filterOptions.Q, viewModel.ProductViewModels.Select(x => x.Code))
.GetSearchResultRecommendations(_referenceConverter);
+ }
return View(viewModel);
}
diff --git a/Sources/EPiServer.Reference.Commerce.Site/Features/Shared/Extensions/LineItemExtensions.cs b/Sources/EPiServer.Reference.Commerce.Site/Features/Shared/Extensions/LineItemExtensions.cs
index 17e3163c..22e87be9 100644
--- a/Sources/EPiServer.Reference.Commerce.Site/Features/Shared/Extensions/LineItemExtensions.cs
+++ b/Sources/EPiServer.Reference.Commerce.Site/Features/Shared/Extensions/LineItemExtensions.cs
@@ -5,6 +5,7 @@
using System;
using System.Web;
using EPiServer.Commerce.Order;
+using EPiServer.Core;
using EPiServer.Reference.Commerce.Site.Features.Cart.ViewModels;
namespace EPiServer.Reference.Commerce.Site.Features.Shared.Extensions
@@ -19,9 +20,7 @@ public static class LineItemExtensions
public static string GetUrl(this ILineItem lineItem)
{
- var entryContentLink = _referenceConverter.Service.GetContentLink(lineItem.Code);
- var entry = _contentLoader.Service.Get(entryContentLink);
- return entry.GetUrl();
+ return GetEntryContent(lineItem.Code)?.GetUrl();
}
public static string GetFullUrl(this ILineItem lineItem)
@@ -43,9 +42,22 @@ public static string GetThumbnailUrl(this CartItemViewModel cartItem)
private static string GetThumbnailUrl(string code)
{
- var content = _contentLoader.Service.Get(_referenceConverter.Service.GetContentLink(code, CatalogContentType.CatalogEntry));
-
+ var content = GetEntryContent(code);
+ if (content == null)
+ {
+ return string.Empty;
+ }
return _thumbnailUrlResolver.Service.GetThumbnailUrl(content, "thumbnail");
- }
+ }
+
+ private static EntryContentBase GetEntryContent(string code)
+ {
+ var entryContentLink = _referenceConverter.Service.GetContentLink(code);
+ if (ContentReference.IsNullOrEmpty(entryContentLink))
+ {
+ return null;
+ }
+ return _contentLoader.Service.Get(entryContentLink);
+ }
}
}
\ No newline at end of file
diff --git a/Sources/EPiServer.Reference.Commerce.Site/Infrastructure/SiteInitialization.cs b/Sources/EPiServer.Reference.Commerce.Site/Infrastructure/SiteInitialization.cs
index af2dd10c..3aa0ea3b 100644
--- a/Sources/EPiServer.Reference.Commerce.Site/Infrastructure/SiteInitialization.cs
+++ b/Sources/EPiServer.Reference.Commerce.Site/Infrastructure/SiteInitialization.cs
@@ -5,6 +5,7 @@
using EPiServer.Framework.Initialization;
using EPiServer.Framework.Web;
using EPiServer.Globalization;
+using EPiServer.Recommendations.Widgets;
using EPiServer.Reference.Commerce.Site.Features.Market.Services;
using EPiServer.Reference.Commerce.Site.Infrastructure.Attributes;
using EPiServer.Reference.Commerce.Site.Infrastructure.Business;
@@ -15,6 +16,9 @@
using Mediachase.Commerce;
using Mediachase.Commerce.Core;
using Newtonsoft.Json;
+using System;
+using System.Linq;
+using System.Text;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
@@ -43,6 +47,15 @@ public void Initialize(InitializationEngine context)
DisablePromotionTypes(context);
SetupExcludedPromotionEntries(context);
+
+ //This method creates and activates the default Recommendations widgets.
+ //It only needs to run once, not every initialization, and only if you use the Recommendations feature.
+ //Instructions:
+ //* Enter the configuration values for Recommendations in web.config
+ //* Make sure that the episerver:RecommendationsSilentMode flag is not set to true.
+ //* Uncomment the following line, compile, start site, commment the line again, compile.
+
+ //SetupRecommendationsWidgets(context);
}
public void ConfigureContainer(ServiceConfigurationContext context)
@@ -112,5 +125,42 @@ private void SetupExcludedPromotionEntries(InitializationEngine context)
//var ExcludingCodes = new string[] { "SKU-36127195", "SKU-39850363", "SKU-39101253" };
//filterSettings.AddFilter(x => !ExcludingCodes.Contains(x.Code));
}
+
+ private void SetupRecommendationsWidgets(InitializationEngine context)
+ {
+ var configuration = context.Locate.Advanced.GetInstance();
+
+ if (configuration.SilentMode)
+ {
+ return;
+ }
+
+ var widgetService = context.Locate.Advanced.GetInstance();
+ var response = widgetService.CreateWidgets();
+
+ if (response.Status != "OK")
+ {
+ var error = response.Errors.First();
+ var message = new StringBuilder($"Code: {error.Code}, Message: {error.Error}");
+
+ if (error.Field != null)
+ {
+ message.Append($", Field: {error.Field}");
+ }
+
+ throw new Exception(message.ToString());
+ }
+
+ foreach (var widget in response.EpiPerPage.Pages.SelectMany(x => x.Widgets))
+ {
+ widget.Active = true;
+ var success = widgetService.UpdateWidget(widget);
+
+ if (!success)
+ {
+ throw new Exception($"Failed to activate widget {widget.WidgetName}");
+ }
+ }
+ }
}
}
\ No newline at end of file
diff --git a/Sources/EPiServer.Reference.Commerce.Site/Views/OrderHistory/Index.cshtml b/Sources/EPiServer.Reference.Commerce.Site/Views/OrderHistory/Index.cshtml
index b25e8467..92e1364b 100644
--- a/Sources/EPiServer.Reference.Commerce.Site/Views/OrderHistory/Index.cshtml
+++ b/Sources/EPiServer.Reference.Commerce.Site/Views/OrderHistory/Index.cshtml
@@ -42,7 +42,7 @@
diff --git a/Sources/EPiServer.Reference.Commerce.Site/Web.config b/Sources/EPiServer.Reference.Commerce.Site/Web.config
index 6b76172d..40d4f568 100644
--- a/Sources/EPiServer.Reference.Commerce.Site/Web.config
+++ b/Sources/EPiServer.Reference.Commerce.Site/Web.config
@@ -240,91 +240,91 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/Sources/EPiServer.Reference.Commerce.Site/modules/_protected/Commerce/Commerce.zip b/Sources/EPiServer.Reference.Commerce.Site/modules/_protected/Commerce/Commerce.zip
index 8a8b8060..503b1d7f 100644
Binary files a/Sources/EPiServer.Reference.Commerce.Site/modules/_protected/Commerce/Commerce.zip and b/Sources/EPiServer.Reference.Commerce.Site/modules/_protected/Commerce/Commerce.zip differ
diff --git a/Sources/EPiServer.Reference.Commerce.Site/modules/_protected/EPiServer.Commerce.Shell.ManagerIntegration/EPiServer.Commerce.Shell.ManagerIntegration.zip b/Sources/EPiServer.Reference.Commerce.Site/modules/_protected/EPiServer.Commerce.Shell.ManagerIntegration/EPiServer.Commerce.Shell.ManagerIntegration.zip
index b70850ee..65a76c41 100644
Binary files a/Sources/EPiServer.Reference.Commerce.Site/modules/_protected/EPiServer.Commerce.Shell.ManagerIntegration/EPiServer.Commerce.Shell.ManagerIntegration.zip and b/Sources/EPiServer.Reference.Commerce.Site/modules/_protected/EPiServer.Commerce.Shell.ManagerIntegration/EPiServer.Commerce.Shell.ManagerIntegration.zip differ
diff --git a/Sources/EPiServer.Reference.Commerce.Site/modules/_protected/EPiServer.Commerce.Shell/EPiServer.Commerce.Shell.zip b/Sources/EPiServer.Reference.Commerce.Site/modules/_protected/EPiServer.Commerce.Shell/EPiServer.Commerce.Shell.zip
index 42e2b508..c7f55cca 100644
Binary files a/Sources/EPiServer.Reference.Commerce.Site/modules/_protected/EPiServer.Commerce.Shell/EPiServer.Commerce.Shell.zip and b/Sources/EPiServer.Reference.Commerce.Site/modules/_protected/EPiServer.Commerce.Shell/EPiServer.Commerce.Shell.zip differ
diff --git a/Sources/EPiServer.Reference.Commerce.Site/packages.config b/Sources/EPiServer.Reference.Commerce.Site/packages.config
index 9d43d96d..ff271fc3 100644
--- a/Sources/EPiServer.Reference.Commerce.Site/packages.config
+++ b/Sources/EPiServer.Reference.Commerce.Site/packages.config
@@ -50,10 +50,10 @@
-
-
-
-
-
-
+
+
+
+
+
+