订单自定义文本字段更新
通过订单自定义文本字段更新接口,可以将不同外部系统如ERP系统、WMS系统的大量订单进行批量的自定义文本字段更新。
版本号 | 文档 | 说明 |
---|---|---|
0.1 | 当前版本文档 |
oTMS同时在生产环境和测试环境中提供Web Service接口,其中测试环境用于集成测试。两种环境下都需要由oTMS系统管理员分配API帐号密码后方可使用。
注意: 请合理地调用公共接口。如果发现存在异常调用或者对我们系统性能造成影响等情况,会对API账号的调用进行限制,甚至停用。
目前对该接口的调用限制为每个公司每秒最多20个请求
注意: 请合理地调用公共接口。如果发现存在异常调用或者对我们系统性能造成影响等情况,会对API账号的调用进行限制,甚至停用。
目前对该接口的调用限制为每个公司每秒最多20个请求
目前对该接口的调用限制为每个公司每秒最多20个请求
公共参数
环境 | HTTP请求方法 | HTTPS请求地址 | 请求主体MIME类型 | 响应主体MIME类型 |
---|---|---|---|---|
正式环境 | POST | https://login.otms.cn/ws/orderCustomUpdate | application/xml | application/xml |
沙箱环境 | POST | https://demo.otms.cn/ws/orderCustomUpdate | application/xml | application/xml |
请求参数
字段名 | 位置 | 是否必填 | 描述 | Schema |
---|---|---|---|---|
body | body | 是 | 订单自定义文本字段更新请求 | OrderCustomUpdateRequest |
Authorization | header | Basic Authorization。如果不为空,则优先使用该值作身份认证。否则使用请求报文中的用户名与密码 | string |
响应参数
状态码 | 描述 | 响应模型 |
---|---|---|
200 | successful operation | OrderUpdateResponse |
OrderCustomUpdateRequest
字段名 | 类型 | 是否必填 | 描述 | 示例 |
---|---|---|---|---|
version | string | 是 | 请求的版本号。当前版本号为0.1 | |
login | string | 否 | 用户名。用于 API 调用者身份认证。如果请求头中的Authorization不为空,则该值会被忽略。 | |
password | string | 否 | 密码。用于 API 调用者身份认证。如果请求头中的Authorization不为空,则该值会被忽略。 | |
orders | array[UpdatedOrderCustomField] | 是 | 待更新的订单列表。一次请求最多可以更新100条订单 |
OrderUpdateResponse
字段名 | 类型 | 是否必填 | 描述 | 示例 |
---|---|---|---|---|
version | string | 是 | 响应版本号 | |
responseCode | string | 否 | 全局的反馈代码 | |
processedOrders | string | 否 | 处理的订单数量 | |
orders | array[UpdateResult] | 否 | 处理的订单列表 |
UpdateResult
字段名 | 类型 | 是否必填 | 描述 | 示例 |
---|---|---|---|---|
sequence | integer (int32) | 否 | 序列数 | |
erpNumber | string | 否 | 订单erp单号 | |
orderNumber | string | 否 | oTMS订单号 | |
updateStatus | string | 否 | DRAFT - 订单更新后为草稿状态 UPDATED - 订单正常更新 FAILED - 订单更新失败 NOT UPDATED - 订单无更新 |
|
strResponseCodes | array[string] | 否 | - | |
errorColumnName | string | 否 | 对应字段名称 | |
strErrorMsgs | array[string] | 否 | - |
UpdatedCustomFields
字段名 | 类型 | 是否必填 | 描述 | 示例 |
---|---|---|---|---|
customText1 | string | 否 | 自定义文本字段1 | |
customText2 | string | 否 | 自定义文本字段2 | |
customText3 | string | 否 | 自定义文本字段3 | |
customText4 | string | 否 | 自定义文本字段4 | |
customText5 | string | 否 | 自定义文本字段5 | |
customText6 | string | 否 | 自定义文本字段6 | |
customText7 | string | 否 | 自定义文本字段7 | |
customText8 | string | 否 | 自定义文本字段8 | |
customText9 | string | 否 | 自定义文本字段9 | |
customText10 | string | 否 | 自定义文本字段10 | |
customText11 | string | 否 | 自定义文本字段11 | |
customText12 | string | 否 | 自定义文本字段12 | |
customText13 | string | 否 | 自定义文本字段13 | |
customText14 | string | 否 | 自定义文本字段14 | |
customText15 | string | 否 | 自定义文本字段15 | |
customText16 | string | 否 | 自定义文本字段16 | |
customText17 | string | 否 | 自定义文本字段17 | |
customText18 | string | 否 | 自定义文本字段18 | |
customText19 | string | 否 | 自定义文本字段19 | |
customText20 | string | 否 | 自定义文本字段20 | |
customText21 | string | 否 | 自定义文本字段21 | |
customText22 | string | 否 | 自定义文本字段22 | |
customText23 | string | 否 | 自定义文本字段23 | |
customText24 | string | 否 | 自定义文本字段24 | |
customText25 | string | 否 | 自定义文本字段25 | |
customText26 | string | 否 | 自定义文本字段26 | |
customText27 | string | 否 | 自定义文本字段27 | |
customText28 | string | 否 | 自定义文本字段28 | |
customText29 | string | 否 | 自定义文本字段29 | |
customText30 | string | 否 | 自定义文本字段30 | |
customText31 | string | 否 | 自定义文本字段31 | |
customText32 | string | 否 | 自定义文本字段32 | |
customText33 | string | 否 | 自定义文本字段33 | |
customText34 | string | 否 | 自定义文本字段34 | |
customText35 | string | 否 | 自定义文本字段35 | |
customText36 | string | 否 | 自定义文本字段36 | |
customText37 | string | 否 | 自定义文本字段37 | |
customText38 | string | 否 | 自定义文本字段38 | |
customText39 | string | 否 | 自定义文本字段39 | |
customText40 | string | 否 | 自定义文本字段40 | |
customText41 | string | 否 | 自定义文本字段41 | |
customText42 | string | 否 | 自定义文本字段42 | |
customText43 | string | 否 | 自定义文本字段43 | |
customText44 | string | 否 | 自定义文本字段44 | |
customText45 | string | 否 | 自定义文本字段45 | |
customText46 | string | 否 | 自定义文本字段46 | |
customText47 | string | 否 | 自定义文本字段47 | |
customText48 | string | 否 | 自定义文本字段48 | |
customText49 | string | 否 | 自定义文本字段49 | |
customText50 | string | 否 | 自定义文本字段50 | |
customText51 | string | 否 | 自定义文本字段51 | |
customText52 | string | 否 | 自定义文本字段52 | |
customText53 | string | 否 | 自定义文本字段53 | |
customText54 | string | 否 | 自定义文本字段54 | |
customText55 | string | 否 | 自定义文本字段55 | |
customText56 | string | 否 | 自定义文本字段56 | |
customText57 | string | 否 | 自定义文本字段57 | |
customText58 | string | 否 | 自定义文本字段58 | |
customText59 | string | 否 | 自定义文本字段59 | |
customText60 | string | 否 | 自定义文本字段60 | |
customText61 | string | 否 | 自定义文本字段61 | |
customText62 | string | 否 | 自定义文本字段62 | |
customText63 | string | 否 | 自定义文本字段63 | |
customText64 | string | 否 | 自定义文本字段64 | |
customText65 | string | 否 | 自定义文本字段65 | |
customText66 | string | 否 | 自定义文本字段66 | |
customText67 | string | 否 | 自定义文本字段67 | |
customText68 | string | 否 | 自定义文本字段68 | |
customText69 | string | 否 | 自定义文本字段69 | |
customText70 | string | 否 | 自定义文本字段70 | |
customText71 | string | 否 | 自定义文本字段71 | |
customText72 | string | 否 | 自定义文本字段72 | |
customText73 | string | 否 | 自定义文本字段73 | |
customText74 | string | 否 | 自定义文本字段74 | |
customText75 | string | 否 | 自定义文本字段75 | |
customText76 | string | 否 | 自定义文本字段76 | |
customText77 | string | 否 | 自定义文本字段77 | |
customText78 | string | 否 | 自定义文本字段78 | |
customText79 | string | 否 | 自定义文本字段79 | |
customText80 | string | 否 | 自定义文本字段80 | |
customNum1 | string | 否 | 自定义小数字段1 -- 精确到18位数、6位小数 | |
customNum2 | string | 否 | 自定义小数字段2 -- 精确到18位数、6位小数 | |
customNum3 | string | 否 | 自定义小数字段3 -- 精确到18位数、6位小数 | |
customNum4 | string | 否 | 自定义小数字段4 -- 精确到18位数、6位小数 | |
customNum5 | string | 否 | 自定义小数字段5 -- 精确到18位数、6位小数 | |
customNum6 | string | 否 | 自定义小数字段6 -- 精确到18位数、6位小数 | |
customNum7 | string | 否 | 自定义小数字段7 -- 精确到18位数、6位小数 | |
customNum8 | string | 否 | 自定义小数字段8 -- 精确到18位数、6位小数 | |
customNum9 | string | 否 | 自定义小数字段9 -- 精确到18位数、6位小数 | |
customNum10 | string | 否 | 自定义小数字段10 -- 精确到18位数、6位小数 | |
customEnum1 | string | 否 | 自定义字段中定义并激活的枚举变量1的逻辑名 | |
customEnum2 | string | 否 | 自定义字段中定义并激活的枚举变量2的逻辑名 | |
customEnum3 | string | 否 | 自定义字段中定义并激活的枚举变量3的逻辑名 | |
customEnum4 | string | 否 | 自定义字段中定义并激活的枚举变量4的逻辑名 | |
customEnum5 | string | 否 | 自定义字段中定义并激活的枚举变量5的逻辑名 | |
customEnum6 | string | 否 | 自定义字段中定义并激活的枚举变量6的逻辑名 | |
customEnum7 | string | 否 | 自定义字段中定义并激活的枚举变量7的逻辑名 | |
customEnum8 | string | 否 | 自定义字段中定义并激活的枚举变量8的逻辑名 | |
customEnum9 | string | 否 | 自定义字段中定义并激活的枚举变量9的逻辑名 | |
customEnum10 | string | 否 | 自定义字段中定义并激活的枚举变量10的逻辑名 | |
sendMq | boolean | 否 | - | |
customNum1WithBigDecimal | number | 否 | - | |
customNum2WithBigDecimal | number | 否 | - | |
customNum3WithBigDecimal | number | 否 | - | |
customNum4WithBigDecimal | number | 否 | - | |
customNum5WithBigDecimal | number | 否 | - | |
customNum6WithBigDecimal | number | 否 | - | |
customNum7WithBigDecimal | number | 否 | - | |
customNum8WithBigDecimal | number | 否 | - | |
customNum9WithBigDecimal | number | 否 | - | |
customNum10WithBigDecimal | number | 否 | - | |
customEnum1WithLogicName | string | 否 | - | |
customEnum2WithLogicName | string | 否 | - | |
customEnum3WithLogicName | string | 否 | - | |
customEnum4WithLogicName | string | 否 | - | |
customEnum5WithLogicName | string | 否 | - | |
customEnum6WithLogicName | string | 否 | - | |
customEnum7WithLogicName | string | 否 | - | |
customEnum8WithLogicName | string | 否 | - | |
customEnum9WithLogicName | string | 否 | - | |
customEnum10WithLogicName | string | 否 | - | |
customEnums | array[string] | 否 | - |
UpdatedOrderCustomField
字段名 | 类型 | 是否必填 | 描述 | 示例 |
---|---|---|---|---|
sequence | integer (int32) | 是 | 序列数 | |
clientCode | string | 否 | oTMS线下客户公司代码 (承运商帐户适用) | |
clientReferenceNumber | string | 否 | 调用的系统订单标识符 | |
erpNumber | string | 否 | 外部系统的唯一的订单号 | |
orderNumber | string | 否 | oTMS订单号。如果已提供erpNumber,oTMS订单号视为无效。 | |
customFields | UpdatedCustomFields | 否 | 自定义字段。这适用于启用并且正确配置了自定义字段的公司。 |
请求示例
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<orderCustomUpdateRequest version="0.1" login="username" password="password">
<orders>
<order sequence="1">
<erpNumber>ERP-2017101702</erpNumber>
<customFields>
<customText1>2</customText1>
<customText2>2</customText2>
<customText3>3</customText3>
<customText4>4</customText4>
<customText5>5</customText5>
<customText6>6</customText6>
<customText7>7</customText7>
<customText8>8</customText8>
<customText9>9</customText9>
<customText10>10</customText10>
<customText11>11</customText11>
<customText12>12</customText12>
<customText13>13</customText13>
<customText14>14</customText14>
<customText15>15</customText15>
<customText16>16</customText16>
<customText17>17</customText17>
<customText18>18</customText18>
<customText19>19</customText19>
<customText20>20</customText20>
<customText21>21</customText21>
<customText22>22</customText22>
<customText23>23</customText23>
<customText24>24</customText24>
<customText25>25</customText25>
<customText26>26</customText26>
<customText27>27</customText27>
<customText28>28</customText28>
<customText29>29</customText29>
<customText30>36</customText30>
</customFields>
</order>
</orders>
</orderCustomUpdateRequest>
响应示例
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<orderUpdateResponse version="0.1">
<responseCode/>
<processedOrders>1</processedOrders>
<orders>
<order sequence="1">
<erpNumber>ERP-2017101702</erpNumber>
<orderNumber>BESTSELL935000</orderNumber>
<updateStatus>UPDATED</updateStatus>
<responseCodes>
<responseCode>
<code>7022</code>
</responseCode>
<responseCode>
<code>7044</code>
</responseCode>
<responseCode>
<code>7032</code>
</responseCode>
<responseCode>
<code>7045</code>
</responseCode>
<responseCode>
<code>7037</code>
</responseCode>
<responseCode>
<code>7029</code>
</responseCode>
</responseCodes>
</order>
</orders>
</orderUpdateResponse>
全局反馈代码
反馈代码 | 说明 |
0 | 客户验证失败 |
1 | 不支持的请求版本 |
2 | 请求中的更新订单过多 |
单个请求反馈代码
反馈代码 | 说明 |
7000 | 客户代码未找到。 |
7001 | 无效的数据类型。 |
7003 | 订单匹配结果不唯一。 |
7004 | 用户地区权限不匹配。 |
7006 | 订单不属于该公司。 |
7008 | 已入账单的订单不允许更新。 |
7009 | 订单不存在。 |
7043 | 自定义字段不能识别——可能公司已经取消了自定义字段。订单不能更新。 |
7044 | 未定义的自定义字段枚举值。订单不能更新。 |
7045 | 未启用自定义字段,将忽略更新订单中的自定义字段。 |
7046 | 订单缺少必填的自定义字段。订单不能更新。 |
7051 | 承运商账户通过erpNumber更新订单时必须提供clientCode。 |
7054 | 订单优化进行中,更新被拒绝。 |
7100 | 其他错误。 |