youku.crp.scm.order.modify (硬件供应链单据变化会写接口)

硬件供应链单据变化会写接口

公共参数

请求参数

名称 类型 是否必须 示例值 更多限制 描述
scm_order_modify_request ScmOrderModifyRequest 必须 供应链单据变更请求实体
  • └ order_type
  • String
  • 必须
  • PO
  • 单据类型;PO:采购单;IOI 采购入库单;销售出库单:IOO; 收款单:CO;售后退货单:RO; 销售单:SO
  • └ rel_ext
  • String
  • 可选
  • {"soId":"销售单ID","iooId":"出库单ID","csoId":"售后单ID","poId":"采购单ID","contractNum":"合同编号","sourcingOrderId":"寻源单据号"}
  • @NotNull ● @ConditionNotNull(orderTypes = "PO", isJson = true, jsonElemString = "contractNum", message = "PO单的集采合同号不能为空") ● @ConditionNotNull(orderTypes = "IOI", isJson = true, jsonElemString = "poId", message = "入库单的poId不能为空") ● @ConditionNotNull(orderTypes = "IOO,RO", isJson = true, jsonElemString = "soId", message = "soId不能为空") ● @ConditionNotNull(orderTypes = "RO", isJson = true, jsonElemString = "iooId", message = "iooId不能为空")
  • └ order_ext
  • String
  • 可选
  • { "signingTime" : "签收时间(timestamp)", "recievingTime" : "收货时间(timestamp)", "storeName" : "店铺名称" }
  • @NotNull ● @ConditionNotNull(orderTypes = "PO", isJson = true, jsonElemString = "deliveryAddr", message = "PO单的送货地址不能为空") ● @ConditionNotNull(orderTypes = "PO", isJson = true, jsonElemString = "reciever", message = "PO单的接收人不能为空") ● @ConditionNotNull(orderTypes = "PO", isJson = true, jsonElemString = "recieverPhoneNumber", message = "PO单的接收人电话号码不能为空") ● @ConditionNotNull(orderTypes = "PO", isJson = true, jsonElemString = "payTerms", message = "PO单的付款条件不能为空") ● @ConditionNotNull(orderTypes = "PO", isJson = true, jsonElemString = "projectNo", message = "PO单的项目编号不能为空")
  • └ order_id
  • String
  • 必须
  • 1
  • 单据ID
  • └ rebate_amount
  • Price
  • 可选
  • 100.00
  • 返利金额
  • └ cp_name
  • String
  • 可选
  • youku
  • 合作方;PO:供应商名称 IOI:供应商名称 IOO:发票抬头(B) CO:客户 RO:SO的发票抬头(B);@ConditionNotNull(orderTypes = "PO,SO,IOI", isJson = false, message = "供应商名称不能为空")
  • └ remark
  • String
  • 可选
  • 备注
  • 备注
  • └ update_time
  • Number
  • 可选
  • 1691111457684
  • 最后更新时间
  • └ labels
  • String
  • 可选
  • a,b,c
  • 多标签用英文逗号分隔
  • └ total_amount
  • Price
  • 必须
  • 100.00
  • 精度保留小数点后俩位,四舍五入PO:采购单总金额 IOI:实际入库金额 IOO:实付金额 CO:应收总额 RO:退款金额
  • └ tax_rate
  • Price
  • 可选
  • 6.00
  • 税率6% 记为6,小数点后俩位
  • └ vertify_code
  • String
  • 可选
  • ****
  • 加密验证串(「私钥」+「时间戳opTime」做md5加密后传输)
  • └ detail_ext
  • String
  • 可选
  • [{}]
  • ● 明细行数据,jsonArray格式传输 ○ itemId ○ skuId ○ 商品名称:name ○ 商品数量:itemCount ○ 商品价格(保留俩位小数,四舍五入):price ○ 含税总金额(保留俩位小数,四舍五入):amount ○ 不含税金额(保留俩位小数,四舍五入):amountNoTax ○ 税金(保留俩位小数,四舍五入):taxAmount ○ 成本(保留俩位小数,四舍五入):costAmount ○ 描述:remark ○ 期望交付开始时间(格式:yyyy-MM-dd):expectedDeliveryStartDate ○ 预期交付截止时间(格式:yyyy-MM-dd):expectedDeliveryEndDate ○ 虚拟分类:virtualType;@NotNull ● @ConditionNotNull(orderTypes = "PO,IOI,IOO,SO,RO", isJson = true, isJsonArray = true, jsonElemString = "itemId", message = "itemId不能为空") ● @ConditionNotNull(orderTypes = "PO,IOI,IOO,SO,RO", isJson = true, isJsonArray = true, jsonElemString = "name", message = "name不能为空") ● @ConditionNotNull(orderTypes = "PO,IOI,IOO,SO,RO", isJson = true, isJsonArray = true, jsonElemString = "skuId", message = "skuId不能为空") ● @ConditionNotNull(orderTypes = "PO", isJson = true, isJsonArray = true, jsonElemString = "remark", message = "remark不能为空") ● @ConditionNotNull(orderTypes = "PO", isJson = true, isJsonArray = true, jsonElemString = "expectedDeliveryStartDate", message = "expectedDeliveryStartDate不能为空") ● @ConditionNotNull(orderTypes = "PO", isJson = true, isJsonArray = true, jsonElemString = "expectedDeliveryEndDate", message = "expectedDeliveryEndDate不能为空") ● @ConditionNotNull(orderTypes = "PO,IOI,IOO,SO,RO", isJson = true, isJsonArray = true, jsonElemString = "itemCount", message = "itemCount不能为空") ● @ConditionNotNull(orderTypes = "PO,IOI,IOO,SO", isJson = true, isJsonArray = true, jsonElemString = "price", digits = "15,2", message = "price不能为空,并且格式要满足要求(<15 digits>.<2 digits> expected)") ● @ConditionNotNull(orderTypes = "PO,IOI,IOO,SO,RO", isJson = true, isJsonArray = true, jsonElemString = "amount", digits = "15,2", message = "amount不,能为空并且格式要满足要求(<15 digits>.<2 digits> expected)") ● @ConditionNotNull(orderTypes = "PO,IOI", isJson = true, isJsonArray = true, jsonElemString = "amountNoTax", digits = "15,2", message = "amountNoTax不能为空,并且格式要满足要求(<15 digits>.<2 digits> expected)") ● @ConditionNotNull(orderTypes = "IOO,RO", isJson = true, isJsonArray = true, jsonElemString = "costAmount", digits = "15,2", message = "costAmount不能为空,并且格式要满足要求(<15 digits>.<2 digits> expected)") ● @JsonArrayElementIsENUM(orderTypes = "PO,IOI,IOO,SO,RO", isJson = true, isJsonArray = true, jsonElemString = "virtualType", enumType = ScmOrderItemVirtualTypeEnum.class, enumGetValueMethod = "getVirtualType", message = "商品的虚拟分类不属于枚举类型范围")
  • └ op_time
  • Number
  • 必须
  • 1691111457684
  • 单据更新操作发生的时间戳
  • └ create_time
  • Number
  • 可选
  • 1691111457684
  • 单据创建时间
  • └ create_name
  • String
  • 可选
  • 创建人
  • 创建人(PO:采购员 IOI:制单人 IOO:业务人员 CO:创建人 RO:创建人)
  • └ status
  • String
  • 必须
  • Confirmed
  • 状态(PO:Confirmed(已确认)、 Canceled(已取消) IOI:Confirmed( 已入库) IOO:Confirmed(已出库 ) 、Signed(已签收)、Finished(已确认收货);CO:Confirmed(已生效) RO :Finished(退款完成)) SO:Confirmed(已确认)、ToBeApproved(待审核)
  • └ cp_ext
  • String
  • 可选
  • {}
  • * 对方公司信息扩展字段,json格式传输 * 公司地址:address * 联系人:contact * 电话:phoneNumber * 邮箱:email;● @ConditionNotNull(orderTypes = "PO", isJson = false, message = "PO单的供应商信息不能为空") ● @ConditionNotNull(orderTypes = "PO", isJson = true, jsonElemString = "address", message = "PO单的供应商地址不能为空") ● @ConditionNotNull(orderTypes = "PO", isJson = true, jsonElemString = "contact", message = "PO单的供应商联系人不能为空") ● @ConditionNotNull(orderTypes = "PO", isJson = true, jsonElemString = "phoneNumber", message = "PO单的供应商联系电话不能为空") ● @ConditionNotNull(orderTypes = "PO", isJson = true, jsonElemString = "email", message = "PO单的供应商邮箱不能为空") ● @JsonElementEmail(jsonElemString = "email", message = "PO单的供应商邮箱格式不符合规范")
  • └ tenant_id
  • String
  • 可选
  • 0
  • 用于区分同一个appkey下的不同租户数据

响应参数

名称 类型 示例值 描述
result Result 返回信息
  • └ code
  • String
  • SUCCESS
  • 成功或者失败码
  • └ message
  • String
  • 验证失败
  • 错误信息

请求示例

  • JAVA
  • .NET
  • PHP
  • CURL
  • Python
  • C/C++
  • NodeJS
TaobaoClient client = new DefaultTaobaoClient(url, appkey, secret);
YoukuCrpScmOrderModifyRequest req = new YoukuCrpScmOrderModifyRequest();
YoukuCrpScmOrderModifyRequest.ScmOrderModifyRequest obj1 = new YoukuCrpScmOrderModifyRequest.ScmOrderModifyRequest();
obj1.setOrderType("PO");
obj1.setRelExt("{\"soId\":\"销售单ID\",\"iooId\":\"出库单ID\",\"csoId\":\"售后单ID\",\"poId\":\"采购单ID\",\"contractNum\":\"合同编号\",\"sourcingOrderId\":\"寻源单据号\"}");
obj1.setOrderExt("{ \"signingTime\" : \"签收时间(timestamp)\", \"recievingTime\" : \"收货时间(timestamp)\", \"storeName\" : \"店铺名称\" }");
obj1.setOrderId("1");
obj1.setRebateAmount("100.00");
obj1.setCpName("youku");
obj1.setRemark("备注");
obj1.setUpdateTime(1691111457684L);
obj1.setLabels("a,b,c");
obj1.setTotalAmount("100.00");
obj1.setTaxRate("6.00");
obj1.setVertifyCode("****");
obj1.setDetailExt("[{}]");
obj1.setOpTime(1691111457684L);
obj1.setCreateTime(1691111457684L);
obj1.setCreateName("创建人");
obj1.setStatus("Confirmed");
obj1.setCpExt("{}");
obj1.setTenantId("0");
req.setScmOrderModifyRequest(obj1);
YoukuCrpScmOrderModifyResponse rsp = client.execute(req, sessionKey);
System.out.println(rsp.getBody());

响应示例

  • XML示例
  • JSON示例
<youku_crp_scm_order_modify_response>
    <result>
        <code>SUCCESS</code>
        <message>验证失败</message>
    </result>
</youku_crp_scm_order_modify_response>

异常示例

  • XML示例
  • JSON示例
<error_response>
    <code>50</code>
    <msg>Remote service error</msg>
    <sub_code>isv.invalid-parameter</sub_code>
    <sub_msg>非法参数</sub_msg>
</error_response>

错误码解释

错误码 错误描述 解决方案

API工具

如何获得此API

FAQ

返回
顶部