介紹:本文介紹通過API下載亞馬遜平台的訂單。
第一步:下載亞馬遜平台的客戶端庫,網址:https://developer.amazonservices.com.cn/doc/orders/orders/v20110101/cSharp.html,解壓后,重新生成DLL
第二步:在自己的項目中引用DLL,撰寫調用代碼。訂單下載涉及兩個接口:ListOrders和ListOrderItems
下面直接上代碼:
參數:
//賣家編號
public
string Merchant =
"
XXX
";
// 商城編號
public string MarketplaceID = " XXX ";
// AWS訪問密鑰
public string AWSAccessKeyID = " XXX ";
// 密鑰
public string Key = " XXX ";
public string applicationName = " XXX ";
public string applicationVersion = " 1.0 ";
// 商城編號
public string MarketplaceID = " XXX ";
// AWS訪問密鑰
public string AWSAccessKeyID = " XXX ";
// 密鑰
public string Key = " XXX ";
public string applicationName = " XXX ";
public string applicationVersion = " 1.0 ";
調用ListOrders和ListOrderItems,下載訂單信息
///
<summary>
/// 訂單下載
/// </summary>
private void Down()
{
try
{
ListOrdersRequest req = new ListOrdersRequest();
req.CreatedAfter = DateTime.Now.AddDays(- 3);
OrderStatusList statusList= new OrderStatusList();
// 待發貨
List<OrderStatusEnum> status= new List<OrderStatusEnum> {OrderStatusEnum.Unshipped,OrderStatusEnum.PartiallyShipped};
statusList.Status=status;
req.OrderStatus = statusList;
// 賣家編號
req.SellerId = Merchant;
MarketplaceIdList m= new MarketplaceIdList();
List< string> mID= new List< string>();
mID.Add(MarketplaceID);
m.Id=mID;
req.MarketplaceId = m;
MarketplaceWebServiceOrdersConfig config = new MarketplaceWebServiceOrdersConfig();
config.ServiceURL = " https://mws.amazonservices.com.cn/Orders/2011-01-01 ";
config.SetUserAgent(applicationName, applicationVersion);
MarketplaceWebServiceOrdersClient client = new MarketplaceWebServiceOrdersClient(applicationName, applicationVersion, AWSAccessKeyID, Key, config);
ListOrdersResponse response = client.ListOrders(req);
OrderList orders = response.ListOrdersResult.Orders;
List<Order> orderList=orders.Order;
string otherSOID = "";
string sql = "";
int isImported = 0;
decimal soAmt = 0;
// 申通
int expressSysNo = 3;
// 網銀在線
int paySysNo = 3;
// 運費
decimal expressFee = 0;
// 買家用戶名
string customerUserID = "";
string receiveName = "";
string province = "";
string city = "";
string district = "";
string address = "";
string zip = "";
string tel = "";
string mobile = "";
string customerNote = "";
int customerSysNo = 0;
// 亞馬遜
int platformSysNo = 16;
int areaSysNo = 0;
int salesManSysNo = 1;
foreach (Order so in orderList)
{
#region 訂單
// 第三方訂單號
isImported = 1;
otherSOID = so.AmazonOrderId;
#region 檢查第三方訂單號是否存在
#endregion
// 訂單金額(暫時不確定是否包含運費)
decimal.TryParse(so.OrderTotal.Amount, out soAmt);
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 (OrderItem item in items)
{
// 產品編碼
string productID = item.SellerSKU;
// 產品小計金額(即ItemPrice 的值等於商品的售價 x 商品的訂購數量。)
decimal itemPrice = 0;
decimal.TryParse(item.ItemPrice.Amount, out itemPrice);
// 數量
decimal qty = item.QuantityOrdered;
// 售價
decimal productSalePrice = 0;
productSalePrice = itemPrice/qty;
// 折后售價
decimal currentPrice = 0;
currentPrice = productSalePrice*( decimal) 0.93;
int productSysNo = 0;
// 系統原價
decimal oldPrice = 0;
}
#endregion
writelog(otherSOID + " 下載成功 ");
}
catch (Exception err2)
{
writelog(err2.Message);
}
#endregion
}
}
catch (Exception err)
{
writelog(err.Message);
}
}
/// <summary>
/// 根據第三方訂單號獲取訂單明細
/// </summary>
/// <param name="otherSOID"></param>
/// <returns></returns>
private List<OrderItem> DownOrderItem( string otherSOID)
{
List<OrderItem> resualt = new List<OrderItem>();
try
{
#region 獲取明細
ListOrderItemsRequest req = new ListOrderItemsRequest();
req.SellerId = Merchant;
req.AmazonOrderId = otherSOID;
MarketplaceWebServiceOrdersConfig config = new MarketplaceWebServiceOrdersConfig();
config.ServiceURL = " https://mws.amazonservices.com.cn/Orders/2011-01-01 ";
config.SetUserAgent(applicationName, applicationVersion);
MarketplaceWebServiceOrdersClient client = new MarketplaceWebServiceOrdersClient(applicationName, applicationVersion, AWSAccessKeyID, Key, config);
ListOrderItemsResponse response = client.ListOrderItems(req);
resualt=response.ListOrderItemsResult.OrderItems.OrderItem;
#endregion
}
catch (Exception err)
{
writelog(err.Message);
}
return resualt;
/// 訂單下載
/// </summary>
private void Down()
{
try
{
ListOrdersRequest req = new ListOrdersRequest();
req.CreatedAfter = DateTime.Now.AddDays(- 3);
OrderStatusList statusList= new OrderStatusList();
// 待發貨
List<OrderStatusEnum> status= new List<OrderStatusEnum> {OrderStatusEnum.Unshipped,OrderStatusEnum.PartiallyShipped};
statusList.Status=status;
req.OrderStatus = statusList;
// 賣家編號
req.SellerId = Merchant;
MarketplaceIdList m= new MarketplaceIdList();
List< string> mID= new List< string>();
mID.Add(MarketplaceID);
m.Id=mID;
req.MarketplaceId = m;
MarketplaceWebServiceOrdersConfig config = new MarketplaceWebServiceOrdersConfig();
config.ServiceURL = " https://mws.amazonservices.com.cn/Orders/2011-01-01 ";
config.SetUserAgent(applicationName, applicationVersion);
MarketplaceWebServiceOrdersClient client = new MarketplaceWebServiceOrdersClient(applicationName, applicationVersion, AWSAccessKeyID, Key, config);
ListOrdersResponse response = client.ListOrders(req);
OrderList orders = response.ListOrdersResult.Orders;
List<Order> orderList=orders.Order;
string otherSOID = "";
string sql = "";
int isImported = 0;
decimal soAmt = 0;
// 申通
int expressSysNo = 3;
// 網銀在線
int paySysNo = 3;
// 運費
decimal expressFee = 0;
// 買家用戶名
string customerUserID = "";
string receiveName = "";
string province = "";
string city = "";
string district = "";
string address = "";
string zip = "";
string tel = "";
string mobile = "";
string customerNote = "";
int customerSysNo = 0;
// 亞馬遜
int platformSysNo = 16;
int areaSysNo = 0;
int salesManSysNo = 1;
foreach (Order so in orderList)
{
#region 訂單
// 第三方訂單號
isImported = 1;
otherSOID = so.AmazonOrderId;
#region 檢查第三方訂單號是否存在
#endregion
// 訂單金額(暫時不確定是否包含運費)
decimal.TryParse(so.OrderTotal.Amount, out soAmt);
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 (OrderItem item in items)
{
// 產品編碼
string productID = item.SellerSKU;
// 產品小計金額(即ItemPrice 的值等於商品的售價 x 商品的訂購數量。)
decimal itemPrice = 0;
decimal.TryParse(item.ItemPrice.Amount, out itemPrice);
// 數量
decimal qty = item.QuantityOrdered;
// 售價
decimal productSalePrice = 0;
productSalePrice = itemPrice/qty;
// 折后售價
decimal currentPrice = 0;
currentPrice = productSalePrice*( decimal) 0.93;
int productSysNo = 0;
// 系統原價
decimal oldPrice = 0;
}
#endregion
writelog(otherSOID + " 下載成功 ");
}
catch (Exception err2)
{
writelog(err2.Message);
}
#endregion
}
}
catch (Exception err)
{
writelog(err.Message);
}
}
/// <summary>
/// 根據第三方訂單號獲取訂單明細
/// </summary>
/// <param name="otherSOID"></param>
/// <returns></returns>
private List<OrderItem> DownOrderItem( string otherSOID)
{
List<OrderItem> resualt = new List<OrderItem>();
try
{
#region 獲取明細
ListOrderItemsRequest req = new ListOrderItemsRequest();
req.SellerId = Merchant;
req.AmazonOrderId = otherSOID;
MarketplaceWebServiceOrdersConfig config = new MarketplaceWebServiceOrdersConfig();
config.ServiceURL = " https://mws.amazonservices.com.cn/Orders/2011-01-01 ";
config.SetUserAgent(applicationName, applicationVersion);
MarketplaceWebServiceOrdersClient client = new MarketplaceWebServiceOrdersClient(applicationName, applicationVersion, AWSAccessKeyID, Key, config);
ListOrderItemsResponse response = client.ListOrderItems(req);
resualt=response.ListOrderItemsResult.OrderItems.OrderItem;
#endregion
}
catch (Exception err)
{
writelog(err.Message);
}
return resualt;
}