You are here:
DataPacks and Data Migration with Versioning
With the introduction of product versioning, the related objects of a product are classified into two categories: cloned (version dependent) and reused (version agnostic). Both types of objects are migrated, and all versions of a product are migrated.
In the case of cloned related objects, copies of the records are created with the Lookup to the Product or the polymorphic ObjectId that points to the new version of a product.
For reused objects, the records are shared among the versions. The Lookup to the Product or the polymorphic ObjectId points to the original version. All versions of a product share the same GlobalGroupKey__c (Version Group Key). This key identifies the related objects based on either a formula field in the related object which points to the product’s GlobalGroupKey__c or a physical field that has the Product’s GlobalGroupKey__c stamped on creation or update of the related object record.
Cloned Objects and Migration
For cloned related objects, data migration works exactly as it does without versioning. In this case, the new version is a new product.
When a product version is migrated, the following cloned objects are migrated:
-
Price List Entries
-
Attribute Assignments
-
Product Child Items
-
Price Book Entries (only the Standard Price Book)
-
Rule Assignments
Reused Objects and Migration
IDX Workbench brings in all versions of a product when a specific version of the product is migrated based on the Version Global key. This allows for all related object records (both reused and cloned) to be brought in as well. Because a reused object can be introduced or added with specific versions, all versions are migrated to ensure that all reused objects are migrated.
The following reused objects are migrated:
-
Product Relationships
-
Migration Plans
-
Product Attachments
-
Overrides Definitions
-
Contextual Discounts
-
Promotion Items
GlobalKey is the unique identifier for a product used for upserting into existing records during import. GlobalGroupKey is used for exporting all records of the same GlobalGroupKey during export.

