Catalogue Migration & Data Quality
314 SKUs, with the data work the import tool could not do.
The business problem
A PrestaShop-to-Upgates migration involved mixed Czech/Slovak titles, incomplete product identifiers and inconsistent catalogue records.
My contribution
My role covered workflow definition, architecture, direction of AI-assisted implementation, service integration, testing and deployment. Platform and library authorship belongs to the third parties credited below; additional collaborators are not identified in the public project notes.
PrestaShop and Upgates are external commerce platforms. Python and Playwright supported transformation and integration.
Architecture & boundaries
Python and Playwright integrate with the Upgates API. Diacritic-aware normalisation, EAN-13 check digits and JSON progress checkpoints make the process resumable.
- 01ExtractSource records and existing identifiers
- 02NormaliseAccents, spacing and candidate keys
- 03ReconcileUnique match / manual review / no match
- 04ValidateEAN checksum and reconciliation before import
Labelled architecture overview, reconstructed from project documentation. This is not a production trace.
Inspect the workflow
Synthetic reference demo · no customer data, live calls, LLM requests or shop writes.
Four synthetic rows exercise unique matches, ambiguity and missing candidates.
| Source record | Result |
|---|---|
| Pergola Klasik | Not run |
| Zahradní domek | Not run |
| Altán | Not run |
| Neznámý výrobek | Not run |
No sample records processed.
These four rows are not the original catalogue and do not substantiate its historical match-rate claim.
Failure paths & design decisions
Equivalent names differ in accents, case or spacing.
Create deterministic comparison keys while retaining the original product values.
Evidence boundary: The reference tests cover diacritics, case, whitespace and repeat normalisation.
Normalisation can collapse different products onto one key.
Send ambiguous candidate sets to review instead of silently choosing the first match.
Evidence boundary: The synthetic sample includes an ambiguous product and checks that it is not auto-matched.
An identifier can look plausible and still be invalid.
Validate the EAN-13 checksum before accepting an identifier.
Evidence boundary: Reference tests distinguish valid identifiers from a wrong check digit.
Delivery record
- Status
- Documented PrestaShop-to-Upgates migration project; the public materials describe its scope rather than an independently audited outcome.
- Users & scope
- 314 SKUs in the existing project record; catalogue preparation included Czech/Slovak normalisation and EAN handling.
- Dates & usage
- Migration dates and the original reconciliation export are not published.
Results & measurement gaps
The existing project record describes a 314-SKU migration. The original reconciliation report and the denominator behind the previously quoted 94% match rate are not published, so that rate is not presented as a verified outcome.
314 SKUs is the documented project scope. A historical 94% CZ/SK match rate has no published denominator, threshold or exception report, so it is not used as a verified result. The four-row demo is synthetic and is not that historical report.