The basics of product synchronization
There are various ways to synchronize one or more products ranging from explicit to implicit specification of the products to synchronize:
-
Synchronize All Products
TheÂ
SynchronizeProductsservice method synchronizes all products and related product repositories (that is, artifacts) that need to be synchronized. A part of the logic retrieves a list of updated products from the external commerce system and a list from Sitecore and compares them to implicitly determine which products to synchronize and which to delete.After determining which products to synchronize, due to being newly added, updated, or deleted, the next method, theÂ
SynchronizeProductList method is called, specifying the list of products to synchronize.Before calling the
SynchronizeProductListmethod, all the related product repositories are synchronized. -
Synchronize Product List
TheÂ
SynchronizeProductList service method accepts a list of product IDs, which it iterates over and calls theSynchronizeProductmethod.No related product repositories are synchronized as part of this, but are assumed to be up-to-date.
-
Synchronize Product
TheÂ
SynchronizeProductservice method accepts a single product ID for which the data is synchronized.No related product repositories are synchronized as part of this, but are assumed to be up-to-date.
-
Synchronize Artifacts
The related product repositories such as Manufacturers, Product Types, Classifications (categories), and global specifications are referred to as product artifacts.
TheÂ
SynchronizeArtifactsservice method will synchronize all the repositories separately.
While synchronizing all or a list of products, a number of Sitecore Disablers are temporarily activated to speed up performance, such as the EventDisabler, SecurityDisabler, and so on.
The item IDs generated in Sitecore for the product data in the external system are based on a direct mapping of external IDs to Sitecore Item IDs. This means the same specific item ID is always generated for a specific external ID. The implication is that product data can be synchronized even if the related product repositories are not up to date. When the related product data is synchronized, the connection is automatically established because the Sitecore item ID was already known and configured.