17.5.0 版本为订单、退货单和客户对账单补充了客户往来自定义字段能力,并新增自定义字段元数据查询接口。GET /openApiV2/Common/CustomizeFieldList,供调用方查询字段 ID、名称、业务层级、字段类型和单选项。id/name/value/select_id,调用方展示字段名称时无需再次查询。POST /openApiV2/Order/Createcustomize_fieldscustomize_type=3CustomizeFieldInput[]17.5.0 新增commodity_list[].customize_fieldscustomize_type=4CustomizeFieldInput[]17.5.0 新增GET /openApiV2/Order/pageListdata.list[].customize_fieldscustomize_type=3CustomizeFieldValue[]17.5.0 新增GET /openApiV2/Order/detaildata.order.customize_fieldscustomize_type=3CustomizeFieldValue[]17.5.0 新增data.commodity_list[].customize_fieldscustomize_type=4CustomizeFieldValue[]17.5.0 新增POST /openApiV2/Order/Modifycustomize_fieldscustomize_type=3CustomizeFieldInput[]17.5.0 新增commodity_list[].customize_fieldscustomize_type=4CustomizeFieldInput[]17.5.0 新增null 表示不修改;显式传 [] 表示清空该层级手工字段;传非空数组时按字段 ID 与已有手工字段合并,未提交的已有字段保留POST /openApiV2/OrderReturn/Createcustomize_fieldscustomize_type=17CustomizeFieldInput[]17.5.0 新增commodity_list[].customize_fieldscustomize_type=18CustomizeFieldInput[]17.5.0 新增GET /openApiV2/OrderReturn/pageListdata.list[].customize_fieldscustomize_type=17CustomizeFieldValue[]17.5.0 新增GET /openApiV2/OrderReturn/detaildata.order.customize_fieldscustomize_type=17CustomizeFieldValue[]17.5.0 新增data.detail[].customize_fieldscustomize_type=18CustomizeFieldValue[]17.5.0 新增POST /openApiV2/OrderReturn/editcustomize_fieldscustomize_type=17CustomizeFieldInput[]17.5.0 新增commodity_list[].customize_fieldscustomize_type=18CustomizeFieldInput[]17.5.0 新增null 表示不修改;显式传 [] 表示清空该层级手工字段GET /openApiV2/AccountBill/PageListdata.list[].order_customize_fieldscustomize_type=3;无关联订单或无字段时为空数组CustomizeFieldValue[]17.5.0 新增data.list[].return_customize_fieldscustomize_type=17;非退货/退款来源或无字段时为空数组CustomizeFieldValue[]17.5.0 新增data.list[].account_bill_customize_fieldscustomize_type=6;无字段时为空数组CustomizeFieldValue[]17.5.0 新增customize_fields 按来源切换字段层级GET /openApiV2/AccountBill/Detaildata.order.order_customize_fieldscustomize_type=3;无关联订单或无字段时为空数组CustomizeFieldValue[]17.5.0 新增data.order.return_customize_fieldscustomize_type=17;非退货/退款来源或无字段时为空数组CustomizeFieldValue[]17.5.0 新增data.order.account_bill_customize_fieldscustomize_type=6;无字段时为空数组CustomizeFieldValue[]17.5.0 新增data.bill_item[].order_commodity_customize_fieldscustomize_type=4;无关联订单商品或无字段时为空数组CustomizeFieldValue[]17.5.0 新增data.bill_item[].return_commodity_customize_fieldscustomize_type=18;非退货来源、仅退款或无字段时为空数组CustomizeFieldValue[]17.5.0 新增customize_fields 按来源切换字段层级GET /openApiV2/Common/CustomizeFieldListcustomize_type3、4、6、17、1817.5.0 新增data[].id17.5.0 新增data[].name17.5.0 新增data[].customize_type17.5.0 新增data[].type1-文本、2-单选、3-数值计算、4-数值17.5.0 新增data[].options17.5.0 新增decimal_scale 或计算公式;数值精度和计算逻辑由服务端字段配置维护CustomizeFieldInput{
"id": 101,
"value": "123.4567",
"select_id": 0
}| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
id | integer | 是 | 自定义字段 ID,必须属于当前接口层级 |
value | string/null | 否 | 字段值;数值建议使用字符串提交,按后台精度配置归一化 |
select_id | integer | 否 | 单选项 ID;非单选字段传 0 或省略 |
customize_fields 必须是数组、null 或不传;数组成员必须是对象。select_id 按 0 处理。null 表示不修改,[] 表示清空手工字段,非空数组表示覆盖提交的手工字段。CustomizeFieldValue{
"id": 101,
"name": "客户折扣",
"value": "12.34567",
"select_id": 0
}| 字段 | 类型 | 说明 |
|---|---|---|
id | integer | 自定义字段 ID |
name | string | 自定义字段名称,可直接用于展示 |
value | string | 字段值;单选返回选项名称,数值及计算结果按字符串返回 |
select_id | integer | 单选项 ID;非单选字段为 0 |
{
"customize_fields": []
}| customize_type | 字段级别 | 主要使用位置 |
|---|---|---|
| 3 | 订单级 | 订单顶层、销售订单来源对账单顶层 |
| 4 | 订单明细级 | 订单商品行、销售订单来源对账明细 |
| 6 | 客户对账单级 | 非订单、非退货来源的客户对账单顶层 |
| 17 | 退货级 | 退货单顶层、退货或仅退款来源对账单顶层 |
| 18 | 退货明细级 | 退货商品行、退货来源对账明细 |
Common/CustomizeFieldList 获取当前层级可用字段和单选项,不要硬编码字段 ID。id/name/value/select_id 四字段解析;对新增字段保持向前兼容,不要因出现未知字段 ID 而报错。value 始终按字符串处理,不要先转为浮点数再参与金额或精度敏感计算。null 和空数组,避免误清空历史自定义字段。