亚马逊API之订单下载
介紹:本文介紹通過API下載亞馬遜平臺的訂單。
第一步:下載亞馬遜平臺的客戶端庫,網址:https://developer.amazonservices.com.cn/doc/orders/orders/v20110101/cSharp.html,解壓后,重新生成DLL
第二步:在自己的項目中引用DLL,撰寫調用代碼。訂單下載涉及兩個接口:ListOrders和ListOrderItems
下面直接上代碼:
參數:
//賣家編號
publicstringMerchant="XXX";
//商城編號
publicstringMarketplaceID="XXX";
//AWS訪問密鑰
publicstringAWSAccessKeyID="XXX";
//密鑰
publicstringKey="XXX";
publicstringapplicationName="XXX";
publicstringapplicationVersion="1.0";
調用ListOrders和ListOrderItems,下載訂單信息
///<summary>
///訂單下載
///</summary>
privatevoidDown()
{
try
{
ListOrdersRequestreq=newListOrdersRequest();
req.CreatedAfter=DateTime.Now.AddDays(-3);
OrderStatusListstatusList=newOrderStatusList();
//待發貨
List<OrderStatusEnum>status=newList<OrderStatusEnum>{OrderStatusEnum.Unshipped,OrderStatusEnum.PartiallyShipped};
statusList.Status=status;
req.OrderStatus=statusList;
//賣家編號
req.SellerId=Merchant;
MarketplaceIdListm=newMarketplaceIdList();
List<string>mID=newList<string>();
mID.Add(MarketplaceID);
m.Id=mID;
req.MarketplaceId=m;
MarketplaceWebServiceOrdersConfigconfig=newMarketplaceWebServiceOrdersConfig();
config.ServiceURL="https://mws.amazonservices.com.cn/Orders/2011-01-01";
config.SetUserAgent(applicationName,applicationVersion);
MarketplaceWebServiceOrdersClientclient=newMarketplaceWebServiceOrdersClient(applicationName,applicationVersion,AWSAccessKeyID,Key,config);
ListOrdersResponseresponse=client.ListOrders(req);
OrderListorders=response.ListOrdersResult.Orders;
List<Order>orderList=orders.Order;
stringotherSOID="";
stringsql="";
intisImported=0;
decimalsoAmt=0;
//申通
intexpressSysNo=3;
//網銀在線
intpaySysNo=3;
//運費
decimalexpressFee=0;
//買家用戶名
stringcustomerUserID="";
stringreceiveName="";
stringprovince="";
stringcity="";
stringdistrict="";
stringaddress="";
stringzip="";
stringtel="";
stringmobile="";
stringcustomerNote="";
intcustomerSysNo=0;
//亞馬遜
intplatformSysNo=16;
intareaSysNo=0;
intsalesManSysNo=1;
foreach(OrdersoinorderList)
{
#region訂單
//第三方訂單號
isImported=1;
otherSOID=so.AmazonOrderId;
#region檢查第三方訂單號是否存在
#endregion
//訂單金額(暫時不確定是否包含運費)
decimal.TryParse(so.OrderTotal.Amount,outsoAmt);
customerUserID=so.BuyerName;
//收貨人姓名
receiveName=so.ShippingAddress.Name;
address=so.ShippingAddress.AddressLine1+so.ShippingAddress.AddressLine2+so.ShippingAddress.AddressLine3;
province=so.ShippingAddress.StateOrRegion;
city=so.ShippingAddress.City;
district=so.ShippingAddress.County;
zip=so.ShippingAddress.PostalCode;
tel=so.ShippingAddress.Phone;
try
{
List<OrderItem>items=DownOrderItem(otherSOID);
#region寫銷售單的主表數據
#endregion
#region產品
//訂單明細
foreach(OrderItemiteminitems)
{
//產品編碼
stringproductID=item.SellerSKU;
//產品小計金額(即ItemPrice的值等于商品的售價x商品的訂購數量。)
decimalitemPrice=0;
decimal.TryParse(item.ItemPrice.Amount,outitemPrice);
//數量
decimalqty=item.QuantityOrdered;
//售價
decimalproductSalePrice=0;
productSalePrice=itemPrice/qty;
//折后售價
decimalcurrentPrice=0;
currentPrice=productSalePrice*(decimal)0.93;
intproductSysNo=0;
//系統原價
decimaloldPrice=0;
}
#endregion
writelog(otherSOID+"下載成功");
}
catch(Exceptionerr2)
{
writelog(err2.Message);
}
#endregion
}
}
catch(Exceptionerr)
{
writelog(err.Message);
}
}
///<summary>
///根據第三方訂單號獲取訂單明細
///</summary>
///<paramname="otherSOID"></param>
///<returns></returns>
privateList<OrderItem>DownOrderItem(stringotherSOID)
{
List<OrderItem>resualt=newList<OrderItem>();
try
{
#region獲取明細
ListOrderItemsRequestreq=newListOrderItemsRequest();
req.SellerId=Merchant;
req.AmazonOrderId=otherSOID;
MarketplaceWebServiceOrdersConfigconfig=newMarketplaceWebServiceOrdersConfig();
config.ServiceURL="https://mws.amazonservices.com.cn/Orders/2011-01-01";
config.SetUserAgent(applicationName,applicationVersion);
MarketplaceWebServiceOrdersClientclient=newMarketplaceWebServiceOrdersClient(applicationName,applicationVersion,AWSAccessKeyID,Key,config);
ListOrderItemsResponseresponse=client.ListOrderItems(req);
resualt=response.ListOrderItemsResult.OrderItems.OrderItem;
#endregion
}
catch(Exceptionerr)
{
writelog(err.Message);
}
returnresualt;
}
總結
以上是生活随笔為你收集整理的亚马逊API之订单下载的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: <数学的故事>之感想
- 下一篇: Revit2018 没有外部工具,问题解