It seems like you're using an older browser. Things might not work as expected.

Dependency registration

Create a new class in the Infrastructure folder that inherits from the ProjectDependencyRegistration in Avensia.Storefront.InriverPmc.Export.

Override the RegisterDependenciesInModuleContainer method, call the base implementation and then add the different document types that should be staged. These are added as handlers implementing the IDocumentHandler interface. There are predefined implementations for categories, products, media and product kits. The complete registration should look something like this:

  public class PmcExportRegistration : Avensia.Storefront.InriverPmc.Export.ProjectDependencyRegistration
    {
        public override void RegisterDependenciesInModuleContainer(RegistrationContext context)
        {
            base.RegisterDependenciesInModuleContainer(context);

            context.ConfigurationExpression.For<IDocumentHandler>().Add<CategoryDocumentHandler>();
            context.ConfigurationExpression.For<IDocumentHandler>().Add<ProductDocumentHandler>();
            context.ConfigurationExpression.For<IDocumentHandler>().Add<MediaDocumentHandler>();
            context.ConfigurationExpression.For<IDocumentHandler>().Add<ProductKitDocumentHandler>();

        }
    }

Your registration then needs to be added to your project dependencies in the bootstrapper:

        
public class Bootstrapper : StorefrontBootstrapper
    {
...
...
        protected override void RegisterProjectDependencies(ProjectDependencyRegistrations projectDependency)
        {
...
            projectDependency.AddRegistration(new PmcExportRegistration());
...
        }
...
...
    }

Pipeline registration

In your bootstrapper, register a module with a step task PmcCatalogStagingStep:

  moduleRegistration.RegisterModuleSetProducer(
    ImportModules.PmcStaging,
    m =>
    {
       m.AddStepTask(t =>
       {
          t.Name("Staging");
          t.AddStep<PmcCatalogStagingStep>("PmcCatalog");
       });
    });

Configuration

The PMC configuration can be set up in a separate config-file, which then needs to be referenced in web.config:

<configSections>
  ...
  <section name="storefront.pmc" type="Avensia.Storefront.Connector.InriverPmc.Configuration.PmcConfigurationSection, Avensia.Storefront.Connector.InriverPmc.Configuration, Version=1.0.0, Culture=neutral" />
  ...
</configSections>
<storefront.pmc configSource="<filename.config>" />

In the config file, there should be a section called storefront.pmc. In that section the PMC export settings are set on the inbound element:

<storefront.pmc>
  <inbound
    settingname1=value
    settingname2=value
    ...
  />
</storefront.pmc>

Settings

Setting name Description
enablePop Specifies whether data read from PMC should be considered consumed after staging it. Should be set to true in a production environment, but can be set to false during development to be able to repeat staging with the same source data multiple times.
apiKey The shared secret apiKey specified for the InboundDataExtension in PMC
endpoint The PMC InboundDataExtension http endpoint
httpClientBatchSize Maximum number of entities to fetch from PMC on each request
channelEntityTypeId The PMC entity type id for a channel
channelNodeEntityTypeId The PMC entity type id for a channel node
productEntityTypeId The PMC entity type id for a product
itemEntityTypeId The PMC entity type id for a variation
resourceEntityTypeId The PMC entity type id for a resource
productKitEntityTypeId The PMC entity type id for a product kit entity
productRecordIdField The PMC field name for a product unique record id
itemRecordIdField The PMC field name for a variation unique record id
resourceFilenameField The PMC field name for a resource filename
productRelationLinkTypeIds A comma-separated list of PMC link type ids for product relations
productKitLinkEntityTypeId The PMC link entity type id for product kits
productKitLinkTypeIds The PMC link type ids for links from product kits
productKitGroupEntityTypeId The PMC field name for a product kit group name
productKitUniqueIdEntityTypeId The PMC field name for a product kit unique record id

 

Media downloader configuration

Media is downloaded from the PMC Asset Service by using the URL supplied in the staging document. To set up this to work with the standard HttpMediaDownloader during catalog import, the configuration in storefront.config should look like this:

<httpMediaDownloader>
    <add name="HttpMediaDownloader" baseUrl="" storeId="<AX store id>" /> </httpMediaDownloader>