• 亚马逊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;

            } 

  • 相关阅读:
    windows基础应用(word)
    Spring-处理自动装配的歧义性
    Spring-Condition设置
    Spring-profile设置
    Spring-导入和混合配置
    Spring-装配Bean
    jQuery-理解事件
    Oracle-批量修改语句及相关知识点
    Oracle中的不等于号
    JavaScript-事件冒泡简介及应用
  • 原文地址:https://www.cnblogs.com/911/p/2436320.html
Copyright © 2020-2023  润新知