You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

管理员如何更新Salesforce Commerce Cloud发货订单的自定义字段?求可用API

更新Salesforce Commerce Cloud发货单自定义字段的方法与可用API

一、手动更新(适用于少量发货单)

  • 登录SFCC Business Manager,进入订单管理模块
  • 定位目标订单,进入详情页后切换到发货单标签页
  • 找到对应发货单,点击编辑按钮
  • 在自定义字段区域直接修改值,保存即可

二、API批量更新(适用于大量发货单)

SFCC提供两种核心API方案处理批量更新需求:

1. OCAPI(Open Commerce API)- 订单管理端点

通过OCAPI的订单管理接口可直接更新发货单自定义属性,核心端点:
PATCH /orders/{order_no}/shipments/{shipment_id}

请求示例(JSON格式):

{
  "custom": {
    "your_custom_field_name": "new_target_value",
    "another_custom_field": "updated_content"
  }
}
  • 权限配置:需在OCAPI设置中为API客户端开启orders.shipments.patch的访问权限
  • 批量处理流程:先调用GET /orders获取所有订单列表,再遍历每个订单调用GET /orders/{order_no}/shipments获取对应发货单,最后逐个发起PATCH请求完成更新

2. 服务器端Script API(适合批量作业)

如果需要通过定时任务执行大规模更新,可使用SFCC的SSJS脚本API:

示例代码:

var OrderMgr = require('dw/order/OrderMgr');
var shipmentIterator;

// 可添加过滤条件,比如只处理已发货订单
var orderIterator = OrderMgr.queryOrders('status = {0}', 'creationDate desc', 'SHIPPED');

while (orderIterator.hasNext()) {
    var order = orderIterator.next();
    var shipments = order.getShipments();
    for (var i = 0; i < shipments.length; i++) {
        var shipment = shipments[i];
        // 更新自定义字段
        shipment.custom.your_custom_field = 'batch_updated_value';
        // 保存修改
        shipment.update();
    }
}

orderIterator.close();
  • 执行方式:将代码封装为自定义作业,在Business Manager的作业调度中配置定时执行
  • 注意:测试环境验证后再部署到生产,可添加订单状态、时间范围等过滤条件缩小处理范围

三、关键注意事项

  • 自定义字段需提前在Business Manager的订单设置 > 自定义属性中完成发货单字段定义
  • OCAPI调用需注意速率限制,批量操作时建议控制请求频次
  • 生产环境操作前务必备份数据,避免误操作影响业务

内容的提问来源于stack exchange,提问作者Anurag Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 22:44:55