Self-serve · Shopify Partner · EU-hosted

Move any store into Shopify.

Self-serve replatforming. Connect your store, review the mapping, dry-run on a sandbox, push every record to Shopify. Re-run on launch night with zero duplicates.

Get started Talk to sales
· Shopify, BigCommerce, WooCommerce, Magento· Cost before you start
magento logoshopify logoRunning
tessellate
magento.tessellate.eu → tessellate-eu.myshopify.com
Extract
48,210rows
2m 14s
Transform
48,210records
1m 02s
Load
31,884records
4m 38s
What we move

Every record that matters.
Nothing left behind.

Anything a Shopify store needs, lifted across with the right shape, the right relationships, and the right SEO. We move data and step out of the way. Theme, apps, and design choices are yours.

01
Products

Variants, options, images, SEO copy, inventory levels per location, every metafield.

Unlimited
02
Customers

Profiles, addresses, marketing consent, customer notes, store-credit balances.

Unlimited
03
Orders

Full history with line items, taxes, shipping, fulfillments, refunds, comments.

Unlimited
04
Categories

Mapped to Shopify collections. Manual and rule-based with parent / child preserved.

Unlimited
05
Discounts

Codes, automatic discounts, gift cards, expiry dates. Cart price rules where compatible.

Unlimited
06
301 Redirects

Every old URL kept alive on the new store. Zero SEO damage on launch day.

Unlimited
07
Blogs & pages

Every post and page intact, with their authors, tags, and original publish dates.

Unlimited
How it works

Four steps. Days, not months.
Re-run as many times as you want.

Step 1

Connect a source store

Read-only credentials for Shopify, BigCommerce, WooCommerce, or Magento. Your live store keeps running. We never write back.

Step 2

Review the mapping

Start from a per-platform template. Tweak any field. Version every change. Dry-run on a sandbox before any record ships.

Step 3

Load to Shopify

Push every record into a fresh Shopify store. Already-loaded records are skipped. Errors are click-through, not buried in a log file.

Step 4

Re-run on go-live

Same migration, run again on launch night. Pulls only what changed. Zero duplicates, zero gaps, full rollback one click away.

Field mappings

Bend any field into the shape
Shopify wants.

Every mapping starts from a per-platform template. Tweak any field with JSONata, and your client gets exactly the data they want, not whatever the source happened to store. Combine fields, fall back, normalize units, derive new values, drop into metafields. Dry-run on real source rows, see the exact Shopify result, then publish a new version. Or hand the whole loop to a coding agent — the Graftport CLI and skill let Claude Code, Cursor, Windsurf, or Copilot drive it, with every costly step still gated on you.

ProductOverride · Version 4magento → shopify
Source rowentity_id 12481
{
"entity_id": "12481",
"sku": "VLA-2025-OAK",
"name": "Oak Side Table",
"weight": "12.5",
"weight_unit": "kg",
"status": "1",
"tags": "furniture,oak,living",
"stock": [
{ "loc": "berlin", "qty": 4 },
{ "loc": "antwerp", "qty": 11 }
]
}
JSONataEdit any field
{
"title": name,
"sku": sku,
"status": status = "1"
? "ACTIVE"
: "DRAFT",
"weight_g": weight_unit = "kg"
? $number(weight) * 1000
: $number(weight),
"tags": $split(tags, ', '),
"inventory": $sum(stock.qty)
}
OutputWhat Shopify gets
{
"title": "Oak Side Table",
"sku": "VLA-2025-OAK",
"status": "ACTIVE",
"weight_g": 12500,
"tags": [
"furniture",
"oak",
"living"
],
"inventory": 15
}
Evaluated against entity_id 12481dry-run, then publish v5

Live preview, real rows

Pick any source record, see the JSONata output exactly as it'll land in Shopify. No guesswork, no ship-it-and-pray.

Versioned, never destructive

Every publish is a new immutable version. Roll back to any prior version with one click. Re-run picks up the change on the next load.

From simple to surgical

Use the template untouched, or rewrite a single field, or transform every field. Pay the complexity only when you need it.

Compare

The narrow path
through this whole mess.

Graftport
DIY in-house
Migration agency
Time to first migration
Hours
2 to 4 weekends
3 to 6 weeks of intake
Multiple brands at once
Unlimited
One at a time
Only if staffed
Mappings you can review
Versioned, dry-runnable
Buried in scripts
In the agency repo
Re-run safely, no duplicates
Built in
DIY
Quoted
Cost before you start
Quoted up front
Per record
Hourly billing
Rollback
One click
DB restore
Quoted
Pricing · closed beta

Quoted to the migration.

We're onboarding a small group of agencies and brands while we harden the platform. Tell us what you're moving and we come back with a proposal — and a beta invitation code — within one business day.

Beta

Multi-brand replatforming

By invitation
Unlimited brands and migrations on one account
Every source platform (Shopify, BigCommerce, WooCommerce, Magento)
Dry-run any change on a sandbox before it ships
Hands-on support through the first migration during the beta
EU-hosted. Strict separation between brands. Full audit trail.
One Magento store and want it done for you? Graftport Move migrates a single Magento store to Shopify for €129 fixed, paid only when you accept the result.
Security

Your data is borrowed,
not stored.

Source store credentials are the most sensitive thing a merchant ever hands over. We treat them like radioactive material. Minimum exposure, automatic disposal, per-tenant boundaries from day one.

Read-only by design

We only ever request view permissions on your source store. No code path in our system writes back to Magento, Shopify, BigCommerce, or WooCommerce sources.

Per-account encryption

Source store credentials are encrypted at rest with keys derived per account. Decrypted only inside the automated pipeline runtime.

Strict brand separation

Every brand on your account lives in its own audit boundary. No tenant can read another tenant's data, ever.

EU-hosted, GDPR-friendly

Your data stays in the EU. No transfers to US analytics pipelines. One-click wipe of everything we created in Shopify, on request.

FAQ

Common
questions.

Do not see yours? Email hello@graftport.com. We read every message.

Shopify (re-platform / consolidate / split a multi-store), BigCommerce, WooCommerce, and Magento (1.7+ and 2.x). Anything else can be loaded via CSV. Each source has a per-platform guide with a ready-to-use field mapping.

Stop dreading the switch.
Start the migration.

Connect a source store, dry-run end to end, see the exact Shopify result before a single record lands. The same platform your team will use on go-live night.

Get started