1. Establish shape and identity
Start with invented rows, not a live replay. Confirm the declared header and row width, then exact text identifiers, supplier namespace and approved mapping. If these fail, later price or quantity checks can be attached to the wrong product. The related key matrix demonstrates leading-zero and cross-supplier collisions.
- Header drift: inspect duplicate, renamed, unknown or missing columns.
- Identifier conversion: compare the original string and lookup key.
- Namespace collision: compare supplier-plus-code pairs and unmapped exceptions.
2. Establish each field's meaning
Group duplicate keys before choosing values. Agree whether an omitted optional price is unchanged, whether blank is invalid and whether clearing requires an explicit operation. Check purchase units, pack size and the price basis before comparing suppliers. Use the presence and pack-price examples to write expected results.
- A conflict is not solved merely because an upsert runs.
- A missing price is not automatically zero.
- A rounded per-item display is not automatically the purchase amount.
3. Establish feed-wide acceptance
Confirm full versus delta mode, exact coverage and completion evidence before interpreting absent products. Compare trustworthy source versions at the publication boundary, not by local arrival time. Hold ambiguous versions or conflicts without modifying the agreed prior state. These checks do not prove atomic multi-row publication; that larger design needs separate review.
- Use the version-disposition example for newer, stale, repeat and conflict cases.
- Do not mark the whole catalogue unavailable because one source file is small.
- Keep production actions and historical recovery out of diagnosis.
A narrow priced route, not an importer bundle
One eligible local reproducible bug starts from £295 under the existing regression-test offer, after bounded reproduction and a fixed quote. One eligible new interaction in an existing web app starts from £750 under the private feature-preview offer, with its already available isolated preview, written criteria and two revision rounds. The collection is not a priced package and does not add those prices into a promise to rebuild an importer. Production credentials, real data repair, new accounts, payments and live publication remain out of these small scopes. Send invented cases and the desired result initially; prices are untested and payment follows agreed checks and sign-off.
- This sequence is a commercial and engineering inference from the cited technical behaviours, not evidence that distributors have requested or paid SI for it.
Sources and limits
- Python CSV: fields, dialects and heuristic header detection Checked 2026-10-11.
- Parsing and header detection have explicit type and missing-field behaviours; successful parsing does not establish supplier business meaning.
- PostgreSQL constraints and key rules Checked 2026-10-11.
- Key and reference constraints protect a declared data model, not all business interpretation.
- Existing regression-test repair Checked 2026-10-11.
- Existing one-feature preview Checked 2026-10-11.