shopify
Build Shopify applications, extensions, and themes using GraphQL/REST APIs, Shopify CLI, Polaris UI components, and Liquid templating. Capabilities …
它会碰到什么
逐条看命中(30 条严重或高危)
- 严重
scripts/shopify_init.py:33cred-pathsLoad environment variables from .env file.
- 严重
scripts/shopify_init.py:36cred-pathsfilepath: Path to .env file
- 严重
scripts/shopify_init.py:60cred-pathsGet list of .env file paths in priority order.
- 严重
scripts/shopify_init.py:62cred-pathsPriority: process.env > skill/.env > skills/.env > .claude/.env
- 严重
scripts/shopify_init.py:62cred-pathsPriority: process.env > skill/.env > skills/.env > .claude/.env
- 严重
scripts/shopify_init.py:62cred-pathsPriority: process.env > skill/.env > skills/.env > .claude/.env
- 严重
scripts/shopify_init.py:68cred-pathsList of .env file paths
- 严重
scripts/shopify_init.py:72cred-paths# skill/.env
- 严重
scripts/shopify_init.py:73cred-pathsskill_env = skill_dir / '.env'
- 严重
scripts/shopify_init.py:77cred-paths# skills/.env
- 严重
scripts/shopify_init.py:78cred-pathsskills_env = skill_dir.parent / '.env'
- 严重
scripts/shopify_init.py:82cred-paths# .claude/.env
- 严重
scripts/shopify_init.py:83cred-pathsclaude_env = skill_dir.parent.parent / '.env'
- 严重
scripts/shopify_init.py:94cred-pathsPriority: process.env > skill/.env > skills/.env > .claude/.env
- 严重
scripts/shopify_init.py:94cred-pathsPriority: process.env > skill/.env > skills/.env > .claude/.env
- 严重
scripts/shopify_init.py:94cred-pathsPriority: process.env > skill/.env > skills/.env > .claude/.env
- 严重
scripts/shopify_init.py:104cred-paths# Load from .env files (reverse priority order)
- 严重
scripts/tests/test_shopify_init.py:25cred-paths"""Test loading valid .env file."""
- 严重
scripts/tests/test_shopify_init.py:26cred-pathsenv_file = tmp_path / ".env"
- 严重
scripts/tests/test_shopify_init.py:43cred-paths"""Test loading .env file with quoted values."""
- 严重
scripts/tests/test_shopify_init.py:44cred-pathsenv_file = tmp_path / ".env"
- 严重
scripts/tests/test_shopify_init.py:56cred-paths"""Test loading non-existent .env file."""
- 严重
scripts/tests/test_shopify_init.py:61cred-paths"""Test loading .env file with invalid lines."""
- 严重
scripts/tests/test_shopify_init.py:62cred-pathsenv_file = tmp_path / ".env"
- 严重
scripts/tests/test_shopify_init.py:76cred-paths"""Test getting .env file paths."""
- 严重
scripts/tests/test_shopify_init.py:84cred-paths# Create .env files
- 严重
scripts/tests/test_shopify_init.py:85cred-paths(skill_dir / ".env").write_text("SKILL=1") - 严重
scripts/tests/test_shopify_init.py:86cred-paths(skills_dir / ".env").write_text("SKILLS=1") - 严重
scripts/tests/test_shopify_init.py:87cred-paths(claude_dir / ".env").write_text("CLAUDE=1") - 严重
scripts/tests/test_shopify_init.py:92cred-pathsassert skill_dir / ".env" in paths
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
Shopify Development
Comprehensive guide for building on Shopify platform: apps, extensions, themes, and API integrations.
Platform Overview
Core Components:
- Shopify CLI - Development workflow tool
- GraphQL Admin API - Primary API for data operations (recommended)
- REST Admin API - Legacy API (maintenance mode)
- Polaris UI - Design system for consistent interfaces
- Liquid - Template language for themes
Extension Points:
- Checkout UI - Customize checkout experience
- Admin UI - Extend admin dashboard
- POS UI - Point of Sale customization
- Customer Account - Post-purchase pages
- Theme App Extensions - Embedded theme functionality
Quick Start
Prerequisites
# Install Shopify CLI
npm install -g @shopify/cli@latest
# Verify installation
shopify version
Create New App
# 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
Theme Development
# 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
Development Workflow
1. App 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
2. Extension Development
Available Types:
- Checkout UI -
checkout_ui_extension - Admin Action -
admin_action - Admin Block -
admin_block - POS UI -
pos_ui_extension - Function -
function(discounts, payment, delivery, validation)
Workflow:
shopify app generate extension
# Select type, configure
shopify app dev # Test locally
shopify app deploy # Publish
3. Theme Development
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
When to Build What
Build an App When:
- Integrating external services
- Adding functionality across multiple stores
- Building merchant-facing admin tools
- Managing store data programmatically
- Implementing complex business logic
- Charging for functionality
Build an Extension When:
- Customizing checkout flow
- Adding fields/features to admin pages
- Creating POS actions for retail
- Implementing discount/payment/shipping rules
- Extending customer account pages
Build a Theme When:
- Creating custom storefront design
- Building unique shopping experiences
- Customizing product/collection pages
- Implementing brand-specific layouts
- Modifying homepage/content pages
Combination Approach:
App + Theme Extension:
- App handles backend logic and data
- Theme extension provides storefront UI
- Example: Product reviews, wishlists, size guides
Essential Patterns
GraphQL Product Query
query GetProducts($first: Int!) {
products(first: $first) {
edges {
node {
id
title
handle
variants(first: 5) {
edges {
node {
id
price
inventoryQuantity
}
}
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
Checkout Extension (React)
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>
);
}
Liquid Product Display
{% 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 %}
Best Practices
API Usage:
- Prefer GraphQL over REST for new development
- Request only needed fields to reduce costs
- Implement pagination for large datasets
- Use bulk operations for batch processing
- Respect rate limits (cost-based for GraphQL)
Security:
- Store API credentials in environment variables
- Verify webhook signatures
- Use OAuth for public apps
- Request minimal access scopes
- Implement session tokens for embedded apps
Performance:
- Cache API responses when appropriate
- Optimize images in themes
- Minimize Liquid logic complexity
- Use async loading for extensions
- Monitor query costs in GraphQL
Testing:
- Use development stores for testing
- Test across different store plans
- Verify mobile responsiveness
- Check accessibility (keyboard, screen readers)
- Validate GDPR compliance
Reference Documentation
Detailed guides for advanced topics:
- [App Development](references/app-development.md) - OAuth, APIs, webhooks, billing
- [Extensions](references/extensions.md) - Checkout, Admin, POS, Functions
- [Themes](references/themes.md) - Liquid, sections, deployment
Scripts
[shopify_init.py](scripts/shopify_init.py) - Initialize Shopify projects interactively
python scripts/shopify_init.py
Troubleshooting
Rate Limit Errors:
- Monitor
X-Shopify-Shop-Api-Call-Limitheader - Implement exponential backoff
- Use bulk operations for large datasets
Authentication Failures:
- Verify access token validity
- Check required scopes granted
- Ensure OAuth flow completed
Extension Not Appearing:
- Verify extension target correct
- Check extension published
- Ensure app installed on store
Webhook Not Receiving:
- Verify webhook URL accessible
- Check signature validation
- Review logs in Partner Dashboard
Resources
Official Documentation:
- Shopify Docs: https://shopify.dev/docs
- GraphQL API: https://shopify.dev/docs/api/admin-graphql
- Shopify CLI: https://shopify.dev/docs/api/shopify-cli
- Polaris: https://polaris.shopify.com
Tools:
- GraphiQL Explorer (Admin → Settings → Apps → Develop apps)
- Partner Dashboard (app management)
- Development stores (free testing)
API Versioning:
- Quarterly releases (YYYY-MM format)
- Current: 2025-01
- 12-month support per version
- Test before version updates
Note: This skill covers Shopify platform as of January 2025. Refer to official documentation for latest updates.
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。