SuperAPI AI 工具集

spree-typescript-sdk

编程与开发

查看项目

更新于 10-15 23:57

技能介绍

用途:为 Spree 6 提供 TypeScript/JavaScript SDK,用于构建店铺前台、移动/网页应用或后台集成工具。三个包面向 Spree 6:@spree/sdk(Store API /api/v3/store,publishable key 加可选客户 JWT/访客 token,2.x 当前为 2.0 beta);@spree/admin-sdk(Admin API /api/v3/admin,secret key 或员工 JWT,1.x beta);@spree/seller-sdk(Seller API /api/v3/seller,Seller JWT 加 seller ID)。@spree/sdk-core 为内部共享 HTTP、重试与错误,不发布、不应导入。所有包共享 SpreeError、重试、幂等与 request 逃生口。Spree 6 前台需 @spree/sdk 2.x。安装可用 pnpm add @spree/sdk@beta 获取 beta 预发布;@spree/cli 与 create-spree-app 为稳定版。

主要能力:方法固定为 list/get/create/update/delete,嵌套资源以父 ID 开头,如 client.carts.items.create(cartId, body, options)。Store SDK 覆盖商品、分类、集合、卖家、市场/国家/货币/语言、购物车与结算、订单(含退货与索赔)、账户、愿望清单、双确认订阅、B2B 公司自助;部分端点可用 client.request 访问。Admin SDK 提供完整 CRUD 与领域操作(取消、批准、克隆、批量价格/库存、导出导入、Webhook 端点、API key 等)。子路径 @spree/sdk/types、/zod、/webhooks,Admin 与 Seller 也有 /types 及 /zod(1.0.0-beta.3 之后);zod(>=3)为可选 peer 依赖。

使用方式:客户端配置 baseUrl、publishableKey 与可选默认值,setLocale/setCurrency/setCountry/setChannel 改变后续请求默认值,每个实例独立。列表参数除 page/limit/sort/expand/fields 外会成为 q[...] Ransack 谓词,注意勿再嵌套 filter。客户令牌按请求传入 RequestOptions(token、spreeToken、idempotencyKey、headers)。结算通过 cart.requirements 驱动,carts.complete 返回 Order 或 OrderGroup,可用 isOrderGroup 收窄;确认页用 client.orders.get(cartId, {}, opts)。错误用 SpreeError 的 status/code/details。默认 2 次指数退避重试,遵守 Retry-After,变更请求自动带 Idempotency-Key,可配置或关闭。Admin 使用 secretKey 仅限服务端;员工 JWT 配合 setToken 与 onUnauthorized,JWT 5 分钟过期;多店用 setStore。Webhook 用 verifyWebhookSignature 校验签名(仅 Node),事件用 order.placed。自定义端点建议 client.request 或包装资源类,避免 fork 或裸 fetch。测试可配合 MSW。

限制:金额为字符串或 null,需处理 null 不要盲目 parseFloat;隐藏价格的渠道可能为 null。carts.get 在结算后 404,属预期。缺少权限时 ?expand 会被静默丢弃,secret key 缺少 scope 抛 403 并带 required_scope,且 scope 无法在已有 key 上编辑。Admin secretKey 不可用于浏览器。order.completed 为弃用别名,6.1 移除。文档、OpenAPI 与源码位置见资料,具体平台与收费信息暂未提供。