Managing Pre-existing Salesforce Catalogs with the Akeneo App

Summary

It's important to understand that the Akeneo Salesforce app is primarily designed for one-way data synchronization: from Akeneo PIM to the Salesforce core platform. This app does not support the transfer of existing data from Salesforce back into Akeneo PIM. Any such transfer must be handled independently, customized to your specific catalog structure and requirements.

Before installing the Salesforce app on an existing Salesforce platform, please consider the following key points:

  • Migration Context: If you are connecting a new Akeneo PIM instance to an existing Salesforce environment, the app's installation and configuration are just one component of your broader data migration process.
  • Structural Differences: When integrating with an existing Salesforce instance that already contains products, attributes, or other entities, you must account for potential differences in catalog and entity structures between Akeneo PIM and Salesforce.
  • Critical Pre-synchronization Steps: Prior to initiating synchronization in any existing Salesforce environment, it is essential to back up your data and conduct thorough testing in a non-production setting.

These considerations are vital for a smooth integration and successful data management.

 

How the App Handles Pre-existing Products:

By default, when syncing to an empty Salesforce platform, the Salesforce app creates a UUID field within the Product2Object for product creation and updates. For pre-existing Salesforce catalogs, the app provides flexibility by allowing you to map either the Salesforce technical ID or the product code for product identification.

Salesforce Technical ID and Product code mapping

To enable the pre-existing product check, you will need to create two specific technical identifier attributes in your PIM: one at the product model level  and another at the product level. These PIM attributes are then mapped within the Catalog for Apps interface to the corresponding Salesforce Technical ID or Product Code default fields at both the product model and product levels.

During synchronization, the integration checks if the PIM declared Salesforce ID exists in Salesforce first, and if there is no result, will check if a product code exist. If it fails to identify a mapping, it will create a new product. The app adheres to specific error behaviors: if two PIM products contain the same product code or Salesforce ID, an error will be generated, and those products will be skipped. Conversely, if a technical ID does not exist in Salesforce, the integration will check if a product code exist, if not a new product will be created in Salesforce, ensuring no data is lost.

The action step by step:

  1. In the PIM, create two technical identifier attributes to register the technical ID or product code. One identifier will be used at the product model, the other one at the product level. You can choose the code of the attributes.
PIM parameter Type Level
 Identifier_technical_ID_1 or Identifier_product_code_1  Identifier attribute Product Model
 Identifier_technical_ID_2 or Identifier_product_code_2  Identifier attribute Product
  1. In Catalog for apps, map the default field Salesforce technical ID or product code with the identifier on the product model level “product tab” and the product level “variant” tab.
Catalog for apps default parameter Mapping Level
Salesforce Technical ID  Identifier_technical_ID_1 Product Model
Salesforce Technical ID  Identifier_technical_ID_2 Product
  1. Synchronize the data. The default behavior is the following
Error by attribute type Error behavior
Product code duplication

If two products contains the same product code, an error will be generated and the products will be skipped.

Technical ID duplication If two products contains the same Salesforce ID in the PIM, an error will be generated and the products will be skipped.
Technical ID

If the technical ID does not exist or is not valid, the verification is ignored and the product code verification takes over. If not present,  a new product will be created in Salesforce.