Skip to Content
DestinationShopify

Shopify destination

Shopify is the only destination Graftport writes to today. The destination is configured per migration in step 2 of the wizard.

What you need

A custom app installed on the destination Shopify store, with an Admin API access token (shpat_…).

To create one in Shopify admin:

  1. Open Settings → Apps and sales channels → Develop apps.
  2. Create an app, name it Graftport Migration.
  3. Configure Admin API scopes (table below).
  4. Install the app on the store.
  5. Copy the Admin API access token. This is the value you paste into Graftport.

The token is shown once at install time. If you lose it, you must uninstall and reinstall the app to get a new one. Save it in the merchant’s password manager before closing the tab.

Required scopes by resource

The token needs read + write for every enabled resource. Don’t grant more than the migration uses — narrow scopes are easier to audit and the merchant feels better about it.

ResourceScopes
Productwrite_products, write_inventory
Collectionwrite_products (collections live under products scope)
Customerwrite_customers
Orderwrite_orders, plus write_assigned_fulfillment_orders if shipments are migrated
Discount codewrite_discounts, write_price_rules
Gift cardwrite_gift_cards
Blogwrite_content
Marketwrite_markets
Redirectwrite_online_store_pages

Locations

If the merchant has more than one Shopify location, you’ll need to resync locations before the first load run so Graftport knows the location IDs to assign inventory to. The migration page has a Resync locations button under destination settings.

The default mapping assigns all inventory to the first active location. To split inventory across locations, fork the products mapping and emit per-location quantities.

Idempotency

Once a record is loaded, Graftport remembers its Shopify identity. The next load that targets the same record either:

  • Updates in place if the payload changed, or
  • Skips if the payload is unchanged.

This is what makes re-running a load on the same migration safe — Graftport won’t duplicate records.

Conflict strategy

When a record already exists on Shopify and the new payload differs, the conflict strategy decides what happens. See Runs → Conflict strategy.

Last updated on