Shopify (as source)
Use this when the source store is itself a Shopify store. Common cases:
- Consolidations — merging two Shopify stores into one.
- Sandbox → production — moving a finished sandbox into the live store.
- Plus migrations — moving a non-Plus store onto a Plus organization with shared payments and customers.
Credentials
| Field | Example | Notes |
|---|---|---|
| Source shop domain | source-store.myshopify.com | Hostname only — no protocol, no trailing slash. Always the .myshopify.com form, not the custom domain. |
| Admin API access token | shpat_… | From a custom app installed on the source store. |
Required Admin API scopes
Install a custom app on the source store and grant read scopes for each resource you plan to migrate:
| Resource | Scope |
|---|---|
| Products, collections | read_products |
| Customers | read_customers |
| Orders | read_orders, read_all_orders |
| Discount codes | read_discounts, read_price_rules |
| Gift cards | read_gift_cards |
| Blogs, articles | read_content |
| Markets | read_markets |
| Redirects | read_online_store_pages |
You only need scopes for what’s enabled on the migration. Adding more later means re-issuing the token.
Quirks Graftport handles
- Pagination — Graftport pages through the source’s catalog automatically; no manual chunking needed.
- Rate limits — Graftport backs off and retries when Shopify throttles. You don’t need to babysit long extracts.
- Metafields come along automatically for every resource that supports them. The default mapping copies them by namespace; fork if the merchant needs renaming or filtering.
- Locales — primary locale only by default. Multi-locale stores need a fork that emits one Shopify Translation per non-primary locale.
Last updated on