This is the same walkthrough we send to every merchant who emails us
asking what the wizard actually does. It maps every step in the
/start wizard to what is happening on our
end and what you need to do on yours. Read it once before you click
Start your migration.
Before you start: create a read-only Magento admin
The wizard needs a Magento admin account it can log into to read your
catalogue, customers, and orders. Create a fresh one rather than
sharing your own login — you can delete it the moment we are done.
In your Magento admin:
- System → User Roles → Add New Role. Name it
migration-read.
On the Role Resources tab, choose Custom and enable only
the view permissions you need (Catalog, Customers, Sales, Stores,
Content). No save / delete / write checkboxes.
- System → All Users → Add New User. Username
migration-read,
any password you like, role = the role you just created.
- Note the username and password. You will paste them into the
wizard.
If your store is behind a firewall or IP allow-list, allow our
migration runner's outbound IP for the duration of the build (we will
email you the IP once the request is in).
Step 0 — How this works
When you land on /start?source=magento, the first screen is a
read-once briefing: four cards explaining what the deal is. Read it,
click Get started.
We show this every time because the deal really is this simple, and
about half the merchants who land here have been quoted thousands by
other agencies and need a moment to recalibrate.
Step 1 — About you
Two required fields: your name and the email address you check daily.
The optional Role chips help us label the request internally — pick
whatever fits.
The email is where the staging link, payment link, and final transfer
confirmation will arrive. Pick an inbox you actually read. Shared
info@ aliases tend to lose the staging email in triage.
Step 2 — Connect Magento
This is the only step where typos cost you anything. The fields are:
- Magento store URL — your live admin domain. The wizard strips
https:// and any path, so you can paste either shop.example.com
or the full https://shop.example.com/admin/ and it will normalise
to a hostname before submitting.
- Admin username —
migration-read, the user you created above.
- Admin password — paste the password you set. It is stored
encrypted at rest with a per-merchant key, used only by the
migration runner, and we delete it on request after the migration
is finished.
- I confirm this admin account has read-only permissions —
check this. The wizard will not let you continue without it. We
read this as your standing instruction that we have permission to
log in once and pull data; we never write anything back.
When you click Continue, our backend probes your store at the
domain you gave us. We are not migrating anything yet — we just try to
log in. If we cannot, the wizard tells you why with a specific error
in front of the right field:
| Error | What we found |
|---|
"That doesn't look like a valid Magento store domain. Hostname only, no https://." | The URL did not parse. Strip the protocol and path. |
| "We couldn't reach that domain. Is the store online and resolvable on the public internet?" | DNS or a firewall blocked us. |
| "We couldn't log into Magento with those credentials." | Login form rejected the username/password. |
| "Magento rate-limited our login attempt. Wait a minute and try again." | Too many recent failed logins. Pause, retry. |
Fix the field, click Continue again. The probe re-runs.
Step 3 — Your new store
Three fields plus an optional one.
- Desired shop name — the subdomain we will reserve on
Shopify. Lowercase letters, numbers, and hyphens; 3 to 60
characters. The wizard pre-strips invalid characters as you type.
Pick something close to your live brand:
nordkap, vela-living,
acme-eu. The result will be <name>.myshopify.com. You can
attach a custom domain later — Shopify makes this trivial.
- Target country — sets the default tax, shipping, and address
formats on the new Shopify store.
- Default currency — auto-fills from the country, but you can
override (multi-currency stores typically pick the base currency
here and add the rest as Shopify Markets after launch).
- Notes for the migration (optional) — anything unusual about
your Magento data: custom attributes, weird taxonomies, multi-store
filters, legacy extensions. These notes are read by a human before
the build kicks off. We do not do design work, but data quirks are
fair game.
A representative note we found useful:
We use a custom 'kit-of-the-month' product attribute on bundles.
Two stores share the same Magento install. We only want products
from store_id=1.
Step 4 — Review & submit
The review screen lists every value you entered, with the password
masked. Read once, hit Submit & start migration.
Submitting does not charge anything. There is no card on file.
The €129 is charged the moment you click Pay €129 & transfer
store on the staging page, and only then.
You are redirected to your status page at /status/<token>. The URL
is unguessable; bookmark it.
What we do next
As soon as you submit, our pipeline runs through these phases. The
status page reflects each one in real time and polls every 10
seconds for updates. You can leave the tab open or come back later —
the URL is permanent.
- Received. Pipeline queued. Usually we start the build within
one business hour.
- Building (read). We log in to your Magento store with the
credentials you gave us, pull the catalogue, customers, orders,
categories, and the URL rewrite table. Read-only, single
connection.
- Building (transform). Magento's data shape (configurable
products with EAV attributes, customer groups, M1/M2 URL keys)
gets reshaped into Shopify's product/variant/metafield model.
- Building (load). A fresh Shopify development store is
created at
<your-name>.myshopify.com and every record we
pulled is pushed in. The status page shows a running counter:
records loaded, records failed, current phase.
- Ready for review. You get an email with a private staging
link. The status page flips to Ready to ship and the
transfer card appears with the €129 button.
Reviewing staging
Spot-check the things that matter to your team. There is no time
pressure: staging stays parked for 30 days. We send you exactly one
follow-up email, 14 days in, if there has been no movement. Never
sooner.
A useful order to walk through:
- Top 20 products. Open them on staging. Confirm title, price,
variants, images, and SEO copy match Magento.
- Sample 10 customers. Open their accounts. Confirm address
book, customer notes, and order count.
- Last 50 orders. Browse the orders list. Confirm order
numbers preserve their Magento sequence, totals match, and
refunds are present.
- Categories → Collections. Confirm the tree depth and the
hand-picked collections still hold the right products.
- URL Redirects. In Shopify Admin, Online Store →
Navigation → URL Redirects. Sample your top 50 ranking URLs
from Search Console; every one should resolve to the right
Shopify URL.
If anything is off, reply to the staging email. We re-run the
migration with corrections at no cost. Re-runs are safe: anything
already loaded is skipped on the next pass, so you do not get
duplicates. Mappings are versioned, so we can roll back to any
prior pass with one click.
Paying and transferring
When you are happy, click Pay €129 & transfer store on the
status page. Stripe handles the payment. Once it clears:
- The status page flips to Paid. Our team picks up the
transfer.
- We change the Shopify store owner email to yours and confirm
the transfer. Shopify emails you a one-time login link.
- The status page flips to Transferred. The card on the right
becomes Open Shopify admin with a direct deep-link.
From this point, you own the store. Theme, apps, and design choices
are yours. We will introduce you to a partner agency if you want
help with those, but they are not part of the €129.
Common questions we get on this flow
Will it disrupt my live Magento store? No. We open one read
session, pull data, and disconnect. Your live store keeps taking
orders the entire time.
What if I have multiple Magento storefronts on one install? Use
the Notes for the migration field on Step 3 to tell us which
store_id you want and whether you want the others to become
separate Shopify stores or land as Shopify Markets on the same
store. We will reply within a business day with a plan before
starting.
What if I have one Magento store but multiple brands across
several Magento installs? That is a multi-migration job, and the
self-serve Graftport platform is the better
shape for it. Email us first either way.
What about my customers' passwords? Shopify rotates the customer
authentication token between stores, so every customer has to do a
one-time password reset on the new Shopify store. We migrate the
account, the order history, and the marketing consent — only the
password rotates. Shopify auto-emails the reset link to every
customer when you launch.
What if I find something wrong on staging? Reply to the staging
email. We re-run with corrections, no charge. You only pay the €129
when you accept and transfer.
Where does my data live during the migration? EU-hosted
infrastructure. Source credentials are encrypted at rest with a
per-merchant key. Once the store is transferred, we delete the
credentials. The staging Shopify store is parked for 30 days, then
auto-deletes if untransferred.
Ready to start? Begin the wizard. About
two minutes of typing, and we will have a staging store in your inbox
when it is ready to look at.