FIELD NOTES · ACCEPTANCE EXERCISES

A blank product CSV cell is not an unchanged field

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 / caseCheck basisExpected decision
old Vendor=Maker A; column omittedno patch keyMaker A retained
Vendor included as blankexplicit empty valuecleared
Vendor=Maker Bexplicit replacementMaker B

Run the acceptance exercise

  1. Export a recovery copy and identify exact handles or variant keys in a test subset.
  2. Mark every proposed column as preserve, clear or replace and review dependent columns.
  3. 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