关于 pp-shopify
pp-shopify 是驱动 shopify-pp-cli 的技能,为需要以只读方式检查、导出和分析 Shopify 商店数据的团队与 Agent 提供命令行入口。它涵盖订单、客户、产品、库存和履约,并提供本地数据分析及面向 Agent 的结构化输出。
主要功能
- 01查询订单、客户、产品与库存
- 02检查弃购和履约订单
- 03本地同步数据与来源标记
- 04自然语言查询匹配命令
- 05JSON 输出、字段筛选与交付
适用场景
- 01分析弃购以规划挽回活动
- 02检查库存数量和商品目录
- 03发现延迟履约与运输异常
- 04生成每日经营简报和客户分群
MCP 相关
README 提供 shopify-pp-mcp 的安装与 Claude Code 注册步骤。MCP 客户端可通过该服务器使用 Shopify CLI 功能。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mvanhorn/ printing-press-library --skill pp-shopify安装后在 Claude Code 中输入/pp-shopify确认已加载。
详细介绍
Shopify — Printing Press CLI
前提条件:安装 CLI
此技能由 shopify-pp-cli 二进制文件驱动。**调用此技能中的任何命令之前,必须确认 CLI 已安装。**如果尚未安装,请先安装:
- 使用 Printing Press 安装程序安装。在 macOS/Linux 上,二进制文件默认安装到
$HOME/.local/bin;在 Windows 上,默认安装到%LOCALAPPDATA%\Programs\PrintingPress\bin:npx -y @mvanhorn/printing-press-library install shopify --cli-only - 验证:
shopify-pp-cli --version - 确保所报告的安装目录位于将调用此技能的 Agent/运行时的
$PATH中。
如果 npx 安装失败(没有 Node、处于离线状态等),请改用直接 Go 安装(需要 Go 1.26.6 或更高版本):
go install github.com/mvanhorn/printing-press-library/library/commerce/shopify/cmd/shopify-pp-cli@latest
如果安装后 --version 报告“command not found”,则运行时无法在 $PATH 中找到二进制文件目录。验证成功之前,请勿执行技能命令。
何时不使用此 CLI
对于需要创建、更新、删除、发布、评论、点赞、邀请、下单、发送消息、预订、购买或更改远程状态的请求,请勿启用此 CLI。此 CLI 仅提供用于检查、导出、同步和分析的只读命令。
命令参考
abandoned-checkouts — Shopify 弃购结账数据,可用于恢复营销活动和流失购物车分析。
shopify-pp-cli abandoned-checkouts get— 根据 GraphQL ID 获取一条 Shopify 弃购结账记录。shopify-pp-cli abandoned-checkouts list— 从 Shopify Admin GraphQL API 列出弃购结账记录。
customers — Shopify 客户数据,包含终身订单数、终身消费金额和联系信息字段。
shopify-pp-cli customers get— 根据 GraphQL ID 获取一位 Shopify 客户。shopify-pp-cli customers list— 从 Shopify Admin GraphQL API 列出客户。
fulfillment-orders — Shopify 履行订单,可用于分析延迟、路由和履行状态。
shopify-pp-cli fulfillment-orders get— 根据 GraphQL ID 获取一条 Shopify 履行订单。shopify-pp-cli fulfillment-orders list— 从 Shopify Admin GraphQL API 列出履行订单。
inventory-items — Shopify 库存项目,包含跟踪状态以及各地点的可用数量。
shopify-pp-cli inventory-items get— 根据 GraphQL ID 获取一项 Shopify 库存项目。shopify-pp-cli inventory-items list— 从 Shopify Admin GraphQL API 列出库存项目。
orders — Shopify 订单,包含金额总计、财务状态和履行状态。
shopify-pp-cli orders get— 根据 GraphQL ID 获取一笔 Shopify 订单。shopify-pp-cli orders list— 从 Shopify Admin GraphQL API 列出订单。
products — Shopify 商品,包含商品状态、目录元数据和精简的变体库存概览。
shopify-pp-cli products get— 根据 GraphQL ID 获取一件 Shopify 商品。shopify-pp-cli products list— 从 Shopify Admin GraphQL API 列出商品。
新鲜度约定
此打印版 CLI 仅为已注册的、由存储支持的读取命令路径提供有界新鲜度。在 --data-source auto 模式下,这些路径会检查 sync_state,并可能在读取本地数据前执行有界刷新。--data-source local 永不刷新。--data-source live 从 API 读取,且不会修改本地存储。设置 SHOPIFY_NO_AUTO_REFRESH=1 可跳过新鲜度钩子,而不更改数据源选择。
覆盖的路径:
shopify-pp-cli abandoned-checkoutsshopify-pp-cli abandoned-checkouts getshopify-pp-cli abandoned-checkouts listshopify-pp-cli abandoned-checkouts searchshopify-pp-cli customersshopify-pp-cli customers getshopify-pp-cli customers listshopify-pp-cli customers searchshopify-pp-cli fulfillment-ordersshopify-pp-cli fulfillment-orders getshopify-pp-cli fulfillment-orders listshopify-pp-cli fulfillment-orders searchshopify-pp-cli inventory-itemsshopify-pp-cli inventory-items getshopify-pp-cli inventory-items listshopify-pp-cli inventory-items searchshopify-pp-cli ordersshopify-pp-cli orders getshopify-pp-cli orders listshopify-pp-cli orders searchshopify-pp-cli productsshopify-pp-cli products getshopify-pp-cli products listshopify-pp-cli products search
当 JSON 输出使用生成的来源信息信封时,新鲜度元数据位于 meta.freshness。请将其视为此覆盖命令路径的当前缓存新鲜度,而不是完整历史回填或特定于 API 的数据增强保证。
查找合适的命令
当你知道想做什么,但不知道该用哪个命令时,可以直接询问 CLI:
shopify-pp-cli which "<capability in your own words>"
which 会根据自然语言功能查询,从此 CLI 精选的功能索引中解析出最匹配的命令。退出代码 0 表示至少有一个匹配项;退出代码 2 表示没有可信的匹配项——请改用 --help,或缩小查询范围。
手写扩展
这些命令由规范作者声明,需要单独手写接线;生成器不会为它们生成 Cobra 注册代码。此处列出这些命令以便查找,并刻意将它们放在 ## Command Reference 之外,这样 verify-skill 的未知命令检查就不会将其视为生成器负责的路径。
shopify-pp-cli bulk-operations— 执行、轮询并检查 Shopify Admin GraphQL 批量操作。shopify-pp-cli store daily-brief— 基于本地存储中的营收、热门产品、风险检查和建议操作生成每日高管简报。shopify-pp-cli store audit— 根据退款、履约风险、配送异常和滞销库存计算健康评分。shopify-pp-cli growth campaign-brief— 根据热门产品、VIP 和召回机会生成数据支持的营销活动简报。shopify-pp-cli growth winback-candidates— 按客户终身价值及建议的召回方式,对沉寂客户进行排序。shopify-pp-cli growth vip-segments— 根据消费额、频率和最近消费时间对高价值客户分群。shopify-pp-cli ops fulfillment-risk— 查找超过指定时限的未完成履约订单。shopify-pp-cli ops shipping-anomalies— 根据已同步的配送明细,查找免费、缺失或费用过高的配送费。shopify-pp-cli merchandising bundle-opportunities— 根据共同购买提升幅度和置信度推荐捆绑销售组合。shopify-pp-cli merchandising dead-stock-actions— 将近期无销售的库存转化为降价或捆绑销售操作。shopify-pp-cli merchandising launch-brief— 根据本地证据为产品制定上市或重新上市简报。
身份验证设置
运行 shopify-pp-cli auth setup,打印获取密钥的 URL 和步骤(添加 --launch 可打开该 URL)。然后设置:
export SHOPIFY_ACCESS_TOKEN="<your-key>"
或者将其持久化到 ~/.config/shopify-pp-cli/config.toml。
运行 shopify-pp-cli doctor 验证设置。
Agent 模式
在任何命令后添加 --agent。它会展开为:--json --compact --no-input --no-color --yes。
-
可通过管道传递 — JSON 输出到 stdout,错误输出到 stderr
-
可筛选 —
--select保留部分字段。点分路径可深入嵌套结构;数组会逐项遍历。对于冗长 API,这对控制上下文大小至关重要:shopify-pp-cli abandoned-checkouts list --agent --select id,name,status -
可预览 —
--dry-run显示请求,但不会发送 -
适合离线使用 — 在本地 SQLite 存储可用时,同步/搜索命令可以使用它
-
非交互式 — 绝不提示输入,所有输入都通过标志提供
-
只读 — 请勿使用此 CLI 执行创建、更新、删除、发布、评论、点赞、邀请、下单、发送或其他会更改数据的请求
响应封装
从本地存储或 API 读取数据的命令会将输出封装在来源信息中:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}
解析 .results 获取数据,并查看 .meta.source 判断数据来自实时 API 还是本地存储。只有当 stdout 是终端,且未设置任何机器可读格式标志(--json、--csv、--compact、--quiet、--plain、--select)时,才会将易读的 N results (live) 摘要输出到 stderr。管道/Agent 消费者和显式指定格式的运行会在 stdout 输出纯 JSON。
Agent 反馈
当你(或 Agent)发现此 CLI 有任何不妥之处时,请记录下来:
shopify-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
shopify-pp-cli feedback --stdin < notes.txt
shopify-pp-cli feedback list --json --limit 10
条目会保存在本地 ~/.local/share/shopify-pp-cli/feedback.jsonl。除非设置了 SHOPIFY_FEEDBACK_ENDPOINT,并且传入了 --send 或设置了 SHOPIFY_FEEDBACK_AUTO_SEND=true,否则绝不会通过 POST 发送。默认仅保存在本地。
记录让你感到意外的事,而不是提交错误报告。简短、具体,用一行写清楚:这才是能不断累积价值的部分。
输出传递
每个命令都接受 --deliver <sink>。除了输出到 stdout(或替代 stdout),命令还会将结果发送到指定的接收端,让 Agent 无需手动通过管道即可路由命令结果。支持三种接收端:
| 接收端 | 效果 |
|---|---|
stdout | 默认;仅写入 stdout |
file:<path> | 以原子方式将输出写入 <path>(临时文件 + 重命名) |
webhook:<url> | 将输出正文 POST 到该 URL(使用 application/json;传入 --compact 时使用 application/x-ndjson) |
遇到未知方案时会拒绝请求,并返回列出受支持方案的结构化错误。Webhook 失败时会返回非零退出码,并在 stderr 记录 URL 和 HTTP 状态码。
命名配置
配置是已保存的一组标志值,可在多次调用中重复使用。如果计划任务中的 Agent 每次运行都以相同配置调用同一命令,可使用配置——这就是 HeyGen 的“Beacon”模式。
shopify-pp-cli profile save briefing --json
shopify-pp-cli --profile briefing abandoned-checkouts list
shopify-pp-cli profile list --json
shopify-pp-cli profile show briefing
shopify-pp-cli profile delete briefing --yes
显式标志的优先级始终高于配置值;配置值优先级高于默认值。agent-context 会在 available_profiles 下列出所有可用配置,方便 Agent 在运行时发现它们。
退出代码
| 代码 | 含义 |
|---|---|
| 0 | 成功 |
| 2 | 用法错误(参数错误) |
| 3 | 未找到资源 |
| 4 | 需要身份验证 |
| 5 | API 错误(上游问题) |
| 7 | 触发速率限制(等待后重试) |
| 10 | 配置错误 |
参数解析
解析 $ARGUMENTS:
- 为空、
help或--help→ 显示shopify-pp-cli --help的输出 - 以
install开头 → 以mcp结尾 → 安装 MCP;否则 → 参见上方的先决条件 - 其他任何内容 → 直接使用(作为 CLI 命令执行,并添加
--agent)
安装 MCP 服务
- 安装 MCP 服务:
go install github.com/mvanhorn/printing-press-library/library/commerce/shopify/cmd/shopify-pp-mcp@latest - 在 Claude Code 中注册:
claude mcp add shopify-pp-mcp -- shopify-pp-mcp - 验证:
claude mcp list
直接使用
- 检查是否已安装:
which shopify-pp-cli如果未找到,请提供安装选项(参见本技能顶部的先决条件)。 - 根据用户查询,从上方的独特功能和命令参考中选择最合适的命令。
- 使用
--agent标志执行:shopify-pp-cli <command> [subcommand] [args] --agent - 如果有歧义,请查看子命令帮助:
shopify-pp-cli <command> --help。