关于 shoplazza-webhook
这是用于通过 Shoplazza CLI 管理店铺事件 Webhook 订阅的技能,涵盖专属命令与安全步骤;通用 CLI 机制由 shoplazza-common 负责。
主要功能
- 01创建和列出 Webhook 订阅
- 02按可选条件统计订阅数
- 03查询、更新和删除 Webhook
- 04创建时要求事件主题和 HTTPS 地址
- 05删除前执行确认安全流程
适用场景
- 01订单发货时通知指定端点
- 02商品变更时接收通知
- 03查看或统计现有事件订阅
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ shoplazza/ shoplazza-cli --skill shoplazza-webhook安装后在 Claude Code 中输入/shoplazza-webhook确认已加载。
详细介绍
shoplazza CLI — webhook 模块
重要——在进行任何操作之前,先使用 Read 读取 ../shoplazza-common/SKILL.md。
其中定义了所有跨领域机制:访问层级、输出封装(.data)、--dry-run、
--jq、schema、api rest、身份验证 / 配置文件以及安全协议。本文件仅介绍
webhook 领域,不会重复这些内容。
概述
webhook 模块用于管理事件订阅:webhook 将商店的事件主题(例如
orders/create)绑定到一个地址(平台在事件触发时调用的 HTTPS 端点)。
它仅包含规范命令,不提供 +shortcuts。支持完整的 CRUD 操作及计数。
命令映射
意图 → 命令。权威参数 / 请求体请参阅 shoplazza schema webhook.<cmd>。
| 用户意图 | 命令 |
|---|---|
| 订阅事件(创建) | webhook create --data '{"webhook":{"topic":"<event>","address":"<https-url>"}}' |
| 列出所有 webhook | webhook list |
| 统计 webhook 数量(可选筛选) | webhook count --params '{"address":"<url>","topic":"<event>"}'(参数可选) |
| 获取单个 webhook | webhook get --params '{"id":"<id>"}' |
| 更新 webhook 的地址 / 主题 | webhook update --params '{"id":"<id>"}' --data '{"webhook":{"address":"<url>","topic":"<event>"}}' |
删除 webhook(有破坏性 → 先使用 --dry-run) | webhook delete --params '{"id":"<id>"}' --dry-run |
事件主题格式如 orders/create、orders/fulfilled、products/update 等。无法从二进制文件中查询完整的主题列表——请通过 shoplazza schema webhook.create / Open Platform 文档确认主题;不要自行编造。
处理请求
- 将意图匹配到规范命令(这里没有快捷命令)。
create需要两个必填字段——如果缺少任何一个,请使用AskUserQuestion询问,绝不要编造:事件主题和地址(HTTPS 端点)。对于update/get/delete,必须提供 webhook 的id。- 提供必填字段后,可直接执行
create/update(订阅不会转移资金);仅当用户提出要求时才先使用--dry-run。 delete具有破坏性——它会立即停止事件传递且无法撤销。请遵循 shoplazza-common 安全协议:先使用--dry-run,重新说明要删除的具体订阅(主题 + 地址,而不只是 ID),然后停止并等待用户同意。
适用范围
看起来像事件 / 订单 / 商品任务,但实际上属于此模块:
| 看起来像订单 / 商品需求 | 实际归属 | 命令 |
|---|---|---|
| “订单发货后自动通知我的系统” / 订单发货时通知我的系统 | 此处(webhook)——这是一个订阅 | webhook create --data '{"webhook":{"topic":"orders/fulfilled",…}}' |
| “商品更新时通知我” / 商品更新时通知我 | 此处(webhook) | webhook create --data '{"webhook":{"topic":"products/update",…}}' |
订阅事件属于 webhook,而非 orders/products 命令。(用于处理
event-webhook 路由冲突。)
权限 · 范围
授权按领域划分。授权:auth login --domain webhook。使用 shoplazza auth scopes 查询确切的范围字面值。
注意事项
仅限领域特有规则(通用规则见 shoplazza-common)。
| 现象 | 原因 | 解决方法 |
|---|---|---|
猜测的 topic 被拒绝 | 二进制文件的帮助信息中未列出主题枚举值 | 通过 schema webhook.create / Open Platform 文档确认;不确定时询问用户——不要编造 |
create 失败 | webhook 请求体中的 topic 和 address 都是必填项 | --data '{"webhook":{"topic":"…","address":"…"}}' |
address 被拒绝 | 端点必须是可访问的 HTTPS URL | 提供完整的 https:// URL |
示例
# 1. Subscribe: push order-created events to an endpoint
webhook create --data '{"webhook":{"topic":"orders/create","address":"https://api.myapp.com/hooks/orders"}}'
# 2. List current subscriptions
webhook list
# 3. Update a webhook's address
webhook update --params '{"id":"246"}' --data '{"webhook":{"address":"https://new.example.com/hook"}}'
# 4. Delete a subscription: look up what it is, preview, then STOP for the user's go-ahead
webhook get --params '{"id":"135"}' --jq '.data.webhook | {topic, address}'
webhook delete --params '{"id":"135"}' --dry-run
# 5. Count webhooks pointing at an address
webhook count --params '{"address":"https://api.myapp.com/hooks"}'
参考资料
- 各命令的标志:
shoplazza webhook <cmd> --help - 参数 / 请求体 / 响应:
shoplazza schema webhook.<cmd> - 跨领域机制(身份验证 / 层级 / 输出封装 /
--dry-run/ 安全):../shoplazza-common/SKILL.md