Acumatica:如何通过REST API覆盖销售订单的收单、收货地址
Acumatica销售订单自定义地址未生效排查方案
1. 检查是否传入地址覆盖标记
Acumatica默认优先调用客户ID关联的默认地址,仅传入地址字段不会生效,必须在对应地址节点下额外传入OverrideAddress = true开启手动覆盖:
- 账单地址(Bill-To):在
BillToAddress节点下添加OverrideAddress字段,值设为true - 收货地址(Ship-To):在
ShipToAddress节点下添加OverrideAddress字段,值设为true
REST API请求参数示例:
{ "OrderType": {"value": "SO"}, "OrderNbr": {"value": "NEW"}, "CustomerID": {"value": "对应客户ID"}, "BillToAddress": { "OverrideAddress": {"value": true}, "AddressLine1": {"value": "账单地址行1"}, "City": {"value": "账单城市"}, "State": {"value": "账单省份"}, "PostalCode": {"value": "账单邮编"} }, "ShipToAddress": { "OverrideAddress": {"value": true}, "AddressLine1": {"value": "收货地址行1"}, "City": {"value": "收货城市"}, "State": {"value": "收货省份"}, "PostalCode": {"value": "收货邮编"} } }
2. 检查系统配置与权限
如果传入覆盖标记后仍不生效,依次排查以下配置:
- 检查Acumatica客户管理模块的全局配置,是否开启了「禁止销售订单修改客户默认地址」的限制规则
- 检查集成所用账号的角色权限,是否开放了销售订单账单地址、收货地址的编辑权限
3. 检查API字段名匹配规则
不要根据UI显示的字段名构造请求参数,需要到你使用的Web服务端点(Web Service Endpoints)定义中,确认地址相关字段的准确API命名,部分自定义端点可能会将BillToAddress重命名为BillingAddress等其他名称。

内容的提问来源于stack exchange,提问作者Cyrus Rome Dela Cruz
相关产品推荐
相关产品推荐

