Conflict, deletion, ghost, and drift handling for variation sheets
Variation re-imports now classify every row - edit, add, delete, conflict, ghost, or preserve - and ask before doing anything risky. Deletions need confirmation, edits that would overwrite newer live changes prompt a "CSV wins" check, and offerings added after you exported are preserved instead of wiped.
The sheet and the shop don’t always agree
A spreadsheet is a photo of your catalog at the moment you exported it. By the time you re-import, the live shop may have moved on - and the rows you deleted, the ones you didn’t, and the offerings that appeared in between all mean different things. Variation validation now reads each row and classifies it: edit, add, delete, conflict, ghost, or preserve.
Ask before anything destructive
A missing row could mean “delete this offering” or “I just trimmed my sheet.” Everlyst won’t assume. Deletions require explicit confirmation, and when a row would overwrite changes made live on Etsy since your export, you get a “CSV wins” conflict prompt instead of a silent overwrite - so newer live data is never clobbered by accident.
Don’t punish you for selling
Offerings added to your shop after you exported - the classic “ghost” rows that aren’t in your file - are preserved by default rather than wiped for not appearing in the sheet. The whole point is that editing in a spreadsheet shouldn’t quietly cost you the work you did everywhere else.