This guide explains how to manually configure the Supplier Data Manager (SDM) Akeneo PIM connector. The setup has two parts: creating a Connection in Akeneo PIM, then configuring the direct connection in SDM Admin.
For a guided wizard-based setup, see How to connect SDM to Akeneo PIM with the wizard.
Before you start
- You need admin access to your Akeneo PIM instance.
- You need SDM Admin access to create a direct connection in SDM.
- Decide which families, channels, and locales you want to include in the connector scope before you begin — you will need these values when editing the
config_params.
Step 1: Create a connection in Akeneo PIM
To allow SDM to pull configuration data from and push products to Akeneo PIM, create a dedicated Connection in the PIM.
- In Akeneo PIM, go to Connect > Connection settings.
- Click Create to add a new connection.
Settings
- Give the connection a descriptive name (e.g.,
SDM connector). - Set the flow type to Data Source.
- Enable Track in Data flows dashboard to get analytics on how many products were sent to the PIM.
Credentials
- Copy the Client secret, Client id, Username, and Password before saving — these values are encrypted once you click Save and cannot be retrieved afterward.
Permissions
- Assign a role and user group that grant SDM the right to edit products in the PIM. Without edit permissions, product pushes will fail.

The screenshot above shows the Akeneo PIM Connection settings page with flow type set to Data Source and the Data flows dashboard tracking option enabled.
Step 2: Add a direct connection in SDM
You need SDM Admin access to create a direct connection.
In SDM, go to Home > Connectors > Akeneo direct connections and create a new direct connection with the following fields:
- Base URL — enter the URL of the Akeneo PIM instance.
- Organization — enter the name of the organisation.
- Is config active — check this checkbox to activate the connection.
-
Config params — no changes required at this stage; you can edit this later (see Configure
config_paramsbelow). - Push config — no changes required at this stage.
- Config frequency — set a cron schedule to control how often SDM syncs the PIM configuration (see Set the config sync frequency below).
Then enter the credentials copied from the Akeneo PIM connection in Step 1:
- Client secret
- Client id
- Username
- Password
Set the config sync frequency
The Config frequency field accepts a cron schedule that tells SDM when to automatically sync the Akeneo PIM configuration (Families, Attributes, Categories).
A cron schedule is a way to tell the system when something should run automatically, such as every day, every Monday, or every 15 minutes.
What each field means
| Field | Range | Description |
|---|---|---|
| Minute(s) | 0–59 | Which minute of the hour (e.g., 0 = on the hour, 30 = half past) |
| Hour(s) | 0–23 | Which hour of the day in 24-hour time (e.g., 0 = midnight, 9 = 9 AM, 14 = 2 PM) |
| Day(s) of the Month | 1–31 | Which date of the month (e.g., 1 = first day, 15 = fifteenth day) |
| Month(s) of the Year | 1–12 | Which month (e.g., 1 = January, 12 = December) |
| Day(s) of the Week | 0–6 | Which weekday (0 = Sunday, 1 = Monday, ..., 6 = Saturday) |
Common symbols
| Symbol | Meaning | Example |
|---|---|---|
* |
Every value |
* in Hour = every hour |
*/n |
Every n units |
*/15 in Minute = every 15 minutes |
a,b,c |
Specific values |
0,30 in Minute = at 0 and 30 minutes past the hour |
a-b |
Range of values |
9-17 in Hour = from 9 AM to 5 PM |
Examples
Every day at midnight (UTC)
Minute(s): 0
Hour(s): 0
Day(s) of the Month: *
Month(s) of the Year: *
Day(s) of the Week: *
Runs: Once per day at 12:00 AM
Every Monday at 9 AM (UTC)
Minute(s): 0
Hour(s): 9
Day(s) of the Month: *
Month(s) of the Year: *
Day(s) of the Week: 1
Runs: Once per week on Monday mornings at 9:00 AM
Every 15 minutes
Minute(s): */15
Hour(s): *
Day(s) of the Month: *
Month(s) of the Year: *
Day(s) of the Week: *
Runs: Four times per hour (at 0, 15, 30, and 45 minutes past)
Every hour during business hours on weekdays (9 AM–5 PM, Mon–Fri, UTC)
Minute(s): 0
Hour(s): 9-17
Day(s) of the Month: *
Month(s) of the Year: *
Day(s) of the Week: 1-5
Runs: At the start of every hour from 9 AM to 5 PM, Monday through Friday only
First day of every month at midnight (UTC)
Minute(s): 0
Hour(s): 0
Day(s) of the Month: 1
Month(s) of the Year: *
Day(s) of the Week: *
Runs: Once per month on the 1st at 12:00 AM
Step 3: SDM Admin configuration
Always refer to the API docs as the source of truth. The API docs are always up to date — double-check the information in this article against it.
The SDM Admin configuration for an Akeneo direct connection has two main sections: config_params and variant_params.
Configure config_params
The config_params section controls how the Akeneo PIM connector fetches configuration data and generates SDM fields. The options below become available after the initial PIM configuration has been fetched.
Do not modify the project configuration directly when a project is linked to an Akeneo connector. Manual changes to the project config are overwritten on the next sync. All customisations must go through config_params.
-
use_locales— selects a subset of PIM locales to use for labels and generated attributes. -
use_uuid_push,use_uuid_memory,uuid_memory_reference_base,uuid_memory_keys— options for pushing products using the UUID endpoint. See What you need to know before using the connector for details. -
added_fields— creates SDM fields not present in the PIM (for example, fields targeting an ERP). All extra fields must be added here because direct project configuration changes are overwritten on the next sync. -
added_groups— same asadded_fieldsbut for groups. -
override_fields— overrides specific attribute properties. Bothnameandgroupsare required;groupscan be set tonullto override all definitions of an attribute regardless of its group. -
variants_active— activates product variants in the project. See How to use the Variant module for details. -
restrict_classification_to_variants— in the Classification step, limits selection to Family variants only. Requiresvariants_activeto betrue. Defaults tofalse. -
exclude_attributes/include_attributes/exclude_attribute_groups— targets only specific attributes or attribute groups. -
include_families/exclude_families/include_channels/exclude_channels— targets only specific Families or channels. These options can be combined. Targeting a subset of Families means that attributes not associated with any included Family are ignored and do not appear in the project. -
include_categories/exclude_categories— targets specific categories. When a category is excluded, all its child categories are also excluded. -
split_categories— creates one hierarchy per category tree instead of a single combined tree. See What you need to know before using the connector for details. -
source_attributes— default attributes set as source for categorisations and extractions. These attributes are marked as mandatory for mapping steps. -
max_rows_per_table— controls the number of attributes created for Table attributes. -
max_requirement_level— acceptsoptional,important, orrequired. Sets the maximum requirement level for all attributes generated by the connector. Some mandatory attributes (such as the SKU) remain required regardless of this setting. -
multiple_value_separator— legacy option for workflows that do not push directly to the PIM. Controls the separator used for attributes with multiple values. -
allow_categorisation_intermediary_node_selection— controls whether users can select non-terminal nodes when categorising a product. -
exclude_parents_attributes_for_step— relevant only whenvariants_activeistrue. -
exclude_children_attributes_for_step— relevant only whenvariants_activeistrue. -
boolean_values— maps the output values fortrueandfalse. -
exclude_date_attributes— includes or excludes date attributes from the connector. -
added_options— adds options for all select attributes in the connector. -
preserve_identifiers_case— preserves the original letter case in product identifiers and codes. Iffalse, codes are converted to lowercase. -
allowed_options_for_pim_attribute_addition— accepts an array of field codes (existing PIM attribute codes). Only the listed attributes can have new options created from the Value Mapping step in SDM and pushed back to the PIM configuration. -
use_dependencies— set totrueto apply the Akeneo PIM attribute dependencies to SDM. Defaults tofalse.!!! info "Early Access" This feature is in early access. Reach out to your Akeneo contact if you're interested in trying it out.
-
default_product_enabled_value— sets theenabledstatus for all new products pushed to the PIM. Defaults totrue. Requires a configureduuid_memory_reference_base. -
price_fields_by_currency— defaults totrue.- If
true, one SDM field is created per active currency for PIM price collection attributes. For example, an attributeretail_pricewith currencies USD and EUR on theecommercechannel produces fieldsretail_price-ecommerce-USDandretail_price-ecommerce-EUR. - If
false, one SDM number field is created for all currencies, plus one additional select field for the currency. The above example producesretail_price-ecommerceandretail_price-ecommerce-unitwith USD and EUR as options. This mode exists only for compatibility with older workflows and is not recommended for new setups.
- If
If a credential error occurs during a fetch action, the system deactivates the configuration and notifies the Akeneo team.
Example config_params 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_Retailer",
"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"
}
],
"allowed_options_for_pim_attribute_addition": [
"brand",
"assembly_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",
"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": "retailer_staging_uuid",
"exclude_parents_attributes_for_step": [],
"exclude_children_attributes_for_step": [],
"allow_categorisation_intermediary_node_selection": false,
"price_fields_by_currency": true
}
Configure variant_params
The variant_params section is available when variants_active is set to true in config_params. To view or edit it, click the edit/view button on the direct connection in SDM Admin.

The screenshot above shows the SDM Admin direct connection page with the edit/view button used to access the variant_params configuration.
The options in variant_params are:
-
automation— controls automated grouping of products into product models.-
enabled(boolean, defaults tofalse) — iftrue, SDM attempts to group products automatically. Requiresdefault_id_columnto be set. -
grouping_columns(array of strings, defaults to empty array) — the product attributes (e.g., size, color, brand) that must match for products to be grouped together. Cannot be empty whenenabledistrue. -
group_empty_columns(boolean, defaults tofalse) — controls whether products with missing values in the grouping columns can still be automatically grouped. Disabled by default to reduce the risk of incorrect groupings. - If
allow_product_model_without_matching_groupisfalse, products with no matching group are automatically marked asindependent.
-
-
product_model_name_column— the attribute where SDM stores the product model ID. Not pushed to the PIM. Empty for independent products. -
product_model_head_column— the attribute where SDM stores the row type (child,parent,independent, orungrouped). Not pushed to the PIM. -
export_data— a list of row types (parent,child,independent) whose rows are made available in the export dataframe when the step is finalised. -
output_data— a list of row types whose rows are made available in the output dataframe and continue to the next step when the step is finalised. -
default_id_column— used to automatically fill the group ID column based on an attribute value when creating a product model. -
unique_columns— list of attributes used to validate that all products in the same model have distinct values. Mostly used insidematching_groups. -
invariant_columns— list of attributes marked as invariant when creating a product model. -
variant_columns— list of attributes marked as variants when creating a product model. -
allow_product_model_without_matching_group— allows grouping products that have no matching group. Defaults tofalse. -
matching_groups— list of groups used for automation and validation. Each entry has:-
name— the group ID. -
label— a locale-to-label mapping used for display only. -
conditions— rules that determine whether a product belongs to this matching group. A product belongs to the first group where all conditions match. -
unique_columns— attributes used to validate that all products in the same model have distinct values. If all fields in this list are identical across products, the products are considered duplicates rather than variants. -
variant_columns— attributes marked as variants when creating or updating a product model. Cannot be changed in the UI. -
invariant_columns— attributes that cannot be marked as variants when creating or updating a product model.
-
Limitations and known issues
Locale display in collaborative environments
Supplier Data Manager uses locales to display labels in the user's preferred language. In collaborative environments, if one user sets their locale to French, the interface is translated into French for that session, which may cause difficulties for colleagues working in English on the same workspace.