Seven steps.
None of them skippable.
An uploaded file moves through the steps in order, and each one stays shut until the previous one is finished. That is not bureaucracy: it is what stops a mistake at step two from travelling all the way into the catalogue.
Each step decides one thing, and decides it once. A brand resolved at step three is not reopened at step six; a product type settled at step four arrives at mapping already decided. What a person corrects always beats what the machine proposed.
The file is uploaded into its own client’s space — the association comes from the session, never typed by anyone. You can work on a sample or on the whole file.
You point at the brand column, at up to three descriptive columns — these are what AI will read later — and at a reference price if there is one. Encoding and whitespace repair run here, along with coverage and duplicate-header checks.
The distinct values of the brand column are clustered and each cluster resolved once: dictionary first, then the rule learned from that supplier, then AI against the real brands table. A correction on a single row always beats its cluster.
Almost no price list carries a "product type" column, so every row is resolved from its own descriptive text. An admin-curated keyword dictionary first, with no AI; then that supplier’s learned rule; then AI against the real product types. A row can be excluded, with the reason recorded.
Rows are gathered into parent-and-child families and given their variant axes — size, colour, and whatever that product type actually carries. Axes belong to the product type rather than to a single family, so two families of the same type cannot drift apart.
The remaining columns are mapped onto normalized fields, split between anagraphic and commercial. An attribute is offered only if the ontology genuinely associates it with that product type: this is a check on structure rather than on existence, and a pairing that sector does not allow for is blocked as you choose it, not silently at import time.
The product record, with anagraphic data on one side and commercial data on the other. From here it is ready for the central catalogue, which remains the only authority on what a product is.
Why a cascade, rather than just AI
The value is not the model, it is the agreement on what a product is in that sector. An AI proposing inside an ontology nobody has agreed on produces confident nonsense, only faster. That is why the dictionary comes first: it is curated by people, it is deterministic, and it is free. Learned rules come next, because they are the accumulated experience of that particular supplier. AI is left with whatever neither has already settled — and it is the only layer that declares it was involved.
The most useful file is the messiest one.
Send us a price list exactly as it reaches you. We will tell you what would come out of it, and where a person would still be needed.
Let’s talk →