Skip to main content
Shopify → MySQL

Sync Shopify to MySQL
without writing a line of code.

Pipe Shopify orders, products, customers, and inventory into MySQL — described in plain English. Source-available, self-hosted, customer PII excluded by default.

TL;DR

rsync.ai's Shopify connector uses the Admin GraphQL API (v2024-10) to extract 6 resources — orders, products, customers, collections, inventory_items, shop — and upserts them into MySQL on the schedule you set. Customer email, phone, and addresses are omitted from default queries. Works with MySQL 5.7+, RDS, Aurora, Cloud SQL, Azure Database, and PlanetScale.

  • Plain-English pipeline setup — no YAML, no DAGs
  • Scheduled batch sync (every minute / hour / day)
  • Customer PII (email, phone, addresses) excluded from default queries
  • Source-available under Elastic License 2.0 — self-hosted
See other destinations
How it works

How to sync Shopify to MySQL — 5 steps

From chat prompt to rows in MySQL — a few minutes for a small store.

  1. 1

    Connect your Shopify store

    Provide your Shopify store subdomain (e.g. acme.myshopify.com) and a Shopify Admin API access token — custom-app token or OAuth-issued. The header `X-Shopify-Access-Token` is the only credential rsync.ai uses.

    shop + access_token
  2. 2

    Connect your MySQL database

    Provide host, port, user, password — or paste a connection string. rsync.ai supports MySQL 5.7+, MariaDB, Amazon RDS, Google Cloud SQL, Azure Database for MySQL, and PlanetScale.

    mysql://user:pass@host:3306/db
  3. 3

    Describe the sync in plain English

    Type what you want: 'Sync orders, products, customers, and inventory from Shopify to MySQL every 15 minutes.' rsync.ai discovers your Shopify schema (6 resources) and proposes target tables.

    No SQL · No YAML · No DAGs
  4. 4

    Pick the tables and approve

    rsync.ai shows the 6 discovered Shopify resources with column counts and row estimates. Tick the ones you want, approve the proposed MySQL DDL. Nothing moves until you do.

  5. 5

    Run on a schedule

    Pipeline runs on the cadence you set. Each run paginates Shopify with cursors, upserts into MySQL on primary key, and resumes cleanly on transient errors. Watch live row counts and audit history in the UI.

    End-to-end small-store sync: minutes, not seconds

Shopify → MySQL schema mapping

Standard mapping rsync.ai proposes. You can customize column names, types, and nullable fields before approving.

Shopify resourceMySQL tableNotes
OrderordersEmbedded line items (first 10 per order) — customer/email/address fields excluded
ProductproductsEmbedded variants (first 5 per product)
CustomercustomersPII-free by default: only id, timestamps, order metrics, tags
CollectioncollectionsIncludes productsCount, ruleSet
InventoryIteminventory_itemsEmbedded inventory_levels per location (first 5)
ShopshopSingleton — 57 columns including plan, currency, timezone

rsync.ai vs. Fivetran, Airbyte, Zapier for Shopify → MySQL

What you give up — and gain — choosing rsync.ai.

Feature
rsync.aiyou
Fivetran
Airbyte
Zapier
Plain-English pipeline setup
Scheduled Shopify → MySQL sync
Source-available connector code (auditable)
Shopify customer PII excluded by default
Self-hosted MySQL writes
No per-MAR / per-row pricing
Resumable cursor pagination

Shopify to MySQL — frequently asked

How long does the first Shopify → MySQL sync take?

For a small dev store (a few hundred rows across 6 resources), the full chain — chat prompt, schema discovery, table selection, sync — completes in roughly five minutes wall-clock. Larger stores scale with row count and Shopify's GraphQL cost throttle; the connector paginates with cursors and resumes from the last cursor if interrupted.

Does rsync.ai support real-time Shopify → MySQL replication?

Not today — the Shopify connector is scheduled batch only (cursor-paginated GraphQL polls on the cadence you set). Webhook-based real-time CDC is on the roadmap. For most stores under ~10k orders/day a 1–5 minute schedule is functionally indistinguishable from real-time.

Which MySQL flavors are supported?

MySQL 5.7+, MySQL 8.0+, MariaDB 10.3+, Amazon RDS for MySQL, Amazon Aurora MySQL, Google Cloud SQL for MySQL, Azure Database for MySQL, and PlanetScale. SSL/TLS and SSH tunneling are supported.

Does Shopify customer PII end up in my MySQL database?

By default, no. The Shopify connector's GraphQL Orders query omits customer, email, phone, billing_address, and shipping_address fields. The Customers query returns only id, timestamps, order metrics, and tags — no email, phone, or addresses. The fields aren't fetched, so they can't land in MySQL. If you need them, you can customize the GraphQL query in your self-hosted deployment.

What happens to Shopify line items in MySQL?

The connector embeds the first 10 line items per order into the order's GraphQL response. Each line item carries id, title, quantity, and original unit price. Today they land as a JSON column on the orders table; a fully-normalized line_items table is on the roadmap.

Can I sync incremental changes only, not the full history?

Yes — the GraphQL queries accept a `query` parameter (e.g., `updated_at:>2026-05-01`) and the orchestrator persists cursors so each scheduled run continues from where the last one left off. The first run is a full backfill, every run after is incremental.

How does rsync.ai handle Shopify rate limits when writing to MySQL?

Shopify's GraphQL Admin API uses a cost-point throttle (server-side bucket). The connector requests up to 250 nodes per page (Shopify's hard cap), and on throttle/transient errors it retries with backoff and resumes from the saved cursor. MySQL writes are batched and use upsert on primary key, so a retried page never produces duplicates.

Is rsync.ai self-hosted for Shopify → MySQL?

Yes. The full stack runs on your own infrastructure via `docker compose up`. Shopify access tokens and MySQL credentials live in a Postgres control plane you also host — nothing leaves your network. License is Elastic License 2.0 (free to self-host, can't be resold as a managed service).

What does it cost to sync Shopify to MySQL?

Source-available under Elastic License 2.0. No per-row, per-MAR, or per-connector fees from rsync.ai — you pay only for the compute you run it on. A single 4-core VM handles a typical Shopify store comfortably.

How is rsync.ai different from Fivetran or Airbyte for Shopify to MySQL?

Fivetran charges per-MAR (monthly active rows) — expensive at scale, and you can't audit the connector code. Airbyte requires connector configuration and DAG management. rsync.ai is plain-English (LLM-driven pipeline planner), source-available, self-hostable, and exposes Shopify as MCP tools that any LLM agent can call — useful if you're building your own AI workflows on top.