Shopify logo

Shopify

Community
einverne
shopify

Guide for implementing Shopify apps, extensions, themes, and integrations using GraphQL/REST APIs, Shopify CLI, Polaris UI, and various extension types (Checkout, Admin, POS). Use when building Shopify apps, implementing checkout extensions, customizing admin interfaces, creating themes with Liquid, or integrating with Shopify's APIs.

Overview

Publishereinverne
Repositorydotfiles
Skill nameshopify
Stars
121
Forks
24
Bundled files
4
LicenseGPL-3.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 4 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by einverne on GitHub. Read the source before you install it.

Installation

Install the Shopify AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/einverne/dotfiles.git /tmp/dotfiles
mkdir -p .claude/skills
cp -r /tmp/dotfiles/claude/skills/shopify .claude/skills/shopify
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Shopify in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Shopify on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Shopify is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Shopify Development

This skill provides comprehensive guidance for building on the Shopify platform, including apps, extensions, themes, and API integrations.

When to Use This Skill

Use this skill when you need to:

  • Build Shopify apps (public or custom)
  • Create checkout, admin, or POS UI extensions
  • Develop themes using Liquid templating
  • Integrate with Shopify APIs (GraphQL Admin API, REST API, Storefront API)
  • Implement Shopify Functions (discounts, payments, delivery, validation)
  • Build headless storefronts with Hydrogen
  • Configure webhooks and metafields
  • Use Shopify CLI for development workflows

Core Platform Components

1. Shopify CLI

Installation:

bash
npm install -g @shopify/cli@latest

Essential Commands:

  • shopify app init - Create new app
  • shopify app dev - Start local development server
  • shopify app deploy - Deploy app to Shopify
  • shopify app generate extension - Add extension to app
  • shopify theme dev - Preview theme locally
  • shopify theme pull/push - Sync theme files

For detailed CLI reference, see reference/cli-commands.md

2. GraphQL Admin API (Recommended)

Primary API for new development. Efficient, type-safe, flexible.

Endpoint:

https://{shop-name}.myshopify.com/admin/api/2025-01/graphql.json

Authentication:

javascript
headers: {
  'X-Shopify-Access-Token': 'your-access-token',
  'Content-Type': 'application/json'
}

Common Operations:

  • Query products, orders, customers, inventory
  • Create/update/delete resources via mutations
  • Bulk operations for large datasets
  • Real-time data with subscriptions

For comprehensive GraphQL reference, see reference/graphql-admin-api.md

3. REST Admin API (Maintenance Mode)

Use only for legacy systems. Shopify recommends GraphQL for all new development.

Base URL:

https://{shop-name}.myshopify.com/admin/api/2025-01/{resource}.json

Rate Limits:

  • Standard: 2 requests/second
  • Plus: 4 requests/second

4. UI Frameworks

Polaris (React)

Design system for consistent Shopify UI:

bash
npm install @shopify/polaris
Polaris Web Components

Framework-agnostic components:

html
<script src="https://cdn.shopify.com/shopifycloud/polaris.js"></script>

Extension Types

Checkout UI Extensions

Customize checkout experience with native-rendered components.

Generate:

bash
shopify app generate extension --type checkout_ui_extension

Configuration: shopify.extension.toml

Common Components: View, BlockStack, InlineLayout, Button, TextField, Checkbox, Banner

For detailed extension reference, see reference/ui-extensions.md

Admin UI Extensions

Extend Shopify admin interface.

Types:

  • App blocks (embedded in native pages)
  • App overlays (modal experiences)
  • Links (product/collection/order pages)

POS Extensions

Customize Point of Sale experience.

Types:

  • Smart Grid Tiles (quick access actions)
  • Modals (dialogs and forms)
  • Cart modifications (custom discounts/line items)

Post-Purchase Extensions

Upsell offers after checkout completion.

Target: purchase.thank-you.block.render

Customer Account UI Extensions

Customize post-purchase account pages.

Targets: Account overview, order status/index

Shopify Functions

Serverless backend customization running on Shopify infrastructure.

Function Types:

  • Discounts: Cart, product, shipping, order discounts
  • Payment customization: Hide/rename/reorder payment methods
  • Delivery customization: Custom shipping options
  • Order routing: Fulfillment location rules
  • Validation: Cart and checkout business rules
  • Fulfillment constraints: Bundle shipping rules

Languages: JavaScript, Rust, AssemblyScript

Generate:

bash
shopify app generate extension --type function

Theme Development

Liquid Templating

Core Concepts:

  • Objects: {{ product.title }} - Output dynamic content
  • Filters: {{ product.price | money }} - Transform data
  • Tags: {% if %} {% for %} {% case %} - Control flow

Common Objects:

  • product - Product data
  • collection - Collection data
  • cart - Shopping cart
  • customer - Customer account
  • shop - Store information

Architecture:

  • Layouts: Base templates
  • Templates: Page structures
  • Sections: Reusable content blocks (Online Store 2.0)
  • Snippets: Smaller components

Development:

bash
shopify theme dev    # Local preview
shopify theme pull   # Download from store
shopify theme push   # Upload to store

Authentication & Security

OAuth 2.0 Flow

For public apps accessing merchant stores:

  1. Redirect merchant to authorization URL
  2. Merchant approves access
  3. Receive authorization code
  4. Exchange code for access token
  5. Store token securely

Access Scopes

Request minimum permissions needed:

  • read_products - View products
  • write_products - Modify products
  • read_orders - View orders
  • write_orders - Modify orders

Full scope list: https://shopify.dev/api/usage/access-scopes

Session Tokens

For embedded apps in Shopify admin using App Bridge.

Webhooks

Real-time event notifications from Shopify.

Configuration: shopify.app.toml

Common Topics:

  • orders/create, orders/updated, orders/paid
  • products/create, products/update, products/delete
  • customers/create, customers/update
  • app/uninstalled

GDPR Mandatory Webhooks:

  • customers/data_request
  • customers/redact
  • shop/redact

Metafields

Custom data storage for extending Shopify resources.

Owners: Products, variants, customers, orders, collections, shop

Types: text, number, date, URL, JSON, file_reference

Access: Admin API, Storefront API, Liquid templates

Best Practices

Performance

  • Use GraphQL instead of REST for efficiency
  • Request only needed fields in queries
  • Implement pagination for large datasets
  • Use bulk operations for batch processing
  • Respect rate limits (cost-based for GraphQL)

User Experience

  • Follow Polaris design guidelines
  • Implement loading states
  • Provide clear error messages
  • Support keyboard navigation
  • Test across devices

Security

  • Store API credentials securely
  • Use environment variables for tokens
  • Implement webhook verification
  • Follow OAuth best practices
  • Request minimal access scopes

Code Quality

  • Use TypeScript for type safety
  • Write comprehensive error handling
  • Implement retry logic with exponential backoff
  • Log errors for debugging
  • Keep dependencies updated

Testing

  • Use development stores for testing
  • Test across different store plans
  • Verify webhook handling
  • Test app uninstall flow
  • Validate GDPR compliance

Development Workflow

  1. Initialize App:

    bash
    shopify app init
  2. Configure Access Scopes: Edit shopify.app.toml:

    toml
    [access_scopes]
    scopes = "read_products,write_products"
  3. Start Development Server:

    bash
    shopify app dev
  4. Generate Extensions:

    bash
    shopify app generate extension
  5. Test in Development Store: Install app on test store

  6. Deploy to Production:

    bash
    shopify app deploy

Common Patterns

Fetch Products (GraphQL)

graphql
query {
  products(first: 10) {
    edges {
      node {
        id
        title
        handle
        variants(first: 5) {
          edges {
            node {
              id
              price
              inventoryQuantity
            }
          }
        }
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}

Create Product (GraphQL)

graphql
mutation {
  productCreate(input: {
    title: "New Product"
    productType: "Clothing"
    variants: [{
      price: "29.99"
      sku: "SKU123"
    }]
  }) {
    product {
      id
      title
    }
    userErrors {
      field
      message
    }
  }
}

Checkout Extension (React)

javascript
import { useState } from 'react';
import {
  render,
  BlockStack,
  TextField,
  Checkbox,
  useApi
} from '@shopify/ui-extensions-react/checkout';

function Extension() {
  const { extensionPoint } = useApi();
  const [checked, setChecked] = useState(false);

  return (
    <BlockStack>
      <TextField label="Gift Message" />
      <Checkbox checked={checked} onChange={setChecked}>
        This is a gift
      </Checkbox>
    </BlockStack>
  );
}

render('Checkout::Dynamic::Render', () => <Extension />);

Resources

Documentation

Tools

  • GraphiQL Explorer: Built into Shopify admin
  • Shopify CLI: Development workflow
  • Partner Dashboard: App management
  • Development stores: Free testing environments

Learning

  • Shopify Developer Changelog: API updates and deprecations
  • Built for Shopify: Quality program for apps
  • Community forums: Help and discussions

Reference Documentation

This skill includes detailed reference documentation:

Troubleshooting

Common Issues

Rate Limit Errors:

  • Monitor X-Shopify-Shop-Api-Call-Limit header
  • Implement exponential backoff
  • Use bulk operations for large datasets

Authentication Failures:

  • Verify access token is valid
  • Check required scopes are granted
  • Ensure OAuth flow completed correctly

Webhook Not Receiving Events:

  • Verify webhook URL is accessible
  • Check webhook signature validation
  • Review webhook logs in Partner Dashboard

Extension Not Appearing:

  • Verify extension target is correct
  • Check extension is published
  • Ensure app is installed on store

Version Management

Shopify uses quarterly API versioning (YYYY-MM format):

  • Current: 2025-01
  • Each version supported for 12 months
  • Test updates before quarterly releases
  • Use version-specific endpoints

App Distribution

Custom Apps

Single merchant installation, no review required.

Public Apps

App Store listing with Shopify review:

  • Follow app requirements
  • Complete Built for Shopify criteria
  • Define pricing model
  • Submit for review

Note: This skill covers the Shopify platform as of January 2025. Always refer to official Shopify documentation for the latest updates and API versions.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Shopify AI skill do?

Guide for implementing Shopify apps, extensions, themes, and integrations using GraphQL/REST APIs, Shopify CLI, Polaris UI, and various extension types (Checkout, Admin, POS). Use when building Shopify apps, implementing checkout extensions, customizing admin interfaces, creating themes with Liquid, or integrating with Shopify's APIs.

Why use Shopify on TypingMind?

Because you install it once and use it with any model. Shopify is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Shopify in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/einverne/dotfiles/tree/master/claude/skills/shopify. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Shopify?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Shopify?

As many as you like. As long as a model supports skills, you can use Shopify with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Shopify AI skill free?

Yes. It is published on GitHub by einverne under the GPL-3.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇