// "Shopify platform development. Stack: Shopify CLI, GraphQL/REST APIs, Polaris UI, Liquid templating. Capabilities: app development (OAuth), checkout UI extensions, admin UI extensions, POS extensions, theme development, webhooks, billing API, product/order/customer management. Actions: build, extend, customize, integrate Shopify apps/themes. Keywords: Shopify, Shopify CLI, GraphQL Admin API, REST API, Polaris, Liquid, checkout extension, admin extension, POS extension, theme, webhook, billing API, OAuth, app bridge, metafields, product, order, customer, storefront, hydrogen, oxygen. Use when: building Shopify apps, customizing checkout, creating admin interfaces, developing themes, integrating payments, managing store data via APIs, extending Shopify functionality."
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | shopify |
| description | Shopify platform development. Stack: Shopify CLI, GraphQL/REST APIs, Polaris UI, Liquid templating. Capabilities: app development (OAuth), checkout UI extensions, admin UI extensions, POS extensions, theme development, webhooks, billing API, product/order/customer management. Actions: build, extend, customize, integrate Shopify apps/themes. Keywords: Shopify, Shopify CLI, GraphQL Admin API, REST API, Polaris, Liquid, checkout extension, admin extension, POS extension, theme, webhook, billing API, OAuth, app bridge, metafields, product, order, customer, storefront, hydrogen, oxygen. Use when: building Shopify apps, customizing checkout, creating admin interfaces, developing themes, integrating payments, managing store data via APIs, extending Shopify functionality. |
Comprehensive guide for building on Shopify platform: apps, extensions, themes, and API integrations.
Core Components:
Extension Points:
# Install Shopify CLI
npm install -g @shopify/cli@latest
# Verify installation
shopify version
# Initialize app
shopify app init
# Start development server
shopify app dev
# Generate extension
shopify app generate extension --type checkout_ui_extension
# Deploy
shopify app deploy
# Initialize theme
shopify theme init
# Start local preview
shopify theme dev
# Pull from store
shopify theme pull --live
# Push to store
shopify theme push --development
Setup:
shopify app init
cd my-app
Configure Access Scopes (shopify.app.toml):
[access_scopes]
scopes = "read_products,write_products,read_orders"
Start Development:
shopify app dev # Starts local server with tunnel
Add Extensions:
shopify app generate extension --type checkout_ui_extension
Deploy:
shopify app deploy # Builds and uploads to Shopify
Available Types:
checkout_ui_extensionadmin_actionadmin_blockpos_ui_extensionfunction (discounts, payment, delivery, validation)Workflow:
shopify app generate extension
# Select type, configure
shopify app dev # Test locally
shopify app deploy # Publish
Setup:
shopify theme init
# Choose Dawn (reference theme) or start fresh
Local Development:
shopify theme dev
# Preview at localhost:9292
# Auto-syncs to development theme
Deployment:
shopify theme push --development # Push to dev theme
shopify theme publish --theme=123 # Set as live
App + Theme Extension:
query GetProducts($first: Int!) {
products(first: $first) {
edges {
node {
id
title
handle
variants(first: 5) {
edges {
node {
id
price
inventoryQuantity
}
}
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
import { reactExtension, BlockStack, TextField, Checkbox } from '@shopify/ui-extensions-react/checkout';
export default reactExtension('purchase.checkout.block.render', () => <Extension />);
function Extension() {
const [message, setMessage] = useState('');
return (
<BlockStack>
<TextField label="Gift Message" value={message} onChange={setMessage} />
</BlockStack>
);
}
{% for product in collection.products %}
<div class="product-card">
<img src="{{ product.featured_image | img_url: 'medium' }}" alt="{{ product.title }}">
<h3>{{ product.title }}</h3>
<p>{{ product.price | money }}</p>
<a href="{{ product.url }}">View Details</a>
</div>
{% endfor %}
API Usage:
Security:
Performance:
Testing:
Detailed guides for advanced topics:
shopify_init.py - Initialize Shopify projects interactively
python scripts/shopify_init.py
Rate Limit Errors:
X-Shopify-Shop-Api-Call-Limit headerAuthentication Failures:
Extension Not Appearing:
Webhook Not Receiving:
Official Documentation:
Tools:
API Versioning:
Note: This skill covers Shopify platform as of January 2025. Refer to official documentation for latest updates.