Magento
Magento 2.3 and 2.4 are supported. Graftport authenticates using an admin username and password and then talks to the standard Admin REST API.
Credentials
The migration wizard asks for three fields:
| Field | Example | Notes |
|---|---|---|
| Store domain | magento2-b2b.example.com | Hostname only — no protocol, no trailing slash. |
| Admin username | graftport-readonly | Use a dedicated admin user, not a person’s account. |
| Admin password | … | Stored encrypted at rest. Update from the migration’s Settings when it rotates. |
Don’t reuse the merchant’s day-to-day admin login. Create a service account so the merchant can revoke Graftport specifically without locking themselves out.
Required permissions
Create a Magento admin user with a custom role that grants read access to:
- Catalog — products, attributes, categories, prices.
- Customers — accounts, addresses.
- Sales — orders, invoices, shipments, credit memos.
- Marketing — cart price rules (discount codes), gift cards.
- Content — blocks, pages (used for blog content if migrated).
- Stores — store views, websites (used for market mapping).
The user does not need write or admin permissions. Read-only is sufficient for everything Graftport does on the source side.
Quirks Graftport handles
- Configurable products vs simple products — the default mapping template flattens configurable + child simples into a single Shopify product with variants.
- Multi-store views — Graftport extracts the default store view’s values; per-locale overrides need a forked mapping today.
- Image base URLs — pulled from the store’s media URL; if the
merchant uses a CDN with a different host, override the
images[].srcline in the products mapping. - Stock per source — the default mapping sums quantities across Magento sources into a single Shopify location. Use a fork if the merchant maintains separate Shopify locations.
Validating the connection
The fastest way to verify credentials is to start an extract-only
run with products enabled. Graftport pulls a small page first; if
auth fails you’ll see the error on the run item within seconds.
See Runs → Phases for what extract-only does and doesn’t do.