Product Catalogue Pipeline Toolkit
One-sentence explanation
A command-line Python toolkit that turns messy supplier catalogue exports into normalized, validated, diffable data — the reusable core of the pipeline described in the catalogue automation case study, rebuilt from scratch with synthetic data so the design and code can be public even though that case study's data isn't.
The problem being solved
Supplier catalogue ingestion is one of the most common — and most repeatedly reinvented — problems in ecommerce tooling. Every business writes its own one-off scripts to parse CSV/Excel exports, guess at unit conversions, and check for obviously broken rows before publishing. None of that logic is inherently proprietary; it's just rarely extracted into something reusable.
Planned architecture
Adapter
Parse CSV/Excel/JSON into a common schema
Normalize
Units, categories, attribute mapping
Validate
Rule-based checks, typed errors
Diff / export
Compare snapshots, write clean output
Technology stack
Python, with Pydantic for schema validation and typed records, pandas for the bulk transform steps, and a small CLI (Typer or argparse) so the toolkit is usable standalone or importable as a library in a larger pipeline.
Current status
Concept — design complete, implementation not yet started. This page documents the toolkit I intend to build by generalizing the ingestion and validation logic from my professional work into a standalone, MIT-licensed package with synthetic sample data. No public repository exists yet — check back, or get in touch if you'd like to see this prioritized.
What I expect to learn
Extracting private pipeline logic into a general-purpose tool forces real API design decisions that a one-off internal script never has to make — this is where I expect the most useful lessons about what's actually reusable versus what's specific to one business's data quirks.
Planned improvements
- Pluggable adapters for common supplier feed formats
- Configurable normalization rules per source
- Human-readable diff reports between catalogue snapshots
- A tested validation-rules layer, not inline script logic