Filtering and mapping products

Summary

Filter products

In the connector configuration page, with the following parameter, you can choose between a Simple or an Advanced filter to retrieve your PIM data:

Connector parameter Filter mode
Import Type "Simple" or "Advanced"

If you select Simple all PIM products will be imported in SFCC.

If you select Advanced, the connector will only import the PIM products that match the search filters defined in the Import builder config parameters. You will use the Product Model Import builder config to filter product models and the Products Import builder config to filter Products).

For example, you can filter product properties or product values.

This field must be written in JSON.  

To discover all the filtering possibilities of our API and the JSON syntax, please refer to this documentation.

For example, the filter below enables you to import products from the led_tvs family when the completeness is greater than 99% for the en_US and fr_FR locales, for the ecommerce channel:             
               {                 
               "search": {                 
               "family":[{                 
               "operator":"IN",                 
               "value":["led_tvs"]                 
               }],                 
               "completeness": [{                 
               "operator": ">",                 
               "value": 99,                 
               "locales": ["en_US", "fr_FR"],                 
               "scope": "ecommerce"                 
               }]                 
               }                 
               }                                          

 

It is important to understand that there is a inheritance link between the filter on products (Products Import builder config) and the filter on product models (Product Model Import builder config).

Indeed, a product with 2 levels of variation is a structure with:

  • product model for the common part
  • product model for variation level 1 (example: "color")
  • product for variation level 2 (example: "size")

As the product for variation level 2 part inherits data from its 2 product models parent levels, if you apply a filter on a product model part, you have to put the same filter on the product part.

 

Since the SFCC Connector version 19.5.3, you can also filter "product value" and "locales".

For example, the filter below enables you to import products with a completeness greater than 99% in the en_US and fr_FR locales in the ecommerce channel. It ONLY retrieves the following attributes: namedescription and mytext:


 {
 "search": {
 "completeness": [{
 "operator": ">",
 "value": 99,
 "locales": ["en_US", "fr_FR"],
 "scope": "ecommerce"
 }]
 },
 "attributes": ["name", "description", "mytext"]
 }
 

Advanced Product Filter  (akeneoProductsImportBuilderConfig): Filters import products if Site Preference 'Import Type' is selected as ‘Advanced

Refer the following documentation to get more information on key-value structure of this filter: https://api.akeneo.com/documentation/filter.html#filter-on-product-properties

Map products attributes 

By default, the attributes filtered will be automatically created. You can use additional mapping to map system attributes, to transform attribute and to rename attribute

Exclude an attribute groups from the import process

More and more users need to exclude a whole attribute group from their import process. Most of the time, you need that feature because you have PIM technical attributes you don't want to import into SFCC. To do so, please use the Connection permission.

Once you have created the permission group, add it to the attribute in the permission section for every single attribute group you want to import.

System Attribute mapping

By default, SFCC products include a handful of attributes assigned to each product: NameBrandManufacturerDescription, etc. For performance and cleaning purposes, it would be more convenient to map the default attributes with the PIM's to avoid duplicates in the SFCC product edit forms. If no mapping is performed on a default attribute, SFCC will import the PIM attribute as a custom one. The attribute value will be populated in this custom attribute rather than in the standard one.

Here are the default attribute you are able to map:

SFCC Standard attributes    
EAN UPC unit
minOrderQuantity stepQuantity name
shortDescription longDescription onlineFlag
onlineFrom onlineTo searchable
searchableIfUnavailable template taxClassID
brand manufacturerName manufacturerSKU
searchPlacement searchRank siteMapIncluded
siteMapChangeFrequency siteMapPriority pageTitle
pageDescription pageKeywords pageUrl
pinterestEnabled facebookEnabled storeReceiptName
storeForcePriceEnabled storeNonInventoryEnabled storeNonRevenueEnabled
storeNonDiscountableEnabled    

Please consider those variable as non mappable:

  • ["ID", "UUID", "lastModified", "creationDate"] => Automatically generated by the Salesforce system
  • ["available", "image", "thumbnail", "storeTaxClass"] => deprecated

 

The mapping is a JSON structure to define the mapping between Akeneo PIM attributes to the standard Salesforce’s attributes. Key should be the akeneo attribute name (left column), and value should be the equivalent of that attribute on SFCC (right column).Please note that each PIM attribute is prefixed with the "akeneo_" label in Salesforce Commerce Cloud. 

Connector parameter PIM/SFCC information
System attribute mapping (akeneoProductAttrsMapping) akeneo_PIMAttributeID : SFCC attribute ID

Note: If you don't want to use this feature, please leave a space between curly brackets ({}).

System attribute mapping example

Example:
 
{
"matching": {
"akeneo_name": "name",
"akeneo_description": "longDescription",
"akeneo_shortDescription": "shortDescription",
"akeneo_ean": "EAN"
	}
 }
 
 

 

Type transformation mapping

 Mapping the Akeneo attributes with the product custom attributes present in SFCC. Product custom attributes that are included in this config must be created and updated manually by the user on SFCC B2C Commerce side. Key should be the akeneo custom attribute name (left column), and value should be the equivalent of that custom attribute on SFCC (right column).

Parameter Content
Type transformation mapping (akeneoCustomAttrMapping) JSON - akeneo_PIMAttributeID : SFCC custom attribute ID

Please, note that each PIM attribute is prefixed with the akeneo_ label in Salesforce Commerce Cloud.

Note: If you don't want to use this feature, please leave a space between curly brackets ({ }).

Type transformation mapping example

Example:
{
"matching": {
"akeneo_color": "color",
"akeneo_size": "size"
    	     }
}

 

 
 

 

Renaming attribute mapping

Use Renaming Attribute Mapping for the custom attributes that you want to be automatically created and updated

  • Alternative to " Type Transformation Attribute Mapping”.
  • The mapping allows for type conversion, enabling you to bypass type restrictions in the PIM (Product Information Management) system
  • Customers can rename the attribute ID during the mapping process.
  • Pre-existing data can also be mapped, such as pre-existing Name in the PIM to Title in Salesforce. This can be done by putting it in a different field in the connector and renaming the attribute.
Parameter Content
Renaming Attribute mapping JSON

Renaming Attribute example

Example:
{ 	
"matching": { 		
"akeneo_taste": "renamedTaste", 
"akeneo_number": "piecenumber" 	
     } 
}

 
 

Site specific attribute mapping

The site-specific mapping is parsed to extract and utilize information during the catalog import process.  

In this configuration,

  1. the object keys correspond to the SFCC attribute IDs. 
  2. The attributeType property indicates whether the SFCC attribute is a system or custom attribute. 
  3. The matching array defines the mapping between the site ID and the PIM attribute ID.  
  • Siteid: enter the site concerned by the mapping
  • attributeId: enter the code of the PIM attribute (online_date for instance)
Parameter Content
Site specific attribute mapping (akeneoSiteSpecificAttrMapping) JSON

Site specific attribute example

{
"SFCC_Attribute": {
  "attributeType": "system",
"mapping": [
{
  "siteId": "RefArch",
  "attributeId": "PIM_attributeID_1"
},
  {
  "siteId": "RefArchGlobal",
  "attributeId": "PIM_attributeID_2"
  }
  ]}}

 
 

 

Changing scopability or localizability of attributes in PIM

The Akeneo PIM allows users to modify the scopability and localization settings of attributes.

When an attribute is updated from non localizable to localizable, and/or from non scopable to scopable, the connector automatically processes the change.

However, if an attribute is changed from non localizable to localizable, and/or from non scopable to scopable, manual intervention is required. If the data was already synced to SFCC before the change, the connector cannot detect and remove the obsolete values. The user must manually delete the outdated data in SFCC.

 

Synchronize products PIM status with the SalesForce online status (onlineFlag)?

Since the 20.2.2 version, configure in the connector configuration page how you want to synchronize your PIM Product status with Salesforce:

This configuration will allow you to map the PIM product status

with the SalesForce online status:

 

The use of this feature will overwrite the manual link you maybe created according to the SalesForce system attribute mapping described into the filter configuration page

 

 

SKU or UUID import

Product ID Type On SFCC (akeneoProductIDTypeOnSFCC): Specifies the type of ID to be used on SFCC as the product ID for products imported from the Akeneo PIM. It has the options of SKU and UUID. Please note that if the user's Akeneo PIM version is older than 7.0, SKU will be used by default even if UUID is selected for this custom preference. 

Akeneo Product Import Settings Select one of the two options of a single select
Product import ID type single select SKU or UUID

 

 Product ID Type On SFCC (akeneoProductIDTypeOnSFCC) - Select what type of ID should be used on SFCC as the product ID, for the products imported from the Akeneo PIM.

o   SKU (SKU) - It is a unique identifier assigned to a product to track inventory and sales. SKUs are typically alphanumeric codes that help businesses manage their inventory and track product variations. Each product variant, such as size, color, or style, may have a different SKU to differentiate it from other variants.

o   UUID (UUID) - It is a 128-bit identifier that is used to uniquely identify information in computer systems. UUIDs are typically represented as a sequence of alphanumeric characters, separated by hyphens, in the form of "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".

  • UUIDs are generated using various algorithms and are designed to be unique across all devices and systems. They are commonly used in distributed systems, databases, and software applications to ensure that each entity or record has a unique identifier.

However, it's important to note that the type of ID used as the product ID on SFCC and displayed on the Products page can vary depending on the Custom Preference setting for Product ID Type. This setting provides flexibility in choosing the format of the product ID. 

If the Product ID Type is set to "SKU" (Stock Keeping Unit) in the akeneoProductIDTypeOnSFCC custom preference, product’s SKU from PIM will be used as the product ID on SFCC and displayed on the Products page. This is a common practice where each product variant has a unique SKU assigned to it. 

Alternatively, if the Product ID Type is set to "UUID" (Universally Unique Identifier) in the akeneoProductIDTypeOnSFCC custom preference, product’s UUID from PIM will be used as Product ID on SFCC. These UUIDs are designed to be globally unique and are commonly used when a highly unique identifier is required. 

The choice of Product ID Type depends on your specific business needs and the way you prefer to identify and manage your products within the system. It's important to configure this setting appropriately to ensure consistency and accuracy in your product management processes. 

SKU or UUID

 
 

 

Preserving Non-Akeneo Products in SFCC During Synchronization

When we import products using their Akeneo UUID  to be their product ID on SFCC, products previously imported via SKU or an unknown identifier type are removed from the system to prevent duplicates. Similarly, when products are imported using their Akeneo SKU to be their product ID on SFCC, products previously imported via UUID or an unknown identifier type are also removed. 

This duplicate removal functionality is active during full imports to ensure that all products in the master catalog have the same type of identifier, so that we don't end up having duplicates of the same products with different identifier types.After an upgrade, during the first full import, it is expected that products with an unknown identifier type (which were manually created on SFCC or imported from the PIM before this feature existed) will be removed due to the duplicate removal functionality.In this case, there are two options available:

  1. Set the Product Import ID Type attribute for these certain products to keep (those that were created specifically in SFCC and not existing in their Akeneo PIM system) to either SKU or UUID, depending on the identifier type specified in the site preference "Product ID Type On SFCC (akeneoProductIDTypeOnSFCC)."
  2. Keep those manually created SFCC products in a different master catalog than the one used for importing Akeneo products.
 

 

Akeneo PIM Product Groups in SFCC

In Akeneo PIM, Groups are used to bind some products together.

As of now, Product Groups are neither supported nor exported with Akeneo Connector for SFCC.

 


Finding Product, product models and attributes once imported in SFCC

Product in SFCC

Where to find my PIM products in SFCC?

  1. Select your SFCC site, then click on Merchant Tools
  2. Then click on the Products menu

On the Products page, if you want to see all your products, click on the Find button (By default, there are no products in the list.). If you are looking for a specific product, use the search bar.

 

 
 

Product model in SFCC

  1. Select your SFCC site, then click on Merchant Tools
  2. Then click on the Products menu

 
 

Product attribute in SFCC

Where can you find your PIM product attributes in SFCC?

  1. On the Products page, search for your product
  2. Click on the selected product
  3. Click on the Lock link in the top alert "You haven't locked this product for editing. Click Lock if you need to edit the product." to be able to edit product attributes.

With this last action, you are able to manipulate some attributes more easily. For example, you can click on the image attribute Edit button in order to see all the product images.

 

After your product attributes review, don't forget to click on the Unlock link in the top alert "You've locked this product for editing. Click Unlock to release."

On this page, you will find all your PIM product attributes.

Depending on the configuration of your connector the mapping of SFCC attributes may be as follows:

  • Some PIM attributes could be mapped with SFCC product default attributes
  • The remaining PIM attributes will appear in the Akeneo Attributes part of the page

Each PIM attribute is prefixed with the akeneo_ label.

In the Akeneo attributes part of your product, you may notice some attributes that do not belong to the family your product belongs to.

Indeed, there's no such thing as Family in Salesforce Commerce Cloud. Each product in SFCC will be assigned all PIM attributes by default.

 
 
 

Localizable and scopable product attribute in SFCC

 Localizable attributes in SFCC

  1. On the Products page, search for your product
  2. Click on the selected product
  3. Choose the language in the Select Language list on the product page, knowing that:
  • The Default language will be populated with the content of non-localizable attributes.
  • The other set languages in SFCC, matching with set languages in the PIM, will be populated with the content of localizable attributes (For example, if you have 3 languages for your products in the PIM (fr_FRen_US and de_DE), you will find the content of your attributes in the French (France)English (United States) and German (Germany) languages in Salesforce Commerce Cloud.

Scopable attributes

Depending on the configuration of your connector the scope preference will be as follows: the Akeneo connector will only import the attribute values of the specified channel.

 
 

Table attribute in SFCC

Where can I find Table attribute information in SFCC?

The table attribute has been recovered in the most native way (for SFCC) to preserve the connector's performance. Raw data recovered from the Akeneo's API are not processed in any way, therefore:

  • The order of the attribute values & translations is given to us by the Akeneo's API
  • The empty attribute values (as for the other attributes) are not transmitted to the connector.
 

Table attribute is stored in two places in the SFCC interface.

On the product level, you will be able to recover table attribute values for the specific table in the dedicated field - one field per table (ex. akeneo_FoodComposition). Those values will be automatically transmitted to the SFCC during import.

To recover translations and table structure, you will need to retrieve them from the custom object created during import.

Go to Merchant tools >> Custom Objects >> Look for AkeneoAttributeTable Object or search the Custom Object directly by its name (ex. Food_Composition)

This custom object is used to store the definition of the structure of the attribute table (columns order/columns translation / etc.). Each new element corresponds to a “table attribute” in the PIM. You can use this information to display the table correctly on SFRA or headless. Please consider this custom object as a mirror of the attribute definition in Akeneo. 
You can retrieve the translation of the column in the “labels” node. However, the translated values corresponding to a product are defined in the System Product Object as a new custom attribute (a standard attribute from Akeneo).