Your data goes into a database schema you can read and query.
Test each step against a copy of the database first.
Connect Shopify with Admin OAuth and pull products, variants, options, and images across. Each run is recorded as an ImportRun with per-record results, so a partial import is visible rather than mysterious.
Images land in your own S3 bucket and stay associated with the products that use them. Nothing depends on a CDN you don't control.
Customers, historical orders, and reviews are ordinary inserts against a documented Prisma schema. Write the script once, run it against a copy, then run it for real.
Problems show up during the import, not weeks afterwards.
Know these before you start.
Postgres, Redis, S3, and the deploy target become yours to run and back up. That is the trade for owning the system.
Browsing and carts work without it, but taking money means your own Stripe account and keys.
Anything niche you relied on a paid app for is now something you build, integrate, or do without.