Magento 2 / product data standardisation

Correcting the catalogue is the easy half. Keeping it corrected is the deliverable.

A working pass over a catalogue in the pre-correction state: encoded option IDs decoded, Cyrillic SKUs repaired, units normalised to SI, every row classified to ETIM and eCl@ss, FR and EN technical copy generated from the corrected attributes. Then the part that makes it stick: six invariants that every row must satisfy before it is allowed to go live.

rows in0
option IDs decoded0
SKUs repaired0
units to SI0
passed gate0
blocked0
Synthetic data. These rows were written to match the four families and the failure modes named in the brief (fasteners, hydraulics, power transmission, bearings). No client catalogue was used, and none was requested. Point the same pipeline at a real export and the mechanics are unchanged.
01

Pipeline

every stage is a pure function, independently tested
02

Row by row

click any row for the decode trail and the generated copy
#SKUFamilyDecoded attributes NormalisedETIM / eCl@ssGate
03

The gate

a row failing any single invariant does not go live

Invariants

Blocked rows

running The assertions below run in this page on load. They are the same file that runs under node.