Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Build Shopify applications, extensions, and themes using GraphQL/REST APIs, Shopify CLI, Polaris UI components, and Liquid templating. Capabilities include app development with OAuth authentication, checkout UI extensions for customizing checkout flow, admin UI extensions for dashboard integration, POS extensions for retail, theme development with Liquid, webhook management, billing API integration, product/order/customer management. Use when building Shopify apps, implementing checkout customiz
.claude/skills/microck-shopify/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 142% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 73% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 56% | 0% |
| case-13 | ✓→✓ | = Same ✓ | 54% | 0% |
| case-01 | ✓→✓ | = Same ✓ | 99% | 0% |
Comprehensive guide for building on Shopify platform: apps, extensions, themes, and API integrations.
Core Components:
Extension Points:
bash# Install Shopify CLI npm install -g @shopify/cli@latest # Verify installation shopify version
bash# 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
bash# 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:
bashshopify app init cd my-app
Configure Access Scopes (shopify.app.toml):
toml[access_scopes] scopes = "read_products,write_products,read_orders"
Start Development:
bashshopify app dev # Starts local server with tunnel
Add Extensions:
bashshopify app generate extension --type checkout_ui_extension
Deploy:
bashshopify app deploy # Builds and uploads to Shopify
Available Types:
checkout_ui_extensionadmin_actionadmin_blockpos_ui_extensionfunction (discounts, payment, delivery, validation)Workflow:
bashshopify app generate extension # Select type, configure shopify app dev # Test locally shopify app deploy # Publish
Setup:
bashshopify theme init # Choose Dawn (reference theme) or start fresh
Local Development:
bashshopify theme dev # Preview at localhost:9292 # Auto-syncs to development theme
Deployment:
bashshopify theme push --development # Push to dev theme shopify theme publish --theme=123 # Set as live
App + Theme Extension:
graphqlquery GetProducts($first: Int!) { products(first: $first) { edges { node { id title handle variants(first: 5) { edges { node { id price inventoryQuantity } } } } } pageInfo { hasNextPage endCursor } } }
javascriptimport { 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> ); }
liquid{% 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
bashpython 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.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-13 | pass→pass | 13,675 | 11,265 | -18% | 1 | 1 | 0% | 2,323 | 3,577 | +54% | 0 | 0 | — |
case-01 | pass→pass | 13,849 | 6,151 | -56% | 1 | 1 | 0% | 1,391 | 2,765 | +99% | 0 | 0 | — |
case-02 | fail→pass | 6,123 | 5,435 | -11% | 1 | 1 | 0% | 1,009 | 2,440 | +142% | 0 | 0 | — |
case-03 | pass→pass | 9,577 | 11,755 | +23% | 1 | 1 | 0% | 1,479 | 2,676 | +81% | 0 | 0 | — |
case-04 | fail→pass | 10,084 | 7,799 | -23% | 1 | 1 | 0% | 1,837 | 3,182 | +73% | 0 | 0 | — |
case-05 | pass→pass | 11,096 | 6,379 | -43% | 1 | 1 | 0% | 1,794 | 2,667 | +49% | 0 | 0 | — |
case-06 | pass→pass | 9,475 | 4,473 | -53% | 1 | 1 | 0% | 1,458 | 2,422 | +66% | 0 | 0 | — |
case-07 | pass→pass | 3,117 | 2,909 | -7% | 1 | 1 | 0% | 519 | 2,151 | +314% | 0 | 0 | — |
case-08 | pass→pass | 4,232 | 3,508 | -17% | 1 | 1 | 0% | 822 | 2,281 | +177% | 0 | 0 | — |
case-09 | fail→fail | 7,951 | 7,945 | -0% | 1 | 1 | 0% | 1,527 | 3,126 | +105% | 0 | 0 | — |
case-10 | pass→pass | 4,501 | 7,132 | +58% | 1 | 1 | 0% | 851 | 2,933 | +245% | 0 | 0 | — |
case-11 | pass→pass | 15,219 | 11,460 | -25% | 1 | 1 | 0% | 2,265 | 3,704 | +64% | 0 | 0 | — |
case-12 | fail→pass | 13,292 | 9,211 | -31% | 1 | 1 | 0% | 2,108 | 3,285 | +56% | 0 | 0 | — |
case-14 | pass→pass | 8,596 | 4,722 | -45% | 1 | 1 | 0% | 1,574 | 2,476 | +57% | 0 | 0 | — |
case-15 | pass→pass | 4,994 | 2,943 | -41% | 1 | 1 | 0% | 799 | 2,104 | +163% | 0 | 0 | — |
case-16 | pass→pass | 13,765 | 9,717 | -29% | 1 | 1 | 0% | 2,229 | 3,148 | +41% | 0 | 0 | — |
case-17 | pass→pass | 4,079 | 5,168 | +27% | 1 | 1 | 0% | 581 | 2,513 | +333% | 0 | 0 | — |
case-18 | pass→pass | 8,374 | 11,821 | +41% | 1 | 1 | 0% | 1,447 | 3,811 | +163% | 0 | 0 | — |
case-19 | pass→pass | 4,388 | 2,941 | -33% | 1 | 1 | 0% | 732 | 2,120 | +190% | 0 | 0 | — |
case-20 | pass→pass | 4,005 | 5,007 | +25% | 1 | 1 | 0% | 703 | 2,518 | +258% | 0 | 0 | — |
case-21 | pass→pass | 10,547 | 10,624 | +1% | 1 | 1 | 0% | 1,896 | 3,545 | +87% | 0 | 0 | — |
case-22 | pass→pass | 4,228 | 4,853 | +15% | 1 | 1 | 0% | 762 | 2,647 | +247% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +14 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.