# Live Shopify dry-run smoke **Verdict: PASS (dry-run)** **Date:** 2026-08-04 **Tenant:** Local Demo Co (**Enterprise**) **Goose:** migration **017** applied (DB at version **18**) **API / worker:** restarted binaries with Shopify claim loop Native Admin API product push + orders pull exercised with access token `dry-run` (no Shopify.com network). ## Steps | Step | HTTP | Evidence | |------|-----:|----------| | `PUT /api/shopify` | **200** | `shop_domain=local-demo-co.myshopify.com`, `dry_run=true`, `is_enabled=true` | | `POST /api/shopify/test` | **200** | `status=ok`, `shop_name=Dry Run Shop`, `dry_run=true` | | `POST /api/shopify/sync` | **202** | product sync queued | | `POST /api/shopify/sync-orders` | **202** | orders sync queued | | Worker claim | — | `last_sync_status=success`, `last_orders_sync_status=success` | | `GET /api/shopify/orders?limit=5` | **200** | 1 dry-run order (`dry-run@example.com`, total `19.99`) | ## Notes - Real Shopify Admin API (non–dry-run) still needs a custom app token + `*.myshopify.com` shop; SSRF blocks private hosts. - Reviews are not supported (`reviews_supported=false`). - Catalog CSV/XML feed remains the recommended production ingest workaround when a live shop token is unavailable. See [shopify-connector.md](shopify-connector.md), [store-connectors.md](store-connectors.md).