Supplier data management for Ergonode

Map supplier data into Ergonode. No code.

Ergonode is GraphQL only, and every attribute kind has its own typed mutation. SDM Portal knows which one to use, writes your variants in the order Ergonode requires, and replays the same rules on every file that supplier sends.

Variants with axes and bindings Workflow status transitions Dry-run before every write
Connection
  • ProtocolGraphQL only, /api/graphql/
  • AuthAPI key in an X-API-KEY header
  • StructureTemplate
  • WritesAliased GraphQL mutations, 25 operations per request
  • VariantsSimple products first, then the variable product with bindings
  • Delta syncHash per write operation
One mapping layer, three PIMs
You are reading the Ergonode page. See the product overview.
The problem

Where an Ergonode supplier feed actually gets stuck

Supplier files are built for humans. Ergonode is built for a schema. Most of the work is the distance between the two, and it comes back with every new file.

1

Every kind has its own mutation

Text, numeric, select, multi select, unit, price and relation each need a different typed mutation. Send a value through the wrong one and Ergonode answers with an unknown error and no detail.

2

Variants need an order

Children have to exist before the variable product can bind them. Get the order wrong and the bindings fail.

3

Status is a graph, not a field

Ergonode validates workflow transitions server-side, so you cannot simply set the status you want from wherever the product is now.

How it works

How SDM Portal writes into Ergonode

You draw the mapping on a canvas. Tricky rules are described in plain language and compiled once into a fixed rule, so runs stay reproducible. Below is what the Ergonode side of that actually does.

Template-scoped mapping

Pick the template and the attribute rail scopes to its attributes. Templates carry no display name in the API, so the picker shows the template code. The built-in SKU is not part of the attribute stream, so a field named esa_sku is injected and you map SKU like any other column.

Typed writes, resolved live

Text, textarea and date go out as a string, numeric, price and unit as a float, select as an option code, multi select as a list of option codes and a relation as a list of SKUs. The kind comes from your live catalog, not from the shape of the value, so an article number that looks numeric still lands as text.

Values per locale

Locale is a property of the connection you draw. Three description columns feed one attribute in three languages, and the run language decides the default.

Variants with axes and bindings

Mark a parent key, one or more variant axes and the variant SKU on source columns. Simple products are created first, then the variable product with its bindings, which is the order Ergonode requires. Axis values that pass through a ValueMap still resolve to binding codes.

Workflow status by shortest path

Because Ergonode enforces the transition graph, the shortest path from the product's current status to the one you mapped is computed and walked step by step instead of set in one jump.

Categories from several taxonomies

A flow can hold more than one taxonomy node. Each maps a source value to a category, and a product gets the deduped union of everything that resolved, in one category call.

Options, created and enriched

Missing options are created with a short suggested code, lowercased, that you can edit per value. Option custom fields of type text, textarea and rich text can be filled from other columns in the same row, so the long care text lands in a custom field while the option keeps a readable name. Option names cap at 255 characters.

New attributes from the editor

Create text, textarea, numeric, date, select, multi select, unit, price and relation attributes from the canvas. Ergonode has no API to add an attribute to a template, so a created attribute is instance-wide and you add it to the template in Ergonode itself. The editor tells you this at the moment you create one.

Batches that survive a bad cell

Writes go out as aliased GraphQL mutations, 25 operations per request, paced. One rejected value can fail a whole batched document, so a batch in which every operation failed with the same error is retried one operation at a time. Only the real offender fails, and Ergonode's own validation detail is shown on the row.

Soft failures stay soft

A value like nvt on a numeric attribute is skipped with a warning naming the SKU. A duplicate value on a unique attribute, such as a shared customs code, is recorded as a skip rather than failing the product. A relation to a SKU that does not exist yet is dropped from that write and named in the warning, so the rest of the relation still lands.

Attribute coverage

What we can write into Ergonode

Select and multi select map to option codes, and missing options can be created and enriched. A price attribute is a single float whose currency is configured on the attribute inside Ergonode, and a unit attribute reads its symbol from the attribute.

Text Textarea Numeric Date Select Multi select Unit Price Product relation Categories Workflow status Variant bindings
Honest limits

What the Ergonode connector does not do yet

We would rather you read this before you sign up than find it in week two. Every item below is a real boundary of the Ergonode connector today.

Not writable

Images, galleries, files

Media attributes are visible in the rail but not written. Option custom fields of type image are filtered out for the same reason.

Single currency

Prices

An Ergonode price attribute holds one float and its currency is configured on the attribute inside Ergonode. Per-edge currency, where several columns merge into one collection, is an Akeneo feature.

Out of scope

Grouping products

Simple and variable products only. Grouping products are not created.

Manual step

Adding an attribute to a template

Ergonode has no API for it. An attribute created from the editor exists instance-wide, and you add it to the template in Ergonode before it appears in the scoped rail.

API limit

Option names over 255 characters

Ergonode refuses longer option names with an opaque error, so names are truncated at 255. Put the full text in an option custom field.

Cosmetic

Template names

The Ergonode API returns no display name for a template, so pickers and warnings show the template code.

FAQ

Questions about Ergonode and SDM Portal

How does SDM Portal connect to Ergonode?

Ergonode exposes GraphQL only, at /api/graphql/. You add the instance URL and an API key, which is sent as an X-API-KEY header, and the connection is verified with a live handshake. The key is stored encrypted and is never part of an exported mapping.

Does SDM Portal handle Ergonode variants?

Yes. You mark the parent key, the variant axes and the variant SKU on source columns. Simple products are created first and then the variable product with its bindings, which is the order Ergonode requires. Axis values that run through a ValueMap still resolve to binding codes.

Can it set the Ergonode workflow status?

Yes. Ergonode validates status transitions server-side, so SDM Portal computes the shortest path from the product's current status to the one you mapped and walks it step by step.

How does one bad cell not fail a whole batch?

Writes are batched as aliased GraphQL mutations, 25 operations per request. A single rejected value can fail the whole batched document, so a batch in which every operation failed with the same error is retried one operation at a time. Only the real offender fails, and the reason Ergonode returned is shown on the row.

Will a second run push everything again?

No. Every write is hashed per operation, so a re-run of an unchanged file reports the products as unchanged and writes nothing. A force full resync is there for the times you do want everything pushed again.

Other PIMs

Running a different PIM?

The editor, the transforms and the workflow are shared. Only the write path differs per PIM, so each connector has its own page.

Map Ergonode once. It runs itself.

Start a workspace, connect your Ergonode instance and map your first supplier file. Fourteen days free, no card charged during the trial.

Try free for 14 days Talk to us