Docs / Columns and sync direction

Columns and sync direction

Every column syncs in exactly one of three directions, and you choose which one — per column, not per sheet.

Directions

DirectionMeaning
Two-wayThe default for most fields. An edit on either side reaches the other.
Shopify → SheetRead-only in the sheet. Used for identity columns and any field where writing back isn't safe — description HTML, and Shopify-calculated inventory.
Sheet → ShopifyAvailable where it makes sense; most fields default to two-way instead.

Identity — always included

These two aren't a choice in the picker. They're what let Syncline recognise a row as an existing variant rather than treating every sync as a fresh comparison.

ColumnNotes
Variant IDRow identity. Clearing this on a filled row creates a new variant — always included, never a choice.
Product IDGroups variant rows into products. Always included.

Product fields

ColumnNotes
TitleRepeated on every variant row; only the first row of a product is authoritative.
StatusACTIVE, DRAFT or ARCHIVED.
Vendor
Product type
TagsComma-separated. Off by default.
DescriptionHTML. One-way from Shopify by default — a spreadsheet cell mangles rich HTML, so writing it back is opt-in.

Variant fields

ColumnNotes
Option 1 / 2
Option 3Off by default.
SKU
BarcodeOff by default.
Price
Compare-at priceOff by default.

Inventory

Generated per location rather than listed statically — one store might have two locations, another twenty. Each gets an on-hand column, editable, plus an optional available column that reads out of Shopify only.

Why available is locked to read-only, and on-hand isn't

Changing a mapping later

Reordering or removing a column is applied to the spreadsheet directly — Google moves the column with its data intact, so nothing is lost and nothing needs re-exporting.

Adding a column, or changing what a mapping means, is different: it invalidates every stored comparison hash for the shop. That's deliberate, not a side effect to route around — a hash computed under the old set of columns can't be compared against a row read under the new one, and treating them as comparable was an actual production bug: editing a single variant reported four rows as "changed" because the export had seeded hashes under a previous mapping. Re-export after a mapping change to write the sheet under the new layout.

Next

Conflicts and troubleshooting — what happens when both sides change the same field, and what to do about the messages you'll actually see.