CatalogEntryDto -Variation & Inventory Rows are not populated in R3


In CM R3 the RecursiveAssociations Response group fails to populate both Inventory and Variation Rows.

The scant documentation suggests this has replaced  the  CatalogEntryFull approach to hydrating these rows.

Even though the row exists a  row count of zero in both cases and consequently a save operation attempts to create a new row which results in a primary key violation on inventory & variation tables.

What is the correct way to return a Catalogue Entry Dto with fully populated variation and inventory rows?

var responseGroup = new CatalogEntryResponseGroup(CatalogEntryResponseGroup.ResponseGroup.RecursiveAssociations);
CatalogEntryDto entryDto = CatalogContext.Current.GetCatalogEntryDto(entryCode, responseGroup);

No Variation or Inventory Rows returned using above.

var responseGroup = new CatalogEntryResponseGroup(CatalogEntryResponseGroup.ResponseGroup.CatalogEntryFull);
CatalogEntryDto entryDto = CatalogContext.Current.GetCatalogEntryDto(entryCode, responseGroup);

 CatalogEntryFull returns this error: "No Default Instance defined for PluginFamily Mediachase.Commerce.Pricing.IPriceService"


Public enum ResponseGroup

    Assets = 32,
    Associations = 8,
    CatalogEntryFull = 4, (Changed in R3 to only return one level in the hierarchy)
    CatalogEntryInfo = 2,
    Children = 16,
    Nodes = 64,
    Request = 1  
    Variations = 128 (R2 SP2)
    Inventory = 256 (R2 SP2)
    RecursiveAssociations = 512 (R3, behaviour like the R2 SP2 Full RG.)


Mar 14, 2013 1:11

I should add the problem occurs in a webservice using latest MediaChase dlls so I'm guessing it it a configuration issue with regard to the EPiServer.ServiceLocation finding a  concrete runtime instance for the IPriceService. 

PluginFamily Mediachase.Commerce.Pricing.IPriceService

Activation error occurred while trying to get instance of type IPriceService, key ""

{"StructureMap Exception Code:  202\nNo Default Instance defined for PluginFamily Mediachase.Commerce.Pricing.IPriceService, Mediachase.Commerce, Version=, Culture=neutral, PublicKeyToken=6e58b501b34abce3"}




Mar 15, 2013 6:33

Ok, figured this out... this is now needed in web service global.asax:

 protected void Application_Start(object sender, EventArgs e)


            var container = new StructureMap.Container();             var locator = new EPiServer.ServiceLocation.StructureMapServiceLocator(container);             var context = new EPiServer.ServiceLocation.ServiceConfigurationContext(HostType.WebApplication, container);             new Mediachase.Commerce.Initialization.CommerceInitialization().ConfigureContainer(context);             EPiServer.ServiceLocation.ServiceLocator.SetLocator(locator);           }

Mar 15, 2013 7:02

Thanks, this was exactly what was needed to keep running console application(service) that was migrated from EPiServer Commerce R2 to EPiServer Commerce R3.

Jan 23, 2014 10:51
This topic was created over six months ago and has been resolved. If you have a similar question, please create a new topic and refer to this one.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.