field notes MISE

the import a business can afford to run twice

Bringing a business's catalogue onto the platform in one upload is a different problem from editing it. The failure that actually hurts is not a wrong cell; it is a partly written catalogue somebody has to reconcile by hand, late, on the day the business opens.

The design chose whole-file refusal. A structural error in any row, or a violation of the stated product rules, means nothing is written at all, and the response carries every error found rather than the first. That second half is the difference between a file a person fixes in one pass and a file they fix one row per attempt until they stop.

Errors and warnings were separated deliberately: a warning is reported and the import proceeds, only an error stops it. So the answer to an upload is a report with four counts — created, updated, unchanged, problems — not a partial success nobody can describe afterwards.

What makes repetition safe is content comparison at the natural key inside the business: match on name, compare the row, update only what genuinely changed, leave the rest alone. Re-uploading an unchanged file is then a true no-op, confirmed by the platform's own change tracking declining to advance a version. That is what lets a business keep one file as its source of truth and re-send it after every edit.

Free column order and stable identifiers across imports are the small courtesies that make other tools' output work; an unsupported second file format is refused explicitly rather than silently accepted.

Cost: one bad row blocks a large, mostly correct upload.

What it proves: the team designed for the second import, not for the demonstration.

drawn from: commit cluster — bulk upload with whole-file refusal

Every note carries a codename and one idea. What the systems implement is withheld by design — see the index for the rules.