• Error on Commerce Migration Update Permanent Link Step

    Description If you get the error message:  ERROR EPiServer.Commerce.Internal.Migration.MigrationProgressMessenger: Update permanent links failed with exception 'System.FormatException: Unrecognized Guid format. at System.Guid.TryParseGuid(String g, GuidStyles flags, GuidResult& result) at System.Guid..ctor(String g) at EPiServer.Commerce.Internal.Migration.Steps.UpdatePermanentLinkStep.GetCatalogContentReferences(IProgressMessenger progressMessenger) at EPiServer.Commerce.Internal.M...

  • Unable to manage the visible to field within the commerce UI

    Description When managing permissions in the commerce UI of Episerver the visible to field may not be manageable, while the same field is able to be managed from the CMS for paged or blocks. Resolution This behavior can often be caused by either incorrect permissions or by the feature not being available in earlier versions of the product. The ability to manage the visible to field within the commerce UI was added in Commerce version 11.6.0. If an older version of commerce is ...

  • Using ASP.NET Identity in Commerce Manager

    Description Trying switch an Episerver solution over from ASP.NET Membership to ASP.NET Identity so that OAuth can be used. This works for site users and for the Episerver backend, but for the Commerce Manager, the error below is shown. (“Default Membership Provider must be specified.”) Resolution The issue was caused by that the Apps\Shell\Pages\Login.aspx bundled with the 10.8 version of the Episerver.CommerceManager NuGet package contains a panel with id RegisterPanel. The...

  • Update product/SKU via Service API doesn’t create new draft version for a product or sku

    Description Using Service API to update a published content and there isn't a new version created. Resolution It is by design. ServiceApi does not work with versions as it uses DTO + MetaObject internally. If you want a new draft version to be created you will have to use Content APIs, not ServiceAPI.

  • Commerce items automatically having an expiration date on creation

    Description When creating commerce creation the content is automatically set to have an expiration date 10 years in the future when the expiration was left blank. Further editing content to remove the expiration shows the same results. Resolution This is actually intended functionality within the commerce items. The way that the commerce data layer is designed will require an expiration date. If this expiration is not specifically set at any point the system will have the cont...

  • Creating the Sample eCommerce site, QuickSilver

    Description If you are developing using Episerver Commerce, you can use the QuickSilver site for code examples and for testing the Commerce API. Here's how to set one up. Resolution Prerequisites:  An instance of SQL, either on the server or another box. An AD user with dbcreator on the SQL instance to run the database install.  Download a Quicksilver project from github: https://github.com/episerver/Quicksilver. You can place the files anywhere in your file system. Give the ...

  • Create View page for Catalog

    Description By default, in Quicksilver sample site, we just have view pages for under Catalog Node level pages but no view page for Catalog level page. That means you can access the page http://domain.com/en/fashion/mens/... except http://domain.com/en/fashion/ (404 error). How can we create view page for Catalog page - Fashion in this sample. Resolution Firstly, you may think we will create Model - Controller - View for Fashion. It's so easy :) There is a model class FashionC...

  • Commerce issue: Carts not saving or loading properly when using load balancing and anonymous users

    Description Special steps must be taken if you are using Episerver Commerce with load balancing and anonymous users. Resolution Please see Quan Mai's blog post. http://vimvq1987.com/2018/01/loading-carts-load-balancing-environment/

  • Indexing extension methods by convention

      Description When indexing content using commerce conventions and extension methods. Some of us tend to use the following:  public static class CommerceExtensions { public static string MyExtensionProperty(this VariationContent variation) { return "MyTest"; } } public class SiteCatalogContentClientConventions : CatalogContentClientConventions{      public override void ApplyConventions(IClientConventions clientConventions)     {         base.ApplyCon...

  • Deleting CommerceMedia leaves the asset row intact

    Description When deleting a CommerceMedia programmatically from a Product/Variation, after the deletion, it leaves the asset row intact like the below:  The problem is that Commerce API is used incorrectly. Instead of using writableContent object, writableCommerceMedia object is used which means the reference between variation and media still remains. var writableContent = content.CreateWritableClone<EntryContentBase>(); var writableCommerceMedia = writableContent.CommerceMed...

  • How To Add Custom Properties To Commerce Media

    Description This article answers the question on adding custom properties to commerce media as seen below. Resolution It is not currently available or supported to be able to add properties to the commerce media.  If this is something you would like to add please post to our feature requests section.

  • Getting promotion by specific LineItem

    Description In the old engine, promotion is sticked with LineItem and it is easy to get it by calling LineItem.Promotion property.  In the new engine, we can't get promotion like that as it is applied and stored in different way (IOrderForm.Promotions). Resolution You have to satisfy the following conditions, then that would be fairly easy in the new promotion system to find promotions applied to a lineitem   1. Have no duplicated lineitem in same order form   2. Entry level p...

  • The number of rows provided for a FETCH clause must be greater then zero

    Description This article describes an an error message that appears in the error logging after having upgraded to EPiServer.Commerce 11.2.6.  This error was introduced with a new set of commerce stored procedures.  The number of rows provided for a FETCH clause must be greater then zero The stack trace may have the following entry as well. Stack Trace:http://<our site name>/adminui/cms/Stores/contentstructure/?query=activitiesnotready&sort(+name) Resolution This issu...

  • How to get the MetaField value directly from the database.

    Description This article describes how to get Meta field values for catalogs directly from the database and in which table are they are stored. Resolution From CMS 9, the Meta field value is stored in CatalogContentProperty table. Before CMS 9 it is stored in CatalogEntryEx_<YourMetaClassName> table.

  • How to change the default warehouse

    Description How to change the default warehouse by configuring it in Commerce Manager. Resolution The Stockholm store is the default warehouse in Episerver Commerce and can be changed in Commerce Manager by setting the Is Fulfillment Center field (See screenshot).

  • FindItems returns no results when searching with meta fields

    Description The article describes an issue with CatalogContext.Current.FindItems when searching with multiple meta field conditions in the SqlMetaWhereClause. In addition, if there are CatalogSearchOptions.Classes being used this will also cause issue with results. Here is a sample code that illustrates this issue with both items. CatalogSearchParameters pars = new CatalogSearchParameters(); CatalogSearchOptions options = new CatalogSearchOptions { CacheResults = false, RecordsToRet...

  • How much money each promotion saves

    Description When using the new promotion engine, there is an issue with determining how much money each promotion saves using the PromotionInformation.SavedAmount. However, it seems this amount is compounded in case of multiple promotions.    How do you properly get the amount saved for each promotion.   Resolution It is only possible to retrieve the SavedAmount that is the total of all discounts for each type, not for each discount separately. That's means you can only retr...

  • OrderAddress Metafields are not saved

    Description This article describes and issue with saving Metafields when working with OrderAddress.  When trying to save the payment billing address as follows: IOrderAddress address = GetDefaultBillingAddress(); address.Id = Constants.Order.BillingAddressName; address.Properties["IsValidated"] = true; address.Properties["UserChoosetoOverrideValidation"] = true; payment.BillingAddress = address; ServiceLocator.Current.GetInstance().Save(cart);  All properties are sa...

  • Working with Meta Class from Commerce v10

    Description In Commerce v10, Metadata Plus is introduced. This article demonstrates performing CRUD actions with the new MetaClass class (in the Mediachase.MetaDataPlus.Configurator assembly) in Catalog and Order systems.  Resolution //Createvar metaDataContext = CatalogContext.MetaDataContext;var metaClassName = "Something";var tableName = String.Format("{0}{1}{2}", parentMetaClass.Name, "Ex_", metaClassName);var parentMetaClass = MetaClass.Load(...

  • How to make serializable carts work with ICreditCardPayment

    Description This article describes an issue with serialiazable carts missing some payment information. The CreditCard data like CreditCardNumber, CreditCardSecurityCode, ExpirationMonth, ExpirationYear, and BillingAddress are missing when loading the SerializableCart because the SerializablePayment does not have a property related to CreditCard. Resolution This issue had been raised in issue COM-5595: Missing payment information in SerializableCart and is slated for resolution...

  • Catalog Import Fails with Timeout Exception

    Description The article describes an issue with catalog import after upgrading to EPiServer.Commerce.Core 11.2.6. In this version there is an issue with the newly added ecfVersion_UpdateSeoByObjectIds stored procedure. Resolution This issue is slated for resolution in EPiServer.Commerce.Core 11.3 which will be available here. Since the fix might take some time to release, then any customers seeing the issues should : Revert to a previous version (11.2.5 or earlier), or Run th...

  • Trash In Episerver Commerce

    Description This article discusses the limitations and options for a trash feature in the Episerver Commerce platform. Resolution The documentation clearly states this option is not available in eCommerce out of the box.Deleting and restoring contentEpiserver Commerce does not support trash management when deleting catalog entries.So from a product perspective this would have to be a feature request.  If you would like this feature added please go here. From a custom solution ...

  • The marketing UI should ignore cancelled orders.

    Description When looking at the Marketing UI in Commerce the total amount of orders are shown. This can be a bit misleading for users that want to see the amount of successful orders. A scenario where this is shown is when users have a credit card payment and made 3 different purchases with three different statuses. Waiting Exchange, Cancelled and In Progress. In the Marketing UI it shows that there have been 3 orders that has used this voucher code. But the most correct in this situati...

  • Timeout issue when migrating commerce on update

    Description If you get the following error on the migration page: Migrates published Catalog Content has failed with exception 'System.Data.SqlException (9x80131904): Execution Timeout Expired. The timeout period elapsed prioer to completion of the operation or the server is not responding. or if you get: Failed to clean up meta keys: Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding. The statement has been termina...

  • Shell Initialization Errors in Commerce Manager When Updated to v10

    Here is the following exception you may encounter upon upgrade: Value cannot be null.Parameter name: virtualPath]in EPiServer.Shell.ShellInitialization.WaitForInitializeModules() Cause You may have the following dlls in the /bin folder: EPiServer.Cms.Shell.UI.dllEPiServer.UI.dllEPiServer.Shell.UI.dllEPiServer.Shell.dllEPiServer.Cms.UI.AspNetIdentity.dll Resolution If you have these dlls in bin: EPiServer.Cms.Shell.UI.dllEPiServer.UI.dllEPiServer.Shell.UI.dllEPiServer....

  • Links to products in specific catalog(s) give 404 errors

    If a catalog name also exists as a CMS page name, links to the Commerce or CMS content may give a 404 error message. Resolution This is a known issue that can be avoided by upgrading to the latest Commerce version. In that version, a warning is given when attempting to name a Commerce catalog the same as a CMS folder name. If using an earlier version, you can prevent the issue by ensuring that a catalog name is different from any CMS page name.

  • Issue Adding Packages To Bundles in Catalog UI

    This article covers the issue that users are having with adding packages to bundles in the new Catalog UI. Resolution This feature was only available in the legacy Commerce Manager and not the newer Catalog UI until now. For more information please look at the following Episerver request. Can't add package to bundle in catalog ui

  • EventsPublishedContent Event Does Not Fire When Service API Adds Product To System

    This article contains information on why the EventsPublishedContent event does not fire when using a service to add the product. Resolution The content published events are not fired because the service API uses the low level API to update catalog content. It is on the backlog to use the content API. For now, Engineering recommends listening to CatalogEventHandler events and proceeding in that manner.

  • Commerce v10 Upgrade Error: "Switching AllowNulls to false is only supported for catalog meta classes"

    Commerce R&D made changes in the latest 10.1.1 package to make cross-reference of metafields (for example, using a meta field in both catalog and order contexts) an exception/error, hence why the error upon upgrade. Technically speaking, there's nothing inherent in Commerce that would prevent you to make the cross-reference, but it seems that due to some other bug fix or fixes in 10.1.1 it perhaps necessitated that there be additional checks on the meta data structure (and the ...