How to setup and use the PIM connector

Summary

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.

  1. In Akeneo PIM, go to Connect > Connection settings.
  2. 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.

Screenshot of the Akeneo PIM Connection settings page showing the connection name, flow type set to Data Source, and the Track in Data flows dashboard toggle enabled.

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:

  1. Base URL — enter the URL of the Akeneo PIM instance.
  2. Organization — enter the name of the organisation.
  3. Is config active — check this checkbox to activate the connection.
  4. Config params — no changes required at this stage; you can edit this later (see Configure config_params below).
  5. Push config — no changes required at this stage.
  6. 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:

  1. Client secret
  2. Client id
  3. Username
  4. 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).

How to write a cron schedule

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 as added_fields but for groups.
  • override_fields — overrides specific attribute properties. Both name and groups are required; groups can be set to null to 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. Requires variants_active to be true. Defaults to false.
  • 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 — accepts optional, important, or required. 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 when variants_active is true.
  • exclude_children_attributes_for_step — relevant only when variants_active is true.
  • boolean_values — maps the output values for true and false.
  • 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. If false, 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 to true to apply the Akeneo PIM attribute dependencies to SDM. Defaults to false.

    !!! 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 the enabled status for all new products pushed to the PIM. Defaults to true. Requires a configured uuid_memory_reference_base.

  • price_fields_by_currency — defaults to true.
    • If true, one SDM field is created per active currency for PIM price collection attributes. For example, an attribute retail_price with currencies USD and EUR on the ecommerce channel produces fields retail_price-ecommerce-USD and retail_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 produces retail_price-ecommerce and retail_price-ecommerce-unit with USD and EUR as options. This mode exists only for compatibility with older workflows and is not recommended for new setups.

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.

Screenshot of the SDM Admin direct connection page showing the edit/view button for variant params.

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 to false) — if true, SDM attempts to group products automatically. Requires default_id_column to 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 when enabled is true.
    • group_empty_columns (boolean, defaults to false) — 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_group is false, products with no matching group are automatically marked as independent.
  • 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, or ungrouped). 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 inside matching_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 to false.
  • 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.