用途:在已有 app.commerce.config.ts 的 Adobe Commerce 应用中配置 webhook 拦截器,拦截 Commerce 操作并在执行前后校验输入、追加数据或修改行为。事件、业务配置等其他扩展域需用各自技能单独添加。
前置条件:项目需同时具备项目根目录的 app.commerce.config.ts 和已初始化状态(存在生成的 src/commerce-extensibility-1/ 目录及已安装的 node_modules,即 @adobe/aio-commerce-lib-app 依赖)。配置缺失时先调用 commerce-app-init;已配置但未初始化时运行 npx @adobe/aio-commerce-lib-app init,该命令幂等。仅当项目具备 init 脚手架生成的 TypeScript 构建配置时才能用 TypeScript 编写 action,否则用 JavaScript。
主要能力与用法:向顶层 webhooks 数组追加条目(保留其他域)。需明确要拦截的 webhook_method 与 webhook_type(before/after),处理器可为应用内 runtime action 或外部 webhook.url,二者互斥;category 可选,为 validation、append 或 modification。batch_name 与 hook_name 仅允许字母数字下划线;label、description、webhook_type、method 必填,method 限 POST/PUT/DELETE/GET;timeout/soft_timeout/priority/batch_order 可选为正整数。可为条目设置环境范围 env(paas/saas),省略则适用全部环境。runtimeAction 的 <package>/<action> 对应 ext.config.yaml 中自定义包与 action,包名不可用保留的 app-management;action 函数路径相对于 src/commerce-extensibility-1/。处理器可用 @adobe/aio-commerce-lib-webhooks/responses 的 ok 配合 successOperation、exceptionOperation、addOperation、replaceOperation、removeOperation 返回允许、阻止、追加、替换或移除结果。
若 webhooks 是配置中首个需要安装的域,需重新运行 npx @adobe/aio-commerce-lib-app init 以生成安装 action,否则 Commerce 无端点可调用。最后用 aio app build 校验。
限制:未提供收费或价格信息;其余细节以实际项目为准。