Skip to Content
RunsConflict strategy

Conflict strategy

When a record has already been loaded once (so it exists on Shopify), the conflict strategy decides what happens on the next load.

StrategyBehavior
Overwrite (default)Push the current payload, replacing whatever Shopify holds.
SkipLeave the existing Shopify record alone; bump the run item’s skipped count.

You pick the strategy in the Start run modal, and it applies to the whole run.

When to use overwrite

The default. Use this when:

  • Graftport is the source of truth for the data.
  • The merchant hasn’t been editing products in Shopify admin.
  • You want any drift between Graftport’s view and Shopify’s view to be resolved in Graftport’s favor.

When to use skip

Use skip when:

  • The merchant has been editing the destination store in parallel with the migration and you want their hand-edits preserved.
  • You’re loading a new resource type after the rest of the migration is live, and the load might touch already-existing records you shouldn’t overwrite.
  • You’re rerunning to pick up only the records that don’t already exist (e.g. the first load failed mid-way and you’re filling in the gaps).

Per-record control

Conflict strategy is a run-level setting today. If you need per-field control, use the field filter (see only-dirty) to narrow what an update actually writes — combine that with overwrite to safely push only the fields you intend.

What’s deferred

“Update only the fields that changed” — auto-detecting which fields drifted on the destination side and patching only those — is on the roadmap but not yet available. Today the choice is binary: overwrite the whole payload, or skip.

Last updated on