Product sync pipelines

Version: 10.3

SynchronizeProducts pipeline

SynchronizeProducts is used to synchronize products between the external commerce system and Sitecore.

Name:

SynchronizeProducts

Description:

This pipeline is responsible for obtaining the lists of product Ids to be synchronized and iterate over them

Usage:

Called from Sitecore or the external commerce system

Args:

Request – Is empty by default. Is set prior to calling the pipeline.

Response - Contains the list of messages generated during synchronization, which would be the Ids of the products that failed during synchronization Is read after the pipeline is called.

Processors:

RunSynchronizeArtifacts – Calls individual pipeline to synchronize all the related repositories: Manufacturers, Types, Classifications, Divisions, Resources, Specifications

RunGetSCProductList – Obtain the list of product ids to synchronize from Sitecore. This processor can be left out if product data is only pushed from the external system

RunGetECSProductList - Obtain the list of product ids to synchronize from ECS

EvaluateProductListUnionToSynchronize – Creates the union of product Ids to be synchronized based on the two lists obtained from ECS and SC

RunSynchronizeProductList – Calls individual pipeline with the evaluated list of product IDs to synchronize

SynchronizeProductList pipeline

SynchronizeProductlist is used to synchronize a given list of products between the external commerce system and Sitecore.

Name:

SynchronizeProductList

Description:

This pipeline is responsible for iterating over the given list of product IDs and synchronize.

Usage:

Called from Sitecore or the external commerce system.

Args:

Request – List of product Ids to synchronize. Is set prior to calling the pipeline.

Response - Contains the list of messages generated during synchronization, which are the IDs of the products that failed during synchronization Is read after the pipeline is called.

Processors:

SynchronizeProductList - Iterates over the given list of product IDs and runs the SynchronizeProduct pipeline for each product.

GetExternalCommerceSystemProductList pipeline

Name:

GetExternalCommerceSystemProductList

Description:

This pipeline is responsible for obtaining the list of product IDs to be synchronized from the external commerce system (ECS)

Usage:

Called internally from SynchronizeProducts but can also be called explicitly from both the ECS or Sitecore

Args:

Request – No default data. Is set prior to calling the pipeline.

Response - Contains the list of product IDs to be synchronized and SystemMessages. Is read after the pipeline is called.

Processors:

GetExternalCommerceSystemProductList – Get list of IDs from the ECS

GetSitecoreProductList pipeline

Name:

GetSitecoreProductList

Description:

This pipeline is responsible for obtaining the list of product IDs to be synchronized from Sitecore

Usage:

Called internally from SynchronizeProducts but can also be called explicitly from both the ECS or Sitecore

Args:

Request – No default data. Is set prior to calling the pipeline.

Response - Contains the list of product Ids to be synchronized and SystemMessages. Is read after the pipeline is called.

Processors:

GetSitecoreProductList – Get list of IDs from Sitecore

SynchronizeArtifacts pipeline

Name:

SynchronizeArtifacts

Description:

This pipeline is responsible for synchronizing all the related repositories: Manufacturers, Types, Classifications, Divisions, Resources, and Specifications

Usage:

Called from Sitecore or the external commerce system

Args:

Request – Is empty by default. Is set prior to calling the pipeline.

Response - Contains the list of messages generated during synchronization

Processors:

RunSynchronizeManufacturers – Calls individual pipeline to synchronize manufacturers repository

RunSynchronizeTypes - Calls individual pipeline to synchronize types repository

RunSynchronizeClassifications - Calls individual pipeline to synchronize classifications repository

RunSynchronizeDivisions - Calls individual pipeline to synchronize divisions repository

RunSynchronizeTypes - Calls individual pipeline to synchronize type repository

RunSynchronizeResources - Calls individual pipeline to synchronize resources repository

RunSynchronizeSpecifications - Calls individual pipeline to synchronize global, category, and type specifications

SynchronizeManufacturers pipeline

Name:

SynchronizeManufacturers

Description:

This pipeline is responsible for synchronizing all manufacturers in the separate Manufacturers repository

Usage:

Called from the SynchronizeArtifacts pipeline as initialization of separate repositories before synchronizing products and their references to these repositories.

Args:

Request – Is empty by default. Is set prior to calling the pipeline.

Response - Contains the list of messages generated during synchronization

Processors:

ReadManufacturersFromSC – Optional

Reads the manufacturers to synchronize from SC. This processor can be skipped if changes only are pushed from the ECS to Sitecore.

ReadManufacturersFromECS – Mandatory

Reads the manufacturers to synchronize from the ECS

ResolveManufacturersChanges – Optional

Resolves differences between the ECS and Sitecore. This processor can be skipped if changes only are pushed from the ECS to Sitecore.

SaveManufacturersToECS – Optional

Saves synchronized manufacturers to the ECS. This processor can be skipped if changes only are pushed from the ECS to Sitecore.

SaveManufacturersToSC – Mandatory

Saves synchronized manufacturers to Sitecore.

SynchronizeClassifications pipeline

Name:

SynchronizeClassifications

Description:

This pipeline is responsible for synchronizing all classifications in the separate Classifications repository

Since multiple different classification schemes are supported, this pipeline is responsible for synchronizing all schemes

Usage:

Called from pipeline SynchronizeArtifacts as initialization of separate repositories before synchronizing products and their references to these repositories.

Args:

Request – Is empty by default. Is set prior to calling the pipeline.

Response - Contains the list of messages generated during synchronization

Processors:

ReadClassificationsFromSC – Optional

Reads the classifications to synchronize from Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

ReadClassificationsFromECS – Mandatory

Reads the classifications to synchronize from the ECS.

ResolveClassificationsChanges – Optional

Resolves differences between the ECS and Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveClassificationsToECS – Optional

Saves synchronized classifications to the ECS. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveClassificationsToSC – Mandatory

Saves synchronized classifications to Sitecore.

SynchronizeTypes pipeline

Name:

SynchronizeTypes

Description:

This pipeline is responsible for synchronizing all Types in the separate Product Types repository

Usage:

Called from the SynchronizeArtifacts pipeline as initialization of separate repositories before synchronizing products and their references to these repositories.

Args:

Request – Is empty by default. Is set prior to calling the pipeline.

Response - Contains the list of messages generated during synchronization

Processors:

ReadTypesFromSC – Optional

Reads the types to synchronize from Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

ReadTypesFromECS – Mandatory

Reads the types to synchronize from the ECS

ResolveTypesChanges – Optional

Resolves differences between the ECS and Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveTypesToECS – Optional

Saves synchronized types to the ECS. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveTypesToSC – Mandatory

Saves synchronized types to Sitecore.

SynchronizeDivisions pipeline

Name:

SynchronizeDivisions

Description:

This pipeline is responsible for synchronizing all divisions in the separate Divisions repository

Usage:

Called from the SynchronizeArtifacts pipeline as initialization of separate repositories before synchronizing products and their references to these repositories.

Args:

Request – Is empty by default. Is set prior to calling the pipeline.

Response - Contains the list of messages generated during synchronization

Processors:

ReadDivisionsFromSC – Optional

Reads the divisions to synchronize from Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

ReadDivisionsFromECS – Mandatory

Reads the divisions to synchronize from the ECS

ResolveDivisionsChanges – Optional

Resolves differences between the ECS and Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveDivisionsToECS – Optional

Saves synchronized divisions to  the ECS. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveDivisionsToSC – Mandatory

Saves synchronized divisions to Sitecore.

SynchronizeProducts pipeline

Name:

SynchronizeResources

Description:

This pipeline is responsible for synchronizing all resources in Sitecore Media Library

Usage:

Called from the SynchronizeArtifacts pipeline as initialization of separate repositories before synchronizing products and their references to these repositories.

Note

If resources are only kept only in the ECS, then this pipeline can be skipped or configured empty.

Args:

Request – Is empty by default. Is set prior to calling the pipeline.

Response - Contains the list of messages generated during synchronization

Processors:

ReadResourcesFromSC – Optional

Reads the resources to synchronize from Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

ReadResourcesFromECS – Mandatory

Reads the resources to synchronize from the ECS

ResolveResourcesChanges – Optional

Resolves differences between the ECS and Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveResourcesToECS – Optional

Saves synchronized resources to the ECS. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveResourcesToSC – Mandatory

Saves synchronized resources to Sitecore.

SynchronizeSpecifications pipeline

Name:

SynchronizeSpecifications

Description:

This pipeline is responsible for synchronizing specifications on type, category, and globally by running separate pipelines for each

Usage:

Called from the SynchronizeArtifacts pipeline as initialization of separate repositories before synchronizing products and their references to these repositories

Args:

Request - Is set prior to calling the pipeline.

Response - Is read after the pipeline is called.

Processors:

RunSynchronizeGlobalSpecifications – Runs a separate pipeline to synchronize global specifications

RunSynchronizeTypeSpecifications - Runs a separate pipeline to synchronize type specifications

RunSynchronizeClassificationSpecifications - Runs a separate pipeline to synchronize category specifications

SynchronizeGlobalSpecifications pipeline

Name:

SynchronizeGlobalSpecifications

Description:

This pipeline is responsible for synchronizing global specifications

The specifications and the tables for fixed key-value pairs are stored under /sitecore/content/Product Artifacts/Lookups/Global Product Specification Lookups

Usage:

Called internally from the SynchronizeSpecifications pipeline

Args:

Request - Is set prior to calling the pipeline.

Response - Is read after the pipeline is called.

Processors:

ReadGlobalSpecificationsFromSC – Optional

Reads the product specifications data from Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

ReadGlobalSpecificationsFromECS – Mandatory

Reads the product specifications data from the ECS

ResolveGlobalSpecificationsChanges – Optional

Resolves differences between the ECS and Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveGlobalSpecificationsToECS – Optional

Saves synchronized product specifications data to the ECS. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveGlobalSpecificationsToSC – Mandatory

Saves synchronized product specifications data to Sitecore.

SynchronizeTypeSpecifications pipeline

Name:

SynchronizeTypeSpecifications

Description:

This pipeline is responsible for synchronizing type specifications.

The specifications and the tables for fixed key-value pairs are stored under /sitecore/content/Product Artifacts/Product Types.

Note

For types, specification options and default values are also synchronized as part of this pipeline.

Usage:

Called internally from the SynchronizeSpecifications pipeline.

Args:

Request - Is set prior to calling the pipeline.

Response - Is read after the pipeline is called.

Processors:

ReadTypeSpecificationsFromSC – Optional

Reads the product specifications data from Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

ReadTypeSpecificationsFromECS – Mandatory

Reads the product specifications data from the ECS.

ResolveTypeSpecificationsChanges – Optional

Resolves differences between the ECS and Sitecore. This processor can be skipped if changes  are only pushed from the ECS to Sitecore.

SaveTypeSpecificationsToECS – Optional

Saves synchronized product specifications data to the ECS. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveTypeSpecificationsToSC – Mandatory

Saves synchronized product specifications data to Sitecore.

SynchronizeClassificationSpecifications pipeline

Name:

SynchronizeClassificationSpecifications

Description:

This pipeline is responsible for synchronizing Category specifications.

The specifications and the tables for fixed key-value pairs are stored under /sitecore/content/Product Artifacts/Classifications.

Note

Because multiple different classification schemes are supported, this pipeline is responsible for synchronizing specifications for all schemes.

Usage:

Called internally from the SynchronizeSpecifications pipeline.

Args:

Request - Is set prior to calling the pipeline.

Response - Is read after the pipeline is called.

Processors:

ReadClassificationSpecificationsFromSC – Optional

Reads the classifications specifications data from Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

ReadClassificationSpecificationsFromECS – Mandatory

Reads the classifications specifications data from the ECS.

ResolveClassificationSpecificationsChanges – Optional

Resolves differences between the ECS and Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveClassificationSpecificationsToECS – Optional

Saves synchronized classifications specifications data to the ECS. This processor can be skipped if changes are only pushed from  the ECS to Sitecore.

SaveClassificationSpecificationsToSC – Mandatory

Saves synchronized classifications specifications data to Sitecore.

After the pipeline runs, the categories have a folder called Specifications containing all the specifications for the category, including tables with fixed set key-value pairs for reference from products.

SynchronizeProductClassifications pipeline

Name:

SynchronizeProductClassifications

Description:

This pipeline is responsible for synchronizing and updating the references between a given product and associated classifications and categories within.

It is assumed that classifications are already synchronized and present in the CMS.

The references to categories are stored directly on the main product item.

Usage:

Called internally from the SynchronizeProduct pipeline.

Args:

Request - Contains the external product ID. Is set prior to calling the pipeline.

Response - Contains the Manufacturer. Is read after the pipeline is called.

Processors:

ReadProductClassificationsFromSC – Optional

Reads the product classification reference data from Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

ReadProductClassificationsFromECS – Mandatory

Reads the product classification reference data from the ECS.

ResolveProductClassificationsChanges – Optional

Resolves differences between the ECS and Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveProductClassificationsToECS – Optional

Saves synchronized product classification reference data to the ECS. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveProductClassificationsToSC – Mandatory

Saves synchronized product classification reference data to Sitecore.

SynchronizeProduct pipeline

The SynchronizeProduct pipeline is used to synchronize a single product between the external commerce system and Sitecore. The product to synchronize is given by ID.

Name:

SynchronizeProduct

Description:

This pipeline is responsible for synchronizing a single product by calling a number of individual pipelines. Each pipeline updates the references between the product and the related separate repositories except for the SynchronizeProductItem pipeline, which operates on the main product data on the product item itself.

Usage:

Called directly from the SynchronizeProduct  service method and indirectly from the SynchronizeProductList pipeline.

Args:

Request - Contains the external product ID. Is set prior to calling the pipeline.

Response - Contains the SystemMessages. Is read after the pipeline is called.

Processors:

RunSynchronizeProductManufacturers – Synchronizes relations to manufacturers

RunSynchronizeProductType – Synchronizes relation to product type

RunSynchronizeProductClassifications – Synchronizes relations to classifications

RunSynchronizeProductResources – Synchronizes resources and relations to resources

RunSynchronizeProductRelations – Synchronizes relations to other products through cross-sell, variants, and so on

RunSynchronizeProductDivisions – Synchronizes relations to divisions

RunSynchronizeProductItem – Synchronizes main product data on the product item itself

RunSynchronizeProductSpecifications – Calls individual pipeline to synchronize product specifications

SynchronizeProductManufacturers pipeline

The SynchronizeProductManufacturers pipeline is used to synchronize references between a single product and a separate Manufacturers repository between the external commerce system (ECS) and Sitecore. The product to synchronize is given by external product ID.

Name:

SynchronizeProductManufacturers

Description:

This pipeline is responsible for synchronizing and updating the relationship between a given product and a manufacturer.

It is assumed that manufacturers are already synchronized and present in the CMS.

The references to manufacturers are stored directly on the main product item.

Usage:

Called internally from the SynchronizeProduct pipeline.

Args:

Request - Contains the external product ID. Is set prior to calling the pipeline.

Response - Contains the Manufacturer. Is read after the pipeline is called.

Processors:

ReadProductManafacturersFromSC – Optional

Reads the product manufacturers' reference data from Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

ReadProductManafacturersFromECS – Mandatory

Reads the product manufacturers' reference data from the ECS.

ResolveProductManafacturersChanges – Optional

Resolves differences between the ECS and Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveProductManafacturersToECS – Optional

Saves synchronized product manufacturers' reference data to the ECS. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveProductManafacturersToSC – Mandatory

Saves synchronized product manufacturers reference data to Sitecore.

SynchronizeProductType pipeline

Name:

SynchronizeProductType

Description:

This pipeline is responsible for synchronizing and updating the references between a given product and its product type.

It is assumed that types are already synchronized and present in the CMS.

The references to product type are stored directly on the main product item.

Usage:

Called internally from the SynchronizeProduct pipeline

Args:

Request - Contains the external product ID. Is set prior to calling the pipeline.

Response - Contains the Manufacturer. Is read after the pipeline is called.

Processors:

ReadProductTypeFromSC – Optional

Reads the product type reference data from Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

ReadProductTypeFromECS – Mandatory

Reads the product type reference data from the ECS

ResolveProductTypeChanges – Optional

Resolves differences between the ECS and Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveProductTypeToECS – Optional

Saves synchronized product type reference data to the ECS. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveProductTypeToSC – Mandatory

Saves synchronized product type reference data to Sitecore.

SynchronizeProductEntity pipeline

Name:

SynchronizeProductEntity

Description:

This pipeline is responsible for synchronizing and updating the main product entity data (for the product with the given external product ID).

Usage:

Called internally from the SynchronizeProduct pipeline

Args:

Request - Contains the external product ID. Is set prior to calling the pipeline.

Response - Contains the Manufacturer. Is read after the pipeline is called.

Processors:

ReadProductFromSC – Optional

Reads the product data from Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

ReadProductFromECS – Mandatory

Reads the product data from the ECS.

ResolveProductChanges – Optional

Resolves differences between the ECS and Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveProductToECS – Optional

Saves synchronized product data to the ECS. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveProductToSC – Mandatory

Saves synchronized product data to Sitecore.

SynchronizeProductDivisions pipeline

Name:

SynchronizeProductDivisions

Description:

This pipeline is responsible for synchronizing and updating the references between a given product and associated divisions.

It’ is assumed that divisions are already synchronized and present in the CMS.

The references to divisions are stored directly on the main product item.

Usage:

Called internally from SynchronizeProduct pipeline.

Args:

Request - Contains the external product ID. Is set prior to calling the pipeline.

Response - Contains the Manufacturer. Is read after the pipeline is called.

Processors:

ReadProductDivisionsFromSC – Optional

Reads the product divisions reference data from Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

ReadProductDivisionsFromECS – Mandatory

Reads the product divisions reference data from the ECS.

ResolveProductDivisionsChanges – Optional

Resolves differences between the ECS and Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveProductDivisionsToECS – Optional

Saves synchronized product divisions reference data to the ECS. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveProductDivisionsToSC – Mandatory

Saves synchronized product divisions reference data to Sitecore.

SynchronizeProductResources pipeline

Name:

SynchronizeProductDivisions

Description:

This pipeline is responsible for synchronizing and updating the references between a given product and associated resources.

It is assumed that resources are already synchronized and present in the CMS or that the references are external using an URI to point to the location.

The references to resources are stored under the main product item on the path [Product Item]/Resources/[Resource].

Usage:

Called internally from the SynchronizeProduct pipeline.

Args:

Request - Contains the external product ID. Is set prior to calling the pipeline.

Response - Contains the Manufacturer. Is read after the pipeline is called.

Processors:

ReadProductResourcesFromSC – Optional

Reads the product resources reference data from Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

ReadProductResourcesFromECS – Mandatory

Reads the product resources reference data from the ECS.

ResolveProductResourcesChanges – Optional

Resolves differences between the ECS and Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveProductResourcesToECS – Optional

Saves synchronized product resources reference data to the ECS. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveProductResourcesToSC – Mandatory

Saves synchronized product resources reference data to Sitecore.

SynchronizeProductRelations pipeline

Name:

SynchronizeProductRelations

Description:

This pipeline is responsible for synchronizing product relations for a single product.

Usage:

Called internally from the SynchronizeProduct pipeline.

Args:

Request - Contains the external product ID. Is set prior to calling the pipeline.

Response - Contains the Product relations. Is read after the pipeline is called.

Processors:

ReadProductRelationsFromSC - Reads the product relations data from Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

ReadProductRelationsFromECS – Reads the product relations data from the ECS.

ResolveProductRelationsChanges – Resolves differences between the ECS and Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveProductRelationsToECS – Saves synchronized product relations data to the ECS. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveProductRelationsToSC - Saves synchronized product relations data to Sitecore.

SynchronizeProductSpecifications pipeline

Name:

SynchronizeProductSpecifications

Description:

This pipeline is responsible for synchronizing product specifications for a single product.

It is assumed that specification tables of fixed key-value pairs (lookups) are already synchronized and present in the CMS when this pipeline is run.

The references to specifications are stored under the main product item on the path [Product Item]/Specifications/[Specification].

Specifications that reference lookup tables can point to specification tables located under global, classification, or type.

Usage:

Called internally from the SynchronizeProduct pipeline.

Args:

Request - Contains the external product ID. Is set prior to calling the pipeline.

Response - Contains the Product relations. Is read after the pipeline is called.

Processors:

ReadProductSpecificationsFromSC - Optional

Reads the product specification data from Sitecore. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

ReadProductSpecificationsFromECS – Mandatory

Reads the product specification data from the ECS.

ResolveProductSpecificationChanges – Optional

Resolves differences between the ECS and Sitecore. This processor can be skipped if changes are only pushed from the ECS to the Sitecore.

SaveProductSpecificationsToECS – Optional

Saves synchronized product specification data to the ECS. This processor can be skipped if changes are only pushed from the ECS to Sitecore.

SaveProductSpecificationsToSC – Mandatory

Saves synchronized product specification data to Sitecore.

Do you have some feedback for us?

If you have suggestions for improving this article,