Professional Documents
Culture Documents
Akeneo LINK Integration Documentation
Akeneo LINK Integration Documentation
1
Table of Contents
1. Summary ........................................................................................................................................ 3
2. Component Overview ................................................................................................................... 3
2.1 Functional Overview ............................................................................................................... 3
2.2 Use Cases ............................................................................................................................... 4
2.3 Limitations, Constraints ......................................................................................................... 4
2.4 Compatibility ............................................................................................................................ 4
2.5 Privacy, Payment .................................................................................................................... 4
3. Implementation Guide .................................................................................................................. 4
3.1 Cartridge Upload ..................................................................................................................... 4
3.2 Metadata Import ...................................................................................................................... 4
3.3 Cartridge Path ......................................................................................................................... 5
3.4 Configuration ........................................................................................................................... 5
3.4.1 Group: Akeneo – General .............................................................................................. 6
3.4.2 Group: Akeneo – Product Associations ..................................................................... 14
3.4.3 Group: Akeneo - Reference Entity.............................................................................. 15
3.5 Jobs List ................................................................................................................................... 15
3.6 Custom Object Usage .......................................................................................................... 23
3.7 Custom Code......................................................................................................................... 24
3.8 Firewall Requirements ............................................................................................................. 26
3.9 Testing .................................................................................................................................... 26
3.10 Debug ................................................................................................................................... 26
4. Operations, Maintenance .......................................................................................................... 26
4.1 Data Storage ......................................................................................................................... 26
4.2 Availability .............................................................................................................................. 26
4.3 Support ................................................................................................................................... 26
5. User Guide ................................................................................................................................... 26
5.1 Roles, Responsabilities ....................................................................................................... 26
5.2 Business Manager ................................................................................................................ 26
5.3 Storefront Functionality ........................................................................................................ 28
6. Know Issues................................................................................................................................. 29
7. Release History ........................................................................................................................... 29
2
1. Summary
Akeneo is specialized in the development of PIM (Product Information Management).
It aims to centralize the catalog/product data of a customer in one place. It also allows
the complex enrichment of products with concept of completeness and other pre-
defined criteria. Akeneo's instances are mainly enriched by flows coming from
customer ERP or any other data centralization platform.
The module created by Ideatarmac UG is an Akeneo SFCC connector. Its purpose is
to automate import from Akeneo of multiple data, in particular the entirety of the
Catalogue products, categories, basic prices as well as the images produced. The
module therefore has 6 jobs to perform these different tasks.
The module is compatible to run on Akeneo PIM versions 2.3, 3.0, 3.1 and 3.2
2. Component Overview
2.1 Functional Overview
3
• Storefront products
• Product media
2.4 Compatibility
The Akeneo module works with version 19.9 (Compatibility mode 18.10) of
Salesforce Commerce Cloud.
3. Implementation Guide
3.1 Cartridge Upload
Upload the bc_akeneo cartridge into the Salesforce Commerce Cloud Studio
Workspace:
1. Open Salesforce Commerce Cloud Studio.
2. Click File -> Import -> General -> Existing Projects into Workspace.
3. Browse to the directory where you have saved the bc_akeneo cartridge.
4. Click Finish.
5. Click OK when prompted to link the cartridge to the sandbox.
4
For the Akeneo integration to work, the following object structures (metadata)
need to be imported and configured in the Business manager. Follow the below
steps:
a) Go to Business Manager Menu > Administration -> Sites -> Manage Sites.
b) Select the desired site.
c) Click on the Settings tab.
d) Append ":bc_akeneo" to the "Cartridges" field.
e) Click on Apply button.
f) Repeat steps d and e for all sites including Business Manager site.
3.4 Configuration
Below the list of all configurations with details which need to be fill:
5
3.4.1 Group: Akeneo – General
6
• Akeneo Product attributes mapping (akeneoProductAttrsMapping):
JSON configuration, corresponding to what we want to define, what
akeneo attribute is associated with which salesforce's System attributes
e.g :
{
"matching": {
"akeneo_name": "name",
"akeneo_description": "longDescription"
"akeneo_shortDescription": "shortDescription",
"akeneo_ean": "EAN"
}
}
7
• Akeneo Image View Types (akeneoViewTypesConfig): List of Image
View types in SFCC
E.g :
{
"view-types": [
"large",
"medium",
"small"
]
}
• Akeneo Category Online (akeneoCategoryOnline): Set the value in this
field to enable/disable a Category (e.g: yes)
8
https://api.akeneo.com/documentation/filter.html#filter-on-product-
properties
{
"EAN": {
"nodeName": "ean",
"localizable": "false",
"nodeValue": ""
},
"UPC": {
"nodeName": "upc",
"localizable": "false",
"nodeValue": ""
9
},
"unit": {
"nodeName": "unit",
"localizable": "false",
"nodeValue": ""
},
"minOrderQuantity": {
"nodeName": "min-order-quantity",
"localizable": "false",
"nodeValue": ""
},
"stepQuantity": {
"nodeName": "step-quantity",
"localizable": "false",
"nodeValue": ""
},
"name": {
"nodeName": "display-name",
"localizable": "true",
"nodeValue": []
},
"shortDescription": {
"nodeName": "short-description",
"localizable": "true",
"nodeValue": []
},
"longDescription": {
"nodeName": "long-description",
"localizable": "true",
"nodeValue": []
},
"onlineFlag": {
"nodeName": "online-flag",
"localizable": "false",
"nodeValue": "true"
},
"onlineFrom": {
"nodeName": "online-from",
"localizable": "false",
"nodeValue": []
},
"onlineTo": {
"nodeName": "online-to",
"localizable": "false",
"nodeValue": []
},
"searchable": {
"nodeName": "searchable-flag",
"localizable": "false",
"nodeValue": []
},
"searchableIfUnavailable": {
10
"nodeName": "searchable-if-unavailable-flag",
"localizable": "false",
"nodeValue": []
},
"template": {
"nodeName": "template",
"localizable": "false",
"nodeValue": ""
},
"taxClassID": {
"nodeName": "tax-class-id",
"localizable": "false",
"nodeValue": ""
},
"brand": {
"nodeName": "brand",
"localizable": "false",
"nodeValue": ""
},
"manufacturerName": {
"nodeName": "manufacturer-name",
"localizable": "false",
"nodeValue": ""
},
"manufacturerSKU": {
"nodeName": "manufacturer-sku",
"localizable": "false",
"nodeValue": ""
},
"searchPlacement": {
"nodeName": "search-placement",
"localizable": "false",
"nodeValue": []
},
"searchRank": {
"nodeName": "search-rank",
"localizable": "false",
"nodeValue": []
},
"siteMapIncluded": {
"nodeName": "sitemap-included-flag",
"localizable": "false",
"nodeValue": []
},
"siteMapChangeFrequency": {
"nodeName": "sitemap-changefrequency",
"localizable": "false",
"nodeValue": []
},
"siteMapPriority": {
"nodeName": "sitemap-priority",
"localizable": "false",
11
"nodeValue": []
},
"pageAttributes": {
"pageTitle": {
"nodeName": "page-title",
"localizable": "true",
"nodeValue": []
},
"pageDescription": {
"nodeName": "page-description",
"localizable": "true",
"nodeValue": []
},
"pageKeywords": {
"nodeName": "page-keywords",
"localizable": "true",
"nodeValue": []
},
"pageUrl": {
"nodeName": "page-url",
"localizable": "true",
"nodeValue": []
}
},
"productBundle": {},
"productSet": {},
"pinterestEnabled": {
"nodeName": "pinterest-enabled-flag",
"localizable": "false",
"nodeValue": []
},
"facebookEnabled": {
"nodeName": "facebook-enabled-flag",
"localizable": "false",
"nodeValue": []
},
"storeAttributes": {
"storeReceiptName": {
"nodeName": "receipt-name",
"localizable": "true",
"nodeValue": []
},
"storeForcePriceEnabled": {
"nodeName": "force-price-flag",
"localizable": "false",
"nodeValue": "false"
},
"storeNonInventoryEnabled": {
"nodeName": "non-inventory-flag",
"localizable": "false",
"nodeValue": "false"
},
12
"storeNonRevenueEnabled": {
"nodeName": "non-revenue-flag",
"localizable": "false",
"nodeValue": "false"
},
"storeNonDiscountableEnabled": {
"nodeName": "non-discountable-flag",
"localizable": "false",
"nodeValue": "false"
}
}
}
13
3.4.2 Group: Akeneo – Product Associations
Eg:
{
"matching": {
"X_SELL": "cross-sell",
"UPSELL": "up-sell",
"PACK": "other",
"SUBSTITUTION": "replacement”
}
}
14
bundles” into SFCC.
15
that is, it will take file and generate an archive with it for being correctly
import by ImportSiteArchive available in IntegrationFramework.
This step need 1 parameter which is :
- AkeneoFluxPath : relative path to the Impex where the xml attributes
file is. (e.g : Impex/src/akeneo/attributes)
Multiple storefront Site Assignment: Single site - Any one site of any of
Business Units. This is because attribute import is on organization level, not
on any specific business units or any specific storefront.
2-Akeneo-Import-Media-Assets-Pricebook
This job has 3 steps:
job-workflow-step-media-files: Media related steps will download all media
files from Akeneo API to Salesforce WebDAV based on the site preference
configuration (akeneoImageType). It will use the Site Preference
« akeneoProductsCatalogID » for uploading in correct directory. There is no
standard component for directly importing Akeneo's media files.
This step needs the parameter :
- AkeneoMediaUrl: relative url to media API (e.g : /api/rest/v1/media-
files, could change in the futur with newest api version)
16
job-workflow-step-pricebook: It will prepare XML files for all pricebook for
each currency available in Akeneo instance. It getting price from Akeneo
product flux. All Akeneo’s products contains an array of all currency
available. For example, if there is already eur-price-book, it will be update
with new entries.
Beware, it’s not possible to directly assign pricebook to Site, so you have to
do it in BM.
This step needs the parameter:
- AkeneoPriceBookUrl : Relative path to the Product API (e.g :
/api/rest/v1/products)
Multiple storefront Site Assignment: Multiple Sites - One site from each Business
Unit. This is because the job is on Business Unit level.
3-1-1-Akeneo-Differential-Import-Master
This job Will generate xml file in Impex for all products’ details to master catalog.
This is a differential job which will import the only products which have been
updated in Akeneo after last import. For the first time in an instance this job will
execute for full import.
There are 10 steps for this job :
job-workflow-step-categories-custom-objects: Connect to the akeneo api
17
and Get the categories and stores in custom object
This step needs following parameters
- AkeneoCategoriesUrl: relative url to Categories API (e.g :
/api/rest/v1/categories)
18
- AkeneoProductsUrl: relative url to Categories API (e.g :
/api/rest/v1/product-models, could be changed in the future with new
api version)
19
- importMode : Import mode (e.g : Merge)
3-1-2-Akeneo-Differential-Import-Storefront
This job will generate xml file in Impex for all product’s category assignment and
association information to storefront catalog.
This is a differential job which will import the only products that have been updated
in Akeneo after last import. For the first time in an instance this job will execute for
full import.
There are 4 steps for this job :
job-workflow-step-storefront-catalog: Generates category XML
This step needs following parameters
- AkeneoCategoriesUrl: relative url to Categories API (e.g :
/api/rest/v1/categories)
20
- filePattern : file pattern to retrieve (e.g : catalog-akeneo-(.*).xml)
- importMode : Import mode (e.g : Merge)
3-2-1-Akeneo-Full-Import-Master
This is a full import job which should be executed when we need to import all
product’s data into master catalog without differential.
This job has same number of steps as in differential import job (3-1-1-Akeneo-
Differential-Import-Master), and one extra step as mentioned below :
job-workflow-step-clear-imported-time: This step will clear the imported
time which is saved in the custom object “AkeneoRunTime” so that all the
data is imported.
job-workflow-clear-existing-custom-objects: This step will clear existing
custom objects of Model products.
job-workflow-step-products-images: This step creates xml for images of
products.
Multiple storefront Site Assignment: Multiple Sites - One site from each Business
Unit.
3-2-2-Akeneo-Full-Import-Storefront
This is a full import job which should be executed when we need to import all
product’s category assignment and association information into storefront catalog
without differential.
This job has same number of steps as in differential import job (3-1-2-Akeneo-
Differential-Import-Storefront), and one extra step as mentioned below:
job-workflow-step-clear-imported-time: This step will clear the imported
time, which is saved in the custom object “AkeneoRunTime” so that all the
21
data is imported.
Multiple storefront Site Assignment: Multiple Sites - All sites from all Business Units.
4-Akeneo-Entity-Import
This job imports Reference Entity Records in to SFCC back office.
This job has following steps:
Sequential flow 1 has following steps:
job-workflow-step-import-entity-records: This step generates XML for
attributes of entities and XML for entity records (Scope: Specific Site).
job-workflow-step-attributes-import: This step imports the generated
attributes XML file (Scope: Organization).
Sequential flow 2 has following single step:
job-workflow-step-content-import: This step imports the XML for entity
records (Scope: Specific Site).
5-Akeneo-Entity-Record-Grouping
This job automatically adds some of the entity records to an attribute group, as per
the custom site preference values.
Single Sequential flow has following steps:
job-workflow-step-entity-records-group: This step generates XML for attribute
grouping (Scope: Specific Site).
job-workflow-step-attributes-group-import: This step imports XML for attribute
grouping (Scope: Organization).
For example, a PIM Reference Entity of a brand (code: “brand”) will be imported
into the Content Asset “akeneo_entity_brand” in SFCC.
(As per the SFCC Infocenter, the maximum number of Content Object in an
instance is 100,000)
• PIM Reference Entity Records will be imported as JSON objects into the
corresponding custom attributes of the SFCC Content Asset.
22
For example, after successfully importing all PIM Reference Entity Records, the
JSON object of Reference Entity Record “dyson” (an element of Reference Entity
“brand”) will be available in SFCC as custom attribute
“akeneo_entity_brand_dyson“ of Content Asset “akeneo_entity_brand”.
• Scalability limit : by default, the connector does not automatically add any PIM
Reference Entity Record (as SFCC custom attributes) to any attribute group.
This is due to the fact that when importing PIM Reference entity Records as JSON
code, the structure becomes too heavy. Furthermore, when there are too many of
them, it may cause problems when trying to load SFCC Content Asset page in
Business Manager (because the page becomes too heavy).
◦ Option 1: To make sure that the JSON structure of Content Asset attribute is
ok, Integrators/Merchants can manually add a selection of PIM Reference Entity
Records to the SFCC attribute group of their choice.
- Entity Records In Group: Keep your list of entity record IDs in this field
under corresponding entity ID. Sample value is mentioned under section
titled as Configuration.
- Entity Records Group: In this field, keep the Group Name of Content
Asset entity records (Attributes). Or keep empty value to take the default
value.
Custom Object : AkeneoRunTime: This custom object is used to store the job
executed time which will be used in differential job execution to retrieve only updated
products from Akeneo.
Custom Object : WorkflowAkeneo: This custom object is used to store the token
retrieved from Akeneo for authorization.
23
3.7 Custom Code
As explained previously, if new product attributes are retrieved from Akeneo,
consequently, storefront should be customized for integrating those new attributes
to product page/product grid etc... (e.g : composition, carePicto, protection clothes,
univers…)
Example Token :
Request
Response :
24
Authorization = « Bearer» + token provided earlier
Response:
25
3.8 Firewall Requirements
There is one firewall requirements on Akeneo’s instance. Merchant has to provide
their outgoing IP address to Akeneo to configure in API environment to whitelist
the SFCC environment.
3.9 Testing
Not applicable
3.10 Debug
Case: Asset is updated in PIM but not getting imported to SFCC
Solution: When an asset is updated in PIM, the respective product which has the
asset should also be updated. Both the jobs “2-Akeneo-Import-Media-Assets-
Pricebook” and “3-1-1-Akeneo-Differential-Import-Master OR 3-2-1-Akeneo-Full-
Import-Master” should be executed in order to retrieve updated asset in the product.
4. Operations, Maintenance
4.1 Data Storage
As explain previously, for calling Akeneo’s API, we have to retrieve a token. We can
re-use this token for all jobs defines, consequently we stock this token in Custom
Object (AkeneoToken) with only one entry. No need to clear this CustomObject.
Product medias will be stored into Catalogs WebDav.
Each job which transform Akeneo data into XML Salesforce data has a history of
import and archived xml files.
4.2 Availability
The Akeneo service is uptime most of the time. This solution does not include a fall
back solution.
In case of a longer downtime, you can contact the Akeneo support.
4.3 Support
Akeneo Support :
https://akeneo.atlassian.net/servicedesk/customer/portal/8/group/28
5. User Guide
5.1 Roles, Responsabilities
The integrator will have to schedule the jobs on their PIG instance.
26
workflow_site-import folder to generate simple-akeneo-workflow_site-
import.zip file.
2. In the Business Manager go to Administration > Site Development > Site Import
& Export
3. Under Import: Upload Archive: Ensure that the radio button with label “Local” is
enabled (else click on the radio button to enable it).
4. Click on Choose File input field, select the simple-akeneo-workflow_site-
import.zip file from open dialog box and click on upload button
5. After finishing the upload, from the Archives list click the radio button
corresponding to simple-akeneo-workflow_site-import.zip and click on Import
button
6. Click on OK button of the confirmation box asking “Are you sure that you want to
import the selected archive?”
7. After the successful import following elements will be created automatically:
• Akeneo Custom Object for stock token, master product responseand job
imported time
• 1-Akeneo-Import-Attributes- Resources :
1. System - Product
• 2-Akeneo-Import-Media-Assets-Pricebook- Resources :
1. System - Pricebook
12. Schedule job as needed, and start synchronization with Akeneo instance.
27
5.3 Storefront Functionality
Not applicable
28
6. Know Issues
Not applicable
7. Release History
Version Date Changes Akeneo version
19.9.0 2019-09-23 Product Bundle 3.2, 3.1, 3.0, 2.3
19.8.0 2019-09-20 Reference Entities 3.2, 3.1, 3.0, 2.3
19.7.1 2019-08-23 Documentation 3.2, 3.1, 3.0, 2.3
corrected/updated
19.7.0 2019-08-20 Support of multiple 3.2, 3.1, 3.0, 2.3
storefronts
19.6.1 2019-08-19 Bug fixes 3.2, 3.1, 3.0, 2.3
19.6.0 2019-07-02 Import Model-Model- 3.2, 3.1, 3.0, 2.3
Variations into
Model-Variation
Group-Variations
19.5.3 2019-07-02 Filter attribute meta 3.2, 3.1, 3.0, 2.3
import
19.5.1 2019-06-07 Updated feature - 3.2, 3.1, 3.0, 2.3
Advanced Filter
Builder
19.5.0 2019-06-07 New feature - Import 2.3
association as
Product Sets
19.4.2 2019-05-27 Updated feature - 2.3
Import association as
Product Links (OR
Recommendations)
19.3.1 2019-04-25 Upgraded to Script 2.3
Module version
19.1.0 2019-01-11 SFCC Re- 2.3
Certification
18.1.0 2018-11-02 Master & Variation 1.7
products
1.1.1 2018-02-12 Change SFCC 1.7
version number
1.1 2018-01-26 Module 1.7
documentation
1.0 2017-10-05 Initial release 1.7
29