SuperAPI AI 工具集

b2c-ordering

编程与开发

查看项目

更新于 10-16 01:09

技能介绍

用途:在 Salesforce B2C Commerce 中管理订单生命周期,包括从购物篮创建订单、状态流转、支付授权后下单、取消与失败处理,以及订单查询和自定义订单号。

订单状态:Basket → CREATED → NEW →(OPEN / COMPLETED / CANCELLED / FAILED)。CREATED 可转 NEW、FAILED;NEW 可转 OPEN、COMPLETED、CANCELLED、FAILED;OPEN 可转 COMPLETED、CANCELLED;COMPLETED 与 FAILED 为终态;CANCELLED 可经 undoCancel 回到 NEW。注意:订单一旦 FAILED 不可重开或取消,应使用 failOrder(order, true) 重开购物篮供重试。

主要能力:OrderMgr 提供 createOrder(basket)、createOrder(basket, orderNo)、createOrderNo()、createOrderSequenceNo() 创建;placeOrder、failOrder、cancelOrder、undoCancelOrder 管理状态;getOrder、searchOrder、searchOrders、queryOrder、queryOrders 查询。无 undoFailOrder()。查询需遍历迭代器并在结束后 close()。

使用方式:脚本 API 中,作者未提供事务时用 Transaction.wrap 包裹订单变更,先校验状态再流转;先完成支付授权再 placeOrder,成功后设置 confirmationStatus。SCAPI 流程用 Shopper Orders 状态机:POST 创建订单(CREATED),PATCH 支付工具触发 authorizeCreditCard 或 authorize,成功后经默认 afterPATCH 按覆盖金额自动放置。支付确定失败用 fail 动作并 reopenBasket=true;网关结果不确定时保留 CREATED 订单以便对账,避免重复授权。也可用 dw.ocapi.shop.order.afterPOST 单阶段创建、授权并放置,但该钩子在创建事务内运行,不要再嵌套 Transaction.wrap,且 Status.ERROR 会回滚 Commerce 订单但不回滚外部网关副作用。自定义订单号可用 dw.order.createOrderNo 钩子。

适用场景:结账实现、订单处理、支付失败重试与订单查询。

限制:失败订单不可重开;取消订单应先处理退款;避免订单长期停留 CREATED;需处理并发修改。SCAPI 失败原因码当前为 payment_auth_failure、payment_confirm_failure、payment_capture_failure,订单不可失败状态返回 409;生成版本相关代码前应确认最新 Shopper Orders schema。其他平台或收费信息暂未提供。