In the PIM: Add a Connection
1. Via Connector
From the client’s PIM > CONNECT > Connection settings
- Create a new connection
SETTINGS
- Give a name
- The flow type should be Data Source
- Track in Data flows dashboard (useful to have analytics on how many products were sent into the PIM)
CREDENTIALS
- Make sure to note the credentials somewhere safe as it will be encrypted once you SAVE your connection.
PERMISSIONS
- SDM should have the right to EDIT the PIM, Role and Group need to ensure this.
2. Via App Store
From the client’s PIM > CONNECT > AppStore
- CONNECT the Unifai App
- AUTHORIZATIONS: This means that the client accepts directly the right level of authorization SDM needs to create the connection.
- PERMISSIONS (Own / Edit / View) - The PIM client’s can select the level of permissions he wants the App to have access to.
- Category trees (Own/Edit/ view possible) - If you want your app to be able to modify your products without using PIM proposals, choose the Own level. Otherwise, choose the Edit level.
- Locales (Edit/View possible) - If you want your app to be able to edit your products in all languages, choose the All option in the Edit level. Otherwise, select only the languages that your app will be able to see or modify according to the level.
- Attribute Groups (Edit/View possible) - If you want your app to be able to modify all your product data, choose the All option in the Edit level. Otherwise, select only the attribute groups that your app will be able to see or modify according to the level.
- VALIDATE: A project is automatically created. From the SDM > Admin a direct marketplace connection has been created, then click on “create steps” to launch the sync.
You're done! A new project is created on the SDM client's interface, the connector is fetching the PIM Akeneo elements.
In the SDM: Connector Set-Up
You need to have access to SDM Admin
1. Add a Connection
From Home > Connectors >Akeneo direct connections:
- Create a new “direct connection”
- Base URL: PIM url
- Organization: Name of organisation
- is config active: check it
- Config params: nothing to do
- Push config: nothing to do
- Config frequency: Cron sync parameter to decide
Report from PIM Connector connection (cf above)
- Client secret
- Client id
- Username
- Password
2. SDM Admin Configuration
Here are all the options associated with an Akeneo Connector once the PIM configuration has been fetched:
-
use_locales
used to select only a subset of the locales used in the PIM. This is used both for labels and for generating attributes. -
use_uuid_push
,use_uuid_memory
,uuid_memory_reference_base
anduuid_memory_keys
: used when pushing to the UUID endpoint, see behavior above. -
added_fields
is used to create attributes not present in the PIM. This is for instance used to add fields targeting the ERP instead of the PIM. All added fields have to go through there because, as stated in the beginning, doing changes directly in the project configuration will mean they'll be lost during the next sync. -
added_groups
same as above but for groups -
override_fields
allow user to override specific attributes. Thename
andgroups
are both required and thegroups
can be left tonull
to override ALL definitions of an attribute regardless of its group. -
variants_active
is used to activate variants in the project. See the Variant doc for more info. -
include|exclude_families|channels|attributes
: used to make the connector target only specific families, channels or attributes All of them can be combined. Targeting only a subset of families will mean that attributes no associated with none of the families actually used will be ignored and not even appear in the project. -
split_categories
is used to have one hierarchy per category tree vs a single tree. See details above. -
max_rows_per_table
is used to control the number of attributes created for table attributes. -
max_requirement_level
can take the values optional, important or required. It is the same behavior as for steps but for all the attributes generated by the connector. Some mandatory attributes (the sku for instance) will remain required to make sure we can actually push the products to the PIM. -
multiple_value_separator
legacy option used for customers who don't want us to push directly to the PIM, this controls the separator used for attributes with multiple values. -
allow_categorisation_intermediary_node_selection
used to control whether the user will be allowed to select non-terminal nodes when categorizing a product. -
exclude_parents_attributes_for_step
: only relevant for the variant module ifvariants_active
is True. -
exclude_children_attributes_for_step
: only relevant for the variant module ifvariants_active
is True.
Note that if a Credential Error occurs during a Fetch action, the system will deactivate the configuration and send a message to our Team.
Exemple configuration
{
"use_locales": [
"fr_FR"
],
"added_fields": [
{
"name": "unifai_image_url",
"type": "image_url",
"label": {},
"rules": [],
"multiple": true,
"separator": ";",
"description": {},
"requirement_level": "optional",
"authorized_extensions": [
".jpg",
".jpeg",
".png",
".gif"
]
},
{
"name": "code_modele",
"type": "string",
"label": {},
"rules": [],
"description": {},
"requirement_level": "optional"
},
{
"name": "REF_Drawer",
"type": "string",
"label": {},
"rules": [],
"description": {},
"requirement_level": "optional"
},
{
"name": "product_supplier_reference",
"type": "string",
"label": {
"fr-FR": "Référence fournisseur"
},
"rules": [
{
"name": "max_length",
"negate": false,
"strict": false,
"threshold": 32
}
],
"groups": [
"fam_other_products"
],
"description": {},
"transformations": [
{
"name": "trim_whitespaces",
"multiple": false
}
],
"requirement_level": "required"
}
],
"use_uuid_push": true,
"boolean_values": {
"true": "true",
"false": "false"
},
"override_fields": [
{
"name": "parcel-fr_FR_row0_product_to_stick",
"groups": null,
"default": false
},
{
"name": "parcel-fr_FR_row0_parcel",
"groups": null,
"default": "Colis_1"
},
{
"name": "product_step_of_publication",
"groups": null,
"default": "product_publication_step_1"
},
{
"name": "product_model_name-fr_FR",
"groups": null,
"requirement_level": "required"
},
{
"name": "product_supplier_id",
"groups": null,
"requirement_level": "required"
},
{
"name": "product_supplier_reference",
"groups": null,
"requirement_level": "required"
}
],
"use_uuid_memory": true,
"variants_active": true,
"exclude_channels": [],
"exclude_families": [
"fam_spare_parts",
"fam_samples"
],
"split_categories": false,
"uuid_memory_keys": [
"product_supplier_id",
"product_supplier_reference"
],
"source_attributes": [
"product_model_name",
"product_origin_name",
"product_origin_description",
"product_brand"
],
"exclude_attributes": [
"product_maintenance_advice",
"product_name",
"product_long_name",
"product_variant_full_name d'unifai",
"SKU",
"product_mother",
"product_summary",
"product_description",
"product_description_instruction",
"product_keywords",
"product_main_points",
],
"max_rows_per_table": 5,
"max_requirement_level": "important",
"multiple_value_separator": ",",
"uuid_memory_reference_base": "drawer_staging_uuid",
"exclude_parents_attributes_for_step": [],
"exclude_children_attributes_for_step": [],
"allow_categorisation_intermediary_node_selection": false
}
Limitations and Known Issues
Locales
Our system uses locales to display labels in the preferred language of the user. However, this can create challenges in collaborative environments. For example, if a user selects French as their locale for ease of use, the entire interface will be translated into French, which may cause difficulties for English-speaking colleagues who share the same workspace.