Skip to main content
POST
Create Article Links

Authorizations

Authorization
string
header
required

API key generated in Settings > API Keys. Include as Authorization: Bearer <key>.

Body

application/json

One unit⇄article link for POST /api/ppwr/article-links. Create-only and idempotent on (specInternalRef, articleNumber). An unknown article number or unit reference is a row error here — unlike the unit row's articleNumbers column, which skips unmatched numbers silently.

specInternalRef
string
required

internalRef of an existing packaging unit.

articleNumber
string
required

The article's internal article number (the number IS the SKU).

formatReference
string

Name a SIZE of this unit and the link records THAT size; omit it to link the whole unit. A reference naming no size of this unit is the row error unknownFormatRef.

Maximum string length: 120

Response

Intake result (partial accept — see the schema).

Result of a synchronous PPWR intake. Partial accept: valid rows commit even when other rows are invalid or failed — the one exception is the 409 overwrite gate, which is all-or-nothing. Idempotent: replaying an identical request changes nothing (matched rows return as skipped), except unit rows without internalRef, which are always creates.

imported
integer
required

ENTITIES created (units, components, links) — never sizes.

updated
string[]
required

Identifiers of rows whose existing match changed. A size created on an existing unit appears as <unit ref> / <size ref>.

skipped
string[]
required

Identifiers of rows that matched with nothing to change.

failed
object[]
required

Rows the upsert engine rejected (unknown reference, ambiguous match, …). Its error values are stable machine keys.

invalid
object[]
required

Rows rejected by schema validation before the engine ran. Most error values are stable machine keys, but a field with no custom message falls back to the validator's own English text — match on the key, fall back to displaying the string.

sizesCreated
integer

Unit intake only: sizes created for the rows' units.

articleNumbersUnmatched
integer

Unit intake only: distinct articleNumbers no live article matched. Skipped, never a row error.

articleLinksCreated
integer

Unit intake only: unit⇄article links created from articleNumbers.

Unit intake only: unit⇄component links created from componentCodes.

componentStubsCreated
integer

Unit intake only: minimal placeholder components created for unknown componentCodes.