Elena Vasquez
July 8, 2026 · 11 min read
Know the three API surfaces
The Storefront API serves your buyers — products, carts, checkout from any frontend. The Admin API serves your operations — products, orders, customers, inventory from your backend. GraphQL is the modern surface for both; REST remains supported but GraphQL is where new capabilities land.
Most integration mistakes come from using the wrong surface: pulling storefront data through admin calls, or vice versa.
Webhooks: the backbone of operational sync
Orders, inventory, and fulfillment events should flow through webhooks into your ERP or warehouse system — polled APIs are the failure mode.
Design for failure: queue the events, idempotently process them, and alert when a webhook stops arriving. Silent sync failure is how orders get lost.
Rate limits are a design constraint, not a footnote
The Admin API enforces per-minute throttles. Naive bulk syncs hit them on day one and break silently. Batch with query-level throttling and backoff, and test with your real catalog size.
Catalogs over ~50k SKUs need a sync architecture, not a script. Plan incremental syncs — full re-syncs only for reconciliation.
When to build a custom app
When no app covers the workflow and the workflow matters: custom admin pages, embedded operational tools, buyer-facing experiences the theme cannot express.
The build decision is the same as any software decision: does the outcome justify the maintenance? Custom apps are liabilities until they earn their keep.
Authentication and permission discipline
OAuth scopes grant real power — limit them to what the integration needs, rotate tokens, and audit access quarterly. The biggest Shopify security incidents are over-permissioned integrations.
Every legacy token you never revoked is a door someone else can eventually open.
Frequently asked questions
Topics