Loading...
Area: Episerver Commerce
Applies to versions: 7.5

Breaking changes - Commerce 7.5

Recommendations [hide]

Introduction

This document describes breaking changes for EPiServer 7.5 Commerce in relation to previous versions, and steps needed to update affected code.

SEO URIs

SEO URI routes are no longer registered automatically.

  • In previous versions, a route for SEO Uri:s used in the Enoteca templates was registered by an initialization module in EPiServer.Business.Commerce.dll. This code has been moved and is no longer executed automatically.
  • Sites that are (re-)built to utilize the new routing features of the updated EPiServer Commerce version should not register this route as it will conflict with the new routing system.
  • Refer to Routing in the Commerce Developer Guide, for more information on how to handle SEO URI:s.

Catalog page provider

The page provider for catalog content and related classes have been removed.

Catalog content is now served by the catalog content provider. See also Upgrading Enoteca-based sites.

Catalog content provider

The catalog content provider is registered automatically.

The content provider for catalog content (formerly EPiServer.Business.Commerce.ContentProviders.CommerceContentProvider) should no longer be included in the page provider configuration in the episerver section. It is initialized by a initialization module in EPiServer Commerce.

Find search provider

The Find Search Provider has moved to a different file and namespace.

This affects the provider configuration in Mediachase.search.config so that <add name="FindSearchProvider" type="EPiServer.Business.Commerce.FindSearchProvider.FindSearchProvider, EPiServer.Business.Commerce.FindSearchProvider" serviceUrl="[url]" defaultIndex="[index name]"/>

becomes

<add name="FindSearchProvider" type="EPiServer.Commerce.FindSearchProvider.FindSearchProvider, EPiServer.Commerce.FindSearchProvider" serviceUrl="[url]" defaultIndex="[index name]"/>

Commerce Manager add-on

The addon for commerce manager, EPiServer.Business.Commerce.AddOns.Manager has been replaced by two new add-ons, EPiServer.Commerce.AddOns.Manager and EPiServer.Commerce.AddOns.UI.

Uninstalling the former disables the new catalog editing UI, while features like the CMS edit product picker is supported by files still available through the EPiServer.Commerce.AddOns.UI add-on.

Removed HTTP Modules

The ProductUrlRewriteModule and InitializeCommerceManagerModule (namespace EPiServer.Business.Commerce.HttpModules) have been removed. The former is superseded by product routing and the latter by use of standard initializable modules.

Assembly name changes

Some assemblies have had their name changed to match namespace changes:

  • EPiServer.Business.Commerce.AddOns.Manager renamed to EPiServer.Commerce.AddOns.Manager
  • EPiServer.Business.Commerce.UI renamed to EPiServer.Commerce.UI

Note: EPiServer.Business.Commerce.dll has not been renamed since it is the primary assembly that is called from partner code. However, most of the classes contained in it use the EPiServer.Commerce namespace.

API changes

Namespace EPiServer.Business.Commerce

  • CommerceSettings no longer has the properties CommerceManagerLink and ProductDetailPageType.
  • Constants no longer has the property PageProviderName related to the removed catalog page provider.
  • Removed CommercePageResolver and BreadcrumbsFactory related to the removed catalog page provider.
  • Removed EventService and IEventService. The Catalog Entry updated events are notified by EPiServer.Events.Remote.EventReplication instead of EventService.

Namespace EPiServer.Business.Commerce.ContentProviders

The functionality in this namespace has been largely rewritten and now resides in the EPiServer.Commerce.Catalog.Provider and EPiServer.Commerce.Catalog.ContentTypes namespaces. Several classes have been removed, renamed and/or changed:

  • CatalogContent moved to namespace EPiServer.Commerce.Catalog.ContentTypes.
  • CatalogEntryContent renamed to EntryContentBase and moved to namespace EPiServer.Commerce.Catalog.ContentTypes.
  • CatalogEntryUIDescriptor renamed to EntryContentUIDescriptor and moved to the new Commerce.AddOns.UI addon.
  • CatalogNodeContent renamed to NodeContent and moved to namespace EPiServer.Commerce.Catalog.ContentTypes.
  • CatalogNodeUIDescriptor renamed to NodeContentUIDescriptor and moved to the new Commerce.AddOns.UI addon.
  • CatalogUIDescriptor renamed to CatalogContentUIDescriptor and moved to the new Commerce.AddOns.UI addon.
  • CommerceContent renamed to CatalogContentBase and moved to namespace EPiServer.Commerce.Catalog.ContentTypes.
  • CommerceContentLinkHelper has been renamed to ReferenceConverter, moved to the namespace Mediachase.Commerce.Catalog and refactored to be non-static.
  • CommerceContentLoader has been replaced by CatalogContentLoader (namespace EPiServer.Commerce.Catalog.Provider), which also has these differences in its methods:
    - GetCatalogEntries and GetCatalogNodes now return the new type EPiServer.Core.GetChildrenReferenceResult instead of IContent instances.
    - GetContent<T> method is replaced by GetItems<T> method which can fetch multiple content items.
  • CommerceContentProvider renamed to CatalogContentProvider and moved to namespace EPiServer.Commerce.Catalog.Provider.
  • CommerceContentType renamed to CatalogContentType and moved to namespace EPiServer.Commerce.Catalog.Provider.
  • CommerceRootContent renamed to RootContent and moved to namespace EPiServer.Commerce.Catalog.ContentTypes.
  • CommerceRootUIDescriptor renamed to CatalogRootUIDescriptor and moved to the new EPiServer.Commerce.AddOns.UI addon.
  • ICommerceContentLoader has been removed.

Namespace EPiServer.Business.Commerce.Extensions

  • The extension method GetProductViewPage for CatalogEntryDto.CatalogEntryRow has been removed.
  • The extension method ToJavaScriptEncoded for string has been renamed to JavascriptEncode to avoid conflicts with EPiServer.Business.Commerce.StringExtensions.ToJavaScriptEncoded, which uses a diffrent encoding method.
  • The extension method ToSerializableString for object has been removed.

Namespace EPiServer.Business.Commerce.HttpModules

  • EventServiceModule moved to namespace EPiServer.Business.Commerce.EventHandlers and no longer inherited from IHttpModules anymore. Implementations inherited from ICatalogEventListener and IMetaDataEventListener to raise the Catalog Entry and MetaData's updated events.

Namespace EPiServer.Business.Commerce.Provider

  • The classes CatalogEntryPageRoute, CatalogPageProvider, MappedPageProvider, MappedPPDB, NodeType, PageProviderCache and PageProviderMapping related to the removed catalog page provider have been removed.

Namespace EPiServer.Business.Commerce.UI

  • All the contents of the namespace has been moved to the new namespace EPiServer.Commerce.UI.

Namespace Mediachase.BusinessFoundation.Data

  • DataContext's MetaModel has been marked as virtual.

Namespace Mediachase.Commerce.Catalog.Events

  • The methods EntryDeleted, NodeDeleted, CatalogDeleted, RelationDeleted and AssociationDeleted of ICatalogEventListener now take different (derived) event argument classes.
  • Added EntryDeleted, EntryDeleted, NodeDeleted, CatalogDeleted, RelationDeleted and AssociationDeleted methods to ICatalogEventListener to match new events on Mediachase.Commerce.Catalog.EventContext.

Namespace Mediachase.Commerce.Website

  • SiteContext moved to namespace Mediachase.Commerce.Core.

Namespace Mediachase.Commerce.Website.Handlers

  • Removed CatalogEntryRoute related to the removed catalog page provider.

Namespace Mediachase.Commerce.Website.Helpers

  • Added marketId parameter to CartHelper's GetCacheKey, in order to support multiple market.

Namespace Mediachase.ConsoleManager

  • The DynamicFileProvider class has been moved to Mediachase.BusinessFoundation namespace.

Namespace Mediachase.MetaDataPlus

  • Added IMetaDataEventListener to support MetaData updated event listener (for MetaFields and MetaClasses).
  • The property UseCurrentUICulture of MetaDataContext is renamed to UseCurrentThreadCulture.

Namespace Mediachase.Search

  • The ISearchIndexBuilder interface has a new UpdateIndex method, which will reindex the specified set of items. The parameter is an enumerable of integer catalog entry IDs to be updated. Implementations extending Mediachase.Search.Extensions.BaseCatalogIndexBuilder or Mediachase.Search.Extensions.CatalogIndexBuilder will not usually require modifications.
  • The ISearchIndexBuilder interface has a new SearchIndexMessage event handler for reporting progress during index operations. Implementations extending Mediachase.Search.Extensions.BaseCatalogIndexBuilder or Mediachase.Search.Extensions.CatalogIndexBuilder will not usually require modifications.
  • Implementations of ISearchIndexBuilder can no longer be instantiated via non-public constructors. All implementations of ISearchIndexBuilder are expected to have a public default constructor.
  • The SyncObject member of the SearchManager class is no longer supported. The lock object that was returned by this property was not observed by any code within the SearchManager class, and Microsoft has deprecated this locking pattern.

See also

Refer to the information below for additional breaking changes which might affect your Commerce solution.

  • Breaking changes section under Upgrade in the EPiServer CMS SDK.

 

Do you find this information helpful? Please log in to provide feedback.

Last updated: Oct 20, 2016

Recommendations [hide]