亞馬遜API之訂單下載


介紹:本文介紹通過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 ";

 調用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;

        } 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM