ekx-shopifylisted
Install: claude install-skill Ekinoxis-evm/claude-skills
# Shopify
The commerce backbone behind our storefronts and store operations.
There are bundled `shopify-admin` / `shopify-dev` skills in this installation — those are
authoritative for API detail. This file records our integration patterns.
---
## Environment
```bash
SHOPIFY_STORE_DOMAIN= # your-store.myshopify.com
SHOPIFY_ADMIN_ACCESS_TOKEN= # SECRET shpat_…
SHOPIFY_API_VERSION= # e.g. 2025-07 — PIN IT
SHOPIFY_CLIENT_ID=
SHOPIFY_CLIENT_SECRET= # SECRET
SHOPIFY_WEBHOOK_SECRET= # SECRET
```
⚠️ Both `SHOPIFY_ADMIN_ACCESS_TOKEN` and `SHOPIFY_ADMIN_TOKEN` are in circulation.
Standardise on `SHOPIFY_ADMIN_ACCESS_TOKEN`.
**Pin the API version.** Shopify deprecates quarterly. An unpinned client silently
follows the newest version and breaks on a schedule you do not control.
---
## Admin GraphQL
REST Admin is legacy; use GraphQL for everything new.
```ts
async function shopify<T>(query: string, variables?: object): Promise<T> {
const res = await fetch(
`https://${process.env.SHOPIFY_STORE_DOMAIN}/admin/api/${process.env.SHOPIFY_API_VERSION}/graphql.json`,
{
method: "POST",
headers: {
"X-Shopify-Access-Token": process.env.SHOPIFY_ADMIN_ACCESS_TOKEN!,
"Content-Type": "application/json",
},
body: JSON.stringify({ query, variables }),
},
);
const json = await res.json();
if (json.errors) throw new Error(JSON.stringify(json.errors));
// userErrors live INSIDE data on mutations —