亚马逊MWS开发--订单相关
一、引言
本篇主要介绍订单的同步和订单的发货,订单同步主要是方便我们管理订单,比如根据订单采购、操作订单发货等
二、思路
订单的同步计较简单,直接调用订单的接口,查询我们需要的订单。发货的思路和上传产品的流程是一样的,先创建FeedType一个类型为 POST_ORDER_FULFILLMENT_DATA 的 SubmitFeed,获取到一个 FeedSubmissionId,然后稍候通过另外一个接口传 FeedSubmissionId 查询发货结果
三、实现
1、同步订单
先调用listOrder接口获取订单的一些基本信息,然后调用listOrderItems获取订单的商品基本信息(这里可以通过订单商品的ASIN或者SKU获取具体商品详细信息,比如图片标题等)
列举一些listOrder接口的常用参数:
参数 | 描述 |
---|---|
CreatedAfter | 指定某一格式为 ISO 8601 的日期,用以选择在该日期之后(或当天)创建的订单。 |
OrderStatus | OrderStatus 值的列表。用来选择当前状态与您所指定的某个状态值相符的订单。 |
OrderStatus 值:
PendingAvailability
只有预订订单才有此状态。订单已生成,但是付款未授权且商品的发售日期是将来的某一天。订单尚不能进行发货。请注意:仅在日本 (JP),Preorder 才可能是一个 OrderType 值。
Pending
订单已生成,但是付款未授权。订单尚不能进行发货。请注意:对于 OrderType = Standard 的订单,初始的订单状态是 Pending。对于 OrderType = Preorder 的订单(仅适用于 JP),初始的订单状态是 PendingAvailability,当进入付款授权流程时,订单状态将变为 Pending。
Unshipped
付款已经过授权,订单已准备好进行发货,但订单中商品尚未发运。
PartiallyShipped
订单中的一个或多个(但并非全部)商品已经发货。
Shipped
订单中的所有商品均已发货。
InvoiceUnconfirmed
订单中的所有商品均已发货。但是卖家还没有向亚马逊确认已经向买家寄出发票。请注意:此参数仅适用于中国地区。
Canceled
订单已取消。
Unfulfillable
订单无法进行配送。该状态仅适用于通过亚马逊零售网站之外的渠道下达但由亚马逊进行配送的订单。
public List<Order> listOrders(Date searchDate) {ListOrdersRequest request = new ListOrdersRequest();request.setSellerId(sellerId);request.setMWSAuthToken(awsAuthToken);XMLGregorianCalendar createdAfter = MwsUtl.getDTF().newXMLGregorianCalendar();//指定某一格式为 ISO 8601 的日期,用以选择在该日期之后(或当天)创建的订单createdAfter.setYear(new BigInteger(year));createdAfter.setMonth(Integer.valueOf(mon));createdAfter.setDay(Integer.valueOf(day));request.setCreatedAfter(createdAfter);request.setMarketplaceId(MarketplaceId);//想获取订单的状态PendingAvailability、Unshippedrequest.setOrderStatus("Unshipped");ListOrdersResponse response = getClient(awsAccount).listOrders(request);if(response.isSetListOrdersResult()){ListOrdersResult listOrdersResult = response.getListOrdersResult();boolean hasNext = listOrdersResult.isSetNextToken();String nextToken = listOrdersResult.getNextToken();List<Order> orders = listOrdersResult.getOrders();//此处可以循环处理是否有下一页的订单return orders;}return null;}
返回结果,这里只列举订单和订单商品示例结果。
订单返回示例:
<?xml version="1.0" encoding="utf-8"?>
<ListOrdersResponsexmlns="https://mws.amazonservices.com/Orders/2013-09-01"><ListOrdersResult><NextToken>2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=</NextToken><LastUpdatedBefore>2013-09-25T18%3A10%3A21.687Z</LastUpdatedBefore><Orders>
<!-- 订单基本信息--><Order><AmazonOrderId>058-1233752-8214740</AmazonOrderId><PurchaseDate>2013-09-05T00%3A06%3A07.000Z</PurchaseDate><LastUpdateDate>2013-09-07T12%3A43%3A16.000Z</LastUpdateDate><OrderStatus>Unshipped</OrderStatus><OrderType>StandardOrder</OrderType><ShipServiceLevel>Std JP Kanto8</ShipServiceLevel><FulfillmentChannel>MFN</FulfillmentChannel><OrderTotal><CurrencyCode>JPY</CurrencyCode><Amount>1507.00</Amount></OrderTotal>
<!-- 订单买家地址,发货要用到--><ShippingAddress><Name>Jane Smith</Name><AddressLine1>1-2-10 Akasaka</AddressLine1><City>Tokyo</City><PostalCode>107-0053</PostalCode><Country>JP</Country></ShippingAddress><NumberOfItemsShipped>0</NumberOfItemsShipped><NumberOfItemsUnshipped>1</NumberOfItemsUnshipped><PaymentExecutionDetail><PaymentExecutionDetailItem><Payment><Amount>10.00</Amount><CurrencyCode>JPY</CurrencyCode></Payment><PaymentMethod>PointsAccount</PaymentMethod></PaymentExecutionDetailItem><PaymentExecutionDetailItem><Payment><Amount>317.00</Amount><CurrencyCode>JPY</CurrencyCode></Payment><PaymentMethod>GC</PaymentMethod></PaymentExecutionDetailItem><PaymentExecutionDetailItem><Payment><Amount>1180.00</Amount><CurrencyCode>JPY</CurrencyCode></Payment><PaymentMethod>COD</PaymentMethod></PaymentExecutionDetailItem></PaymentExecutionDetail><PaymentMethod>COD</PaymentMethod><MarketplaceId>ATVPDKIKX0DER</MarketplaceId><BuyerName>Jane Smith</BuyerName><BuyerEmail>5vlhEXAMPLEh9h5@marketplace.amazon.com</BuyerEmail><ShipmentServiceLevelCategory>Standard</ShipmentServiceLevelCategory></Order></Orders></ListOrdersResult><ResponseMetadata><RequestId>88faca76-b600-46d2-b53c-0c8c4533e43a</RequestId></ResponseMetadata>
</ListOrdersResponse>
订单商品返回示例:
<?xml version="1.0" encoding="utf-8"?>
<ListOrderItemsResponsexmlns="https://mws.amazonservices.com/Orders/2013-09-01"><ListOrderItemsResult><NextToken>MRgZW55IGNhcm5hbCBwbGVhc3VyZS6=</NextToken><AmazonOrderId>058-1233752-8214740</AmazonOrderId><OrderItems><OrderItem><ASIN>BT0093TELA</ASIN><OrderItemId>68828574383266</OrderItemId><SellerSKU>CBA_OTF_1</SellerSKU><Title>Example item name</Title><QuantityOrdered>1</QuantityOrdered><QuantityShipped>1</QuantityShipped><ItemPrice><CurrencyCode>USD</CurrencyCode><Amount>25.99</Amount></ItemPrice><ShippingPrice><CurrencyCode>USD</CurrencyCode><Amount>1.26</Amount></ShippingPrice><ScheduledDeliveryEndDate>2013-09-09T01:30:00.000-06:00</ScheduledDeliveryEndDate><ScheduledDeliveryStartDate>2013-09-071T02:00:00.000-06:00</ScheduledDeliveryStartDate><CODFee><CurrencyCode>USD</CurrencyCode><Amount>10.00</Amount></CODFee><CODFeeDiscount><CurrencyCode>USD</CurrencyCode><Amount>1.00</Amount></CODFeeDiscount><GiftMessageText>For you!</GiftMessageText><GiftWrapPrice><CurrencyCode>USD</CurrencyCode><Amount>1.99</Amount></GiftWrapPrice><GiftWrapLevel>Classic</GiftWrapLevel></OrderItem><OrderItem><ASIN>BCTU1104UEFB</ASIN><OrderItemId>79039765272157</OrderItemId><SellerSKU>CBA_OTF_5</SellerSKU><Title>Example item name</Title><QuantityOrdered>2</QuantityOrdered><ItemPrice><CurrencyCode>USD</CurrencyCode><Amount>17.95</Amount></ItemPrice><PromotionIds><PromotionId>FREESHIP</PromotionId></PromotionIds><ConditionId>Used</ConditionId><ConditionSubtypeId>Mint</ConditionSubtypeId><ConditionNote>Example ConditionNote</ConditionNote></OrderItem></OrderItems></ListOrderItemsResult><ResponseMetadata><RequestId>88faca76-b600-46d2-b53c-0c8c4533e43a</RequestId></ResponseMetadata>
</ListOrderItemsResponse>
2、订单的发货
发货主要用到AmazonOrderId(亚马逊所定义的订单编码,格式为 3-7-7)和OrderItemId(亚马逊定义的订单商品识别号),一个订单可以发多次货,每次发货必须指定订单的商品,上传发货数据后还可以继续上传,也就是修改
直接看发货的xml参数:
<?xml version="1.0" encoding="UTF-8"?><AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd"><Header><DocumentVersion>1.01</DocumentVersion><MerchantIdentifier>ANYYVQX2F06ZA</MerchantIdentifier></Header><MessageType>OrderFulfillment</MessageType><Message><MessageID>1</MessageID><OperationType>Update</OperationType><OrderFulfillment>
<!-- 亚马逊订单号和发货时间--><AmazonOrderID>123-1234567-1234567</AmazonOrderID><FulfillmentDate>2020-12-26T08:42:24.562+08:00</FulfillmentDate>
<!-- 物流方式--><FulfillmentData><CarrierName>other</CarrierName><ShippingMethod>Standard</ShippingMethod><ShipperTrackingNumber>1234567</ShipperTrackingNumber></FulfillmentData>
<!-- 发货的商品识别号--><Item><AmazonOrderItemCode>68828574383266</AmazonOrderItemCode><Quantity>1</Quantity></Item></OrderFulfillment></Message>
</AmazonEnvelope>
四、总结
1、订单收件人涉及到亚马逊的PII权限,如果开发者帐号没有该权限,会导致订单的收件人信息不完整
2、订单商品的信息不能直接通过订单接口获取,需要通过ASIN或者SKU调用商品API的GetMatchingProductForId接口
3、订单接口返回的商品图片是75*75像素的,如http://ecx.images-amazon.com/images/I/51EEz05N2HL.SL75.jpg,如果想获取大图可以直接把地址的._SL75_去掉即可
总的来说,订单的处理相对来说比较简单,直接调用api接口就行,没有其他特殊处理。下一篇文章主要介绍亚马逊邮件拉取
亚马逊MWS开发--订单相关相关推荐
- 亚马逊MWS开发套路演示
MWS是商城网络服务的缩写,具体介绍看这里http://docs.developer.amazonservices.com/zh_CN/dev_guide/DG_IfNew.html.MWS就是一组A ...
- 亚马逊MWS开发--开始篇
去年大半年的时间在做一个跨境电商的ERP,主要对接亚马逊MWS的API,各个网站的博客对这方面的介绍特别少,导致进度非常缓慢,里面的坑也是逐一踩了一个遍,自己一路摸索,花了不少时间和精力,现在想把这些 ...
- 亚马逊MWS开发--商品的上传(1)
1.引言 这篇文章主要介绍商品的刊登 2.API介绍 商品的上传主要用的是Feeds API,我们来看一下Feeds的工作流程: 整个操作采用异步的流程: 通过 SubmitFeed 操作以及加密标头 ...
- 亚马逊MWS开发--上传商品常见错误
一.错误来源 不管通过哪种方式上传商品都会出现各种问题,每一类问题亚马逊都有固定的错误码,比如常见5000,8541等,这些错误都会体现在上传的结果报告中 <?xml version=" ...
- 亚马逊MWS开发--商品变体
一.引言 没有了解过亚马逊的,这些专业属性可能不太理解,特别是对于我们开发来说,所以先介绍一下什么是变体. 什么是变体? 在亚马逊,如果您要销售的商品属性基本相同,只是某些属性存在差异时,比如,商品的 ...
- 亚马逊MWS开发--修改商品的价格、库存、图片
1.引言 这篇文章主要介绍产品的的一些基本属性修改,比如商品的主图,价格,库存等 2.思路 商品的基本属性修改比上传商品简单,参数也不多,根据相对应的xsd来构建我们的参数. 价格xsd:https: ...
- java开发亚马逊mws_GitHub - iotwlw/Amazon-MWS-SDK: 基于亚马逊MWS Java SDK 的封装
amazon-mws-java-sdk 亚马逊MWS服务的Java-SDK封装 安装 在pom.xml中添加依赖 top.guyi.amazon Amazon-MWS-SDK 1.0.0.1 依赖放在 ...
- 关于亚马逊MWS API 看这一篇就够了
关于亚马逊MWS API 看这一篇就够了 文章目录 关于亚马逊MWS API 看这一篇就够了 献给那些刚接触亚马逊MWS API的小白们 一.什么是MWS API 1.MWS API能为我们做什么 2 ...
- 亚马逊技能开发入门_Amazon QuickSight入门
亚马逊技能开发入门 In this article, I am going to introduce Amazon QuickSight and how to visualize data using ...
最新文章
- Python处理字符串和列表元组的小技巧
- -bash : xxx : command not found 新安装Linux后,安装一些必须软件(持续更新……)
- (六)Javascript 规范
- rest laravel_如何通过测试驱动开发来构建Laravel REST API
- c语言传入参数不正确,请高手看看一下程序怎么回事啊?老是提示传参数错误...
- 基于JAVA+SpringMVC+Mybatis+MYSQL的相亲管理系统
- Spring学习记录-Java 11运行eureka-server报javax.xml.bind.JAXBContext not present错
- 9大门类,99个系列课程,几乎所有AI免费课程都在这里啦
- 【李宏毅2020 ML/DL】P43-44 More about Adversarial Attack | Images Audio
- 听力测试英语软件初中,初中生英语听力软件
- 手机如何安装java软件_如何在手机上安装JAVA平台
- 进行日常记账后,怎样导出表格
- 上海科技大学信息科学与技术学院夏令营
- 微信视频号如何申请认证,流程是什么?
- mysql查询年龄段多少人_mysql中一张(居民)表按年龄段查询数据
- Kubernetes 如何重塑虚拟机
- 大数据项目之电商数仓(业务数据仓库)
- DB2 使用REORG命令重组优化表和索引
- svnserve服务器
- python/gurobi计算二人零和博弈纳什均衡精确解(可求解大规划策略空间)