# Supplier data into Akeneo, mapped visually

Your supplier sends a spreadsheet. Akeneo wants a product document with the right family, channel, locale and currency on every value. SDM Portal is the mapping layer in between: you build it once per supplier, and every later file replays the same rules.

Web version: https://sdmportal.com/akeneo/

## The connection

- **Protocol:** Akeneo REST API, /api/rest/v1
- **Auth:** OAuth2 password grant: client ID, secret, username, password
- **Editions:** Community Edition 7 and Serenity, detected at handshake
- **Structure:** Family
- **Writes:** ND-JSON PATCH /products, up to 100 per batch
- **Delta sync:** Document hash per product

## Where an Akeneo supplier feed actually gets stuck

### Attributes live in families

A supplier column means nothing until you know which family it belongs to. Pick the family and the attribute rail narrows to that family's attributes, in the family's own order.

### Every value has a dimension

Akeneo values carry a locale and, for scopable attributes, a channel. A price is a collection with a currency. A metric is an amount plus a unit. Get one of those wrong and the value is refused.

### Options are codes, not labels

A select value has to resolve to an existing option code that matches the characters Akeneo accepts. Supplier files send labels like Navy Blue instead.

## How SDM Portal writes into Akeneo

### Family-scoped mapping

Choose the family and the attribute rail scopes to it, keeping the family's attribute order. The identifier attribute is excluded and a system field named esa_sku is injected instead, so SKU maps like any other column, exactly as it does on Ergonode.

### Locale on the edge

Enabled locales come from your instance. Locale is a property of the connection you draw, so three description columns can feed one attribute in three languages. A localizable attribute takes the edge locale; a non-localizable one keeps the first value and warns.

### Channel and currency per profile

Publish settings hold the channel and default currency for the profile, offered from your own channels and constrained to that channel's currencies. A scopable value with no channel configured is dropped with a warning. Set this before approval: changing it changes every document hash and forces a full re-push.

### Price collections, multi-currency

Currency is also a property of an edge. Several source columns, say price_eur and price_usd, merge into one price collection on one attribute. Mixing edges that carry a currency with edges that do not fails the dry-run instead of guessing.

### Metric attributes

A metric value is written as an amount plus the attribute's default metric unit. An attribute without a default unit drops the value and says so, rather than writing a number with no unit.

### Option creation with labels

Missing select options are created with per-locale labels. Codes must match the characters Akeneo allows, and an invalid code is rejected with a suggested fix rather than silently rewritten, so the code you see is the code that lands.

### New attributes from the editor

Create text, textarea, number, date, simple select, multi select, boolean, price collection and metric attributes without leaving the canvas. Every type needs an attribute group; metric also needs a family and a default unit. The new attribute is appended to the profile's family with a read-append PATCH, so nothing else in the family is touched.

### Reference entities on Serenity

A reference entity attribute behaves like a select and its collection like a multi select. The option list is the linked entity's records, so you map supplier values straight onto record codes.

### Write mechanics you can audit

Products go out as ND-JSON batches of up to 100. Every line comes back as created, updated or refused, and a refusal is reported per attribute. Rate limits are honoured from the response. Each product carries a document hash, so a re-run of an unchanged file writes nothing. In create and update mode existence is swept first, in chunks of 500 SKUs.

## What we can write into Akeneo

Select and multi select values map to option codes, and missing options can be created with their labels. Categories are assigned as a deduped set per product.

- Text
- Textarea
- Number
- Date
- Simple select
- Multi select
- Boolean
- Price collection, multi-currency
- Metric
- Categories
- Reference entity
- Reference entity collection

## What the Akeneo connector does not do yet

### Product models and variants (variants)

Variant axes are an Ergonode feature today. On an Akeneo profile the variant markers are hidden. If an older flow still carries them, the children are written as standalone products and the parents are skipped with one aggregated warning.

### Media, tables, identifier (not writable)

Image and media attributes, table attributes and the identifier attribute are visible in the rail but not writable. They stay readable so you can see the full family.

### Reference entity records (read only)

Records of a reference entity are read as options, never created. Their label is the record code, so the picker shows codes.

### Workflow status (ignored)

Akeneo has no product workflow status. A status mapping carried over from an Ergonode flow is ignored with one warning instead of failing the run.

### Option custom fields (ergonode only)

Akeneo options have labels but no custom fields, so the option enrichment features stay hidden on an Akeneo profile.

### Deleting attributes (one way)

An attribute created through the API cannot be deleted again through the CE 7 API. Create deliberately.

## FAQ

### Which Akeneo versions does SDM Portal support?

Akeneo Community Edition 7 and Serenity. The edition and version are detected during the connection handshake and shown on the connection row, so you can see exactly what you are connected to.

### How does SDM Portal authenticate against Akeneo?

Through an Akeneo API connection: client ID, client secret, username and password over the OAuth2 password grant. The bearer token is cached per connection and refreshed once on a 401. Credentials are stored encrypted and are never part of an exported mapping.

### Does SDM Portal support Akeneo product models and variants?

Not yet. Variant axes and bindings are an Ergonode feature today. On an Akeneo profile the variant markers are hidden, and a flow that still carries them writes the children as standalone products while skipping the parents with one warning.

### How are channels, locales and currencies handled?

Locale is a property of the mapping edge, so three description columns can feed one attribute in three languages. Channel and default currency are set per profile in the publish settings, offered from your own channels. A price attribute can receive several currencies at once by setting a currency per edge.

### Can I see what will happen before anything is written to Akeneo?

Yes. A dry-run shows the result row by row with warnings for unmapped values and dropped fields, and writes nothing. Runs can go to a staging Akeneo first and production after that, and delta sync means only changed products are pushed again.

## Get started

Try free for 14 days: https://app.sdmportal.com/signup?lang=en

Other PIMs: https://sdmportal.com/ergonode/ · https://sdmportal.com/akeneo/ · https://sdmportal.com/pimcore/

SDM Portal.
