Catalogue Import Preview: Show Unmatched Source Columns Before Anything Is Written
The problem this preview solves
Most import screens answer one question: which columns matched? A safer screen also answers the opposite one: which source columns did not match, and what happens to them? When unmatched columns disappear silently, two things go wrong. Data is lost without anyone noticing. Or a helpful person drags two unrelated columns into one destination field just to make the warning go away.
This article proposes a preview artifact for a public catalogue import. It is an example workflow, not a description of any observed result. The sample data below is hypothetical.
Inputs
Imagine a small shop importing a public product sheet with these headers:
- Item Name
- Ref
- Colour
- Size Label
- Notes
- Pack Info
- Supplier Tag
The shop's catalogue has destination fields: Title, Product Code, Colour, Size, Description. There is no destination for Supplier Tag, and Pack Info and Notes are both free text that could look similar.
The preview layout
Show three panels before any import button becomes active.
- Matched: source column, destination field, and the first three sample values from the file. Mark each as exact-name match or suggested match.
- Unmatched source columns: every source column with no destination, with its first sample values and a choice per column.
- Unfilled destination fields: fields that no source column feeds, so people can see what will stay empty.
Each unmatched column gets exactly one of these choices: Leave out of this import, Map to an existing field, or Hold the file and ask the owner. Leave out should be a deliberate choice, not a default that happens quietly.
Decision branches
- If a column has a clear single destination and the sample values look like that field, map it.
- If two source columns both seem to fit one destination, do not merge them. Pick one, and mark the other as left out or held. Combining Notes and Pack Info into Description is a content decision that belongs to the catalogue owner, not to the import step.
- If a column has no destination, decide whether the catalogue needs a new field. Adding a field is a separate change; do not block this import on it unless the data matters now.
- If a sample value contradicts the header, such as a Size Label column containing prices, treat the mapping as unconfirmed.
Stop conditions
Stop and do not import when any of these hold:
- Any unmatched column has no recorded choice.
- Two source columns are mapped to one destination without a named owner approving it.
- The matched Product Code column has blank or repeated values in the sample you can see.
- The preview shows zero matched columns.
Stopping means the file stays untouched and the preview remains available for correction. It does not mean discarding the file.
Worked example
The shop reviews the sample. Item Name, Ref, Colour and Size Label map to Title, Product Code, Colour and Size. Notes maps to Description, since the sample values are sentences. Pack Info looks like it could also be Description. Rather than joining them, the reviewer marks Pack Info as Hold and writes a one line question for the owner: should pack details become their own field? Supplier Tag is marked Leave out because it is an internal label that should not appear publicly. The import summary records: five matched, one held, one left out, one destination empty.
Acceptance test
Prepare a test file with eight columns. Make three match exactly, two partially, two not at all, and one a near duplicate of a matched column. Run the preview and check:
- Every one of the eight columns appears somewhere on screen.
- The two columns that could feed one field are never merged without an explicit approval step.
- The import button stays unavailable while any unmatched column lacks a choice.
- After choosing, the summary counts matched, held, left out and empty destination fields, and those counts add up to the source and destination columns you started with.
- A held column is still listed after the import so it is not forgotten.
If all five checks pass, the preview is doing its job. If any column can vanish without a recorded choice, send the design back.
Conclusion
A good import preview treats unmatched columns as visible decisions. It keeps unrelated fields separate, gives every leftover column a recorded outcome, and refuses to proceed while questions remain open. That small amount of friction is cheaper than finding out later that two different kinds of information were fused into one field.