办公文档
通过 Shopify Admin GraphQL API…
当需要向 Shopify 商店添加商品、批量导入目录、更新变体/价格、管理库存、上传图片或分配商品到集合时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
通过 Shopify Admin Gra特定
解决思路
- 收集商品数据:确定要创建或更新的内容,包括商品基础信息(title、description HTML、product type、vendor、tags)、变体(options、prices、SKUs、inventory quantities)、图片(URL 或本地文件)、SEO(page title、meta description、URL handle)以及组织信息(collections、product type、tags);数据可来自对话、CSV/表格文件或网站抓取。
- 根据场景选择方法:1-5 个商品用 GraphQL mutations;6-20 个商品用 GraphQL 加批处理;20+ 个商品用 admin 的 CSV 导入;更新已有商品用 GraphQL mutations;库存调整用 inventorySetQuantities mutation。
- 用 productCreate mutation 创建商品,传入 ProductCreateInput,包含 title、descriptionHtml、vendor、productType、tags、status、options、variants(含 optionValues、price、sku、inventoryPolicy、inventoryItem)和 seo 字段。
- 批量创建多个商品时按顺序逐个创建,并在每个之间加短暂延迟,以遵守 1,000 cost points/second 的速率限制。
- 用 productUpdate mutation 更新商品,Variables 中必须包含 id 以及要更新的字段。
- 用 productDelete mutation 删除商品,传入 ProductDeleteInput。
- 用 productVariantsBulkCreate mutation 向已有商品添加变体,传入 productId 和 variants 数组。
- 用 productVariantsBulkUpdate mutation 批量更新变体,传入 productId 和 variants 数组。
- 批量导入 20+ 商品时生成 CSV 并通过 Shopify admin 导入:使用规定的列格式(必填列 Handle、Title、Body (HTML)、Vendor、Product Category、Type、Tags、Published;变体列 Option1-3 Name/Value、Variant SKU、Variant Grams、Variant Inventory Qty、Variant Price、Variant Compare At Price、Variant Requires Shipping、Variant Taxable;图片列 Image Src、Image Position、Image Alt Text;SEO 列 SEO Title、SEO Description)。
- 多变体行格式:第一行包含商品标题和详情,同一商品的后续行只填 Handle 和变体相关列,其余留空。
- CSV 规则:必须 UTF-8 编码,最大 50MB,Handle 每个商品唯一(重复 Handle 会更新已有商品),变体行中不变的字段留空,图片可放在任意行并通过 Handle 关联,Published=TRUE 使商品立即可见。
- CSV 导入步骤:按列格式生成 CSV,如有 assets/product-csv-template.csv 模板则使用它,导航到 https://{store}.myshopify.com/admin/products/import,上传 CSV,查看预览并确认导入;必要时用浏览器自动化协助上传。
- 上传商品图片需两步:先用 stagedUploadsCreate mutation 获取 stagedTargets(url、resourceUrl、parameters),输入包含 filename、mimeType、httpMethod、resource=IMAGE;然后上传到 staged URL,再用 productCreateMedia mutation 附加媒体。
- 如果图片已托管在公开 URL,可在商品创建时直接在 images 数组中传 src 和 alt 作为快捷方式。
- 用 collectionAddProducts mutation 将商品分配到集合,传入 collection id 和 productIds;用 collections 查询获取集合 ID、title、handle、productsCount。
- 用 inventorySetQuantities mutation 设置库存,输入包含 reason、name=available、quantities 数组(含 inventoryItemId、locationId、quantity);用 locations 查询获取 location ID。
- 验证:用 products 查询回读创建的商品,确认 id、title、handle、status、productType、vendor、variants、images 等字段,并向用户提供 admin URL https://{store}.myshopify.com/admin/products 供其查看。
- 注意商品状态:新商品默认 DRAFT,要使其可见需设置 status=ACTIVE,设置 ACTIVE 前务必与用户确认。
- 注意变体限制:每个商品最多 100 个变体、3 个选项(如 Size、Colour、Material),超出需拆分为多个商品。
- 价格格式:价格是字符串不是数字,必须加引号,如 "price": "29.95" 而非 "price": 29.95。
- HTML 描述:商品描述接受 HTML,保持简单,支持 <p>、<strong>、<em>、<ul>、<ol>、<li>、<h2>-<h6>、<a href>;<img> 会被剥离,应改用商品图片。
- 50+ 商品通过 API 导入时使用 Shopify bulk operation:用 bulkOperationRunMutation mutation,传入 mutation 字符串和 stagedUploadPath,接受每行一个商品的 JSONL 文件,异步处理。
适用边界 · 注意事项
- 需要先配置 Admin API access token、商店 URL 和 API 版本(可通过 shopify-setup 技能配置),未配置时无法使用。
- 该技能标记为 claude-code-only,不适用于其他环境。