An import supplier may treat an empty cell as “nothing to update”, while the platform treats it as clearing the existing value. Agree blank, omitted and explicit replacement semantics before importing a catalogue. A syntactically valid CSV is not a non-destructive update plan.
Who should use this acceptance brief
Retailers commissioning catalogue imports. Use this as a scoped website handover task. Where real system evidence is required, teaching examples are not a substitute.
Source-bound platform fact
Shopify documents that a blank included non-required column can overwrite an existing value as blank, while omitting that column leaves the existing value unchanged; related columns have additional rules. Shopify: product CSV · Checked 16 October 2026.
Filled teaching example
Synthetic example, not a client case. Finite inputs, expected decisions and counterexamples follow; no live integration is claimed.
On narrow screens, scroll to read the complete table.
| Input / case | Check basis | Expected decision |
|---|---|---|
| old Vendor=Maker A; column omitted | no patch key | Maker A retained |
| Vendor included as blank | explicit empty value | cleared |
| Vendor=Maker B | explicit replacement | Maker B |
Run the acceptance exercise
- Export a recovery copy and identify exact handles or variant keys in a test subset.
- Mark every proposed column as preserve, clear or replace and review dependent columns.
- Import only the authorised test subset, then export again and compare old/new fields.
Interpret the result and retain evidence
The teaching function models a single optional Vendor field using property presence, not CSV parsing. It deliberately treats an empty string as a change. Real imports must also validate handles, variant relationships and platform-specific defaults. A before/after diff should list unexpected clearing explicitly rather than counting the job as successful because no parser error appeared.
Limits before implementation
No production imports or legacy edits. Excludes CSV formula safety, inventory-location imports and a universal rule for every column.
Replay the finite example
Save both files in one folder and run with Node22.13 or newer. The example sends no network requests and changes no account or site. Filled inputs and expected outputs · Inspectable functions
node decision-check.mjs product-csv-blank-versus-omitted.json