public ListOrderItemsResponse AmazonOrderItemResponse(string AmazonOrderid) { ListOrderItemsResponse _objListOrderItem = new ListOrderItemsResponse(); MarketplaceWebServiceOrdersConfig config = new MarketplaceWebServiceOrdersConfig(); config.ServiceURL = CommonValue.strServiceURL; MarketplaceWebServiceOrders.MarketplaceWebServiceOrders client = new MarketplaceWebServiceOrdersClient( AccessKeyId, SecretKeyId, ApplicationName, ApplicationVersion, config); ListOrderItemsRequest _req = new ListOrderItemsRequest(); List <string> _marketPlaceId = new List <string>(); _marketPlaceId.Add(MarketplaceId); _req.SellerId = SellerId; _req.MWSAuthToken = MWSAuthToken; _req.AmazonOrderId = AmazonOrderid; return(_objListOrderItem = client.ListOrderItems(_req)); }
public void LeerLineasPedido(Order order, int pagina, int numero) { ListOrderItemsRequest request = new ListOrderItemsRequest(); request.SellerId = MERCHANT_ID; request.AmazonOrderId = order.AmazonOrderId; MarketplaceWebServiceOrdersConfig config = new MarketplaceWebServiceOrdersConfig { ServiceURL = "https://mws.amazonservices.es/Orders/2013-09-01" }; MarketplaceWebServiceOrdersClient client = new MarketplaceWebServiceOrdersClient(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, "AppName", "0.0", config); bool retryRequest = true; while (retryRequest == true) { retryRequest = false; try { // Debug.WriteLine(string.Format("{0} Leyendo Linea {1} de la pagina {2} ", DateTime.Now.ToString("f"),numero,pagina)); eventAntesLinea?.Invoke(new EventosAmazon { pagina = pagina, linea = numero, retardo = 0 }); var a = client.ListOrderItems(request); System.Threading.Thread.Sleep(2000); // Debug.WriteLine(string.Format("{0} Linea Leida {1} de la pagina {2} ", DateTime.Now.ToString("f"), numero, pagina)); GrabarOrderItems(a.ListOrderItemsResult.OrderItems, order); // eventDespuesLinea?.Invoke(new EventosAmazon { pagina = pagina, linea = numero, retardo = 0 }); } catch (MarketplaceWebServiceOrdersException ex) { if (ex.ErrorCode.Contains("RequestThrottled")) { int retardo = 60000; retryRequest = true; // Debug.WriteLine(string.Format("{0} Inicio Troleado {1} de la pagina {2} ", DateTime.Now.ToString("f"), numero, pagina)); eventAntesRetardoTroleoLinea?.Invoke(new EventosAmazon { pagina = pagina, linea = numero, retardo = retardo }); System.Threading.Thread.Sleep(retardo); eventDespuesRetardoTroleoLinea?.Invoke(new EventosAmazon { pagina = pagina, linea = numero, retardo = retardo }); // Debug.WriteLine(string.Format("{0} Fin Troleado {1} de la pagina {2} ", DateTime.Now.ToString("f"), numero, pagina)); } else { eventError?.Invoke(new EventosAmazon { pagina = pagina, linea = numero, retardo = 0, error = ex.Detail }); } } } }
/// <summary> /// Implement the Process step for PowerShell Cmdlets /// </summary> protected override void ProcessRecord() { base.ProcessRecord(); /* * // If no dates are specificied, start a day ago ... * if (CreatedBefore == DateTime.MaxValue && CreatedAfter == DateTime.MinValue) * { * CreatedAfter = DateTime.UtcNow.AddDays(-1); * } */ // Amazon's policy doesn't allow calling with a CreatedBefore after two minutes before the request time if (CreatedBefore == DateTime.MaxValue) { CreatedBefore = DateTime.Now.AddMinutes(-2); } var orderRequest = new ListOrdersRequest { MarketplaceId = new MarketplaceIdList(), OrderStatus = new OrderStatusList(), BuyerEmail = this.BuyerEmail, SellerId = this.MerchantId, SellerOrderId = this.SellerOrderId, CreatedAfter = this.CreatedAfter, CreatedBefore = this.CreatedBefore }; orderRequest.OrderStatus.Status.AddRange(OrderStatus); orderRequest.MarketplaceId.Id.AddRange(Marketplace); var response = marketplaceWebServiceOrdersClient.ListOrders(orderRequest); foreach (var order in response.ListOrdersResult.Orders.Order) { var output = new PSObject(order); if (IncludeItems.ToBool()) { var itemRequest = new ListOrderItemsRequest { AmazonOrderId = order.AmazonOrderId, SellerId = this.MerchantId, }; var items = marketplaceWebServiceOrdersClient.ListOrderItems(itemRequest); output.Properties.Add(new PSNoteProperty("Items", items.ListOrderItemsResult.OrderItems.OrderItem)); } WriteObject(output); } }
/// <summary> /// Converts the response object into MarketplaceOrder object. Also makes the call to get the items for the order. /// </summary> /// <param name="order">The given amazon order object.</param> /// <returns>A MarketplaceOrder object</returns> private Contracts.MarketplaceOrder ConvertOrderResponseToMarketplaceOrder(Order order) { var marketplaceOrder = new Contracts.MarketplaceOrder() { BuyerShippingAddress1 = order.ShippingAddress.AddressLine1, BuyerShippingAddress2 = order.ShippingAddress.AddressLine2, BuyerShippingAddress3 = order.ShippingAddress.AddressLine3, BuyerShippingCity = order.ShippingAddress.City, BuyerShippingState = order.ShippingAddress.StateOrRegion, BuyerShippingZip = order.ShippingAddress.PostalCode, BuyerShippingName = order.ShippingAddress.Name, BuyerShippingPhone = order.ShippingAddress.Phone, BuyerEmail = order.BuyerEmail, BuyerName = order.BuyerName, OrderTotal = decimal.Parse(order.OrderTotal.Amount), MarketplaceOrderId = order.AmazonOrderId, OrderStatus = order.OrderStatus == OrderStatusEnum.PartiallyShipped ? Contracts.EOrderStatus.PartiallyShipped : Contracts.EOrderStatus.Unshipped, Marketplace = Contracts.EMarketplace.Amazon, ShipmentServiceLevel = order.ShipmentServiceLevelCategory }; var listItemsResponse = _AmazonOrdersClient.ListOrderItems(CreateListOrderItemsRequest(order)); if (!string.IsNullOrWhiteSpace(listItemsResponse.ListOrderItemsResult.NextToken)) { throw new MarketplaceWebServiceException("ListOrderItems returned a next token. Please restructure the code to continue pulling order items with this token."); } // Convert the item responses to marketplace order item objects. marketplaceOrder.Items = listItemsResponse.ListOrderItemsResult.OrderItems.OrderItem.Select(item => new Contracts.MarketplaceOrderItem() { MarketplaceItemId = item.ASIN, MarketplaceOrderItemId = item.OrderItemId, SKU = item.SellerSKU, Price = decimal.Parse(item.ItemPrice.Amount), ShippingPrice = decimal.Parse(item.ShippingPrice.Amount), Tax = decimal.Parse(item.ItemTax.Amount), ShippingTax = decimal.Parse(item.ShippingTax.Amount), QuantityShipped = Convert.ToInt32(item.QuantityShipped), QuantityUnshipped = Convert.ToInt32(item.QuantityOrdered - item.QuantityShipped) } ); return(marketplaceOrder); }
public static DataSet ListAmazonOrderLine(string amazonOrderid, string merchantId, string marketplaceId, string accessKeyId, string secretAccessKey) { DataSet amazonOrderLineDs = new DataSet(); const string applicationName = "<Your Application Name>"; const string applicationVersion = "<Your Application Version>"; ListOrderItemsRequest request = new ListOrderItemsRequest(); string sellerId = merchantId; request.SellerId = sellerId; request.AmazonOrderId = amazonOrderid; MarketplaceWebServiceOrdersConfig config = new MarketplaceWebServiceOrdersConfig(); config.ServiceURL = "https://mws.amazonservices.com"; MarketplaceWebServiceOrdersClient client = new MarketplaceWebServiceOrdersClient(accessKeyId, secretAccessKey, applicationName, applicationVersion, config); try { IMWSResponse response = null; response = client.ListOrderItems(request); ResponseHeaderMetadata rhmd = response.ResponseHeaderMetadata; Console.WriteLine("RequestId: " + rhmd.RequestId); Console.WriteLine("Timestamp: " + rhmd.Timestamp); string responseXml = response.ToXML(); System.IO.File.WriteAllText(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\AmazonOrderLineList.xml", responseXml); amazonOrderLineDs.ReadXml(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\AmazonOrderLineList.xml", XmlReadMode.InferSchema); return(amazonOrderLineDs); } catch (MarketplaceWebServiceOrdersException ex) { // Exception properties are important for diagnostics. ResponseHeaderMetadata rhmd = ex.ResponseHeaderMetadata; Console.WriteLine("Service Exception:"); if (rhmd != null) { Console.WriteLine("RequestId: " + rhmd.RequestId); Console.WriteLine("Timestamp: " + rhmd.Timestamp); } Console.WriteLine("Message: " + ex.Message); Console.WriteLine("StatusCode: " + ex.StatusCode); Console.WriteLine("ErrorCode: " + ex.ErrorCode); Console.WriteLine("ErrorType: " + ex.ErrorType); throw ex; } }
/// <summary> /// Converts the response object into MarketplaceOrder object. /// Also makes the call to get the items for the order. /// </summary> /// <param name="order">The given Amazon order objecdt.</param> /// <returns>A MarketplaceOrder object</returns> private MarketplaceOrder convertOrderResponseToMarketplaceOrder(MarketplaceWebServiceOrders.Model.Order order) { var orderStatus = (Inventory.Shared.Models.OrderStatus)Enum.Parse(typeof(Inventory.Shared.Models.OrderStatus), order.OrderStatus, true); var marketplaceOrder = new MarketplaceOrder() { BuyerEmail = order.BuyerEmail, BuyerName = order.BuyerName, OrderTotal = order.IsSetOrderTotal() ? decimal.Parse(order.OrderTotal.Amount) : 0, OrderId = order.AmazonOrderId, Marketplace = ChannelName, ShipServiceLevel = order.ShipServiceLevel, ShipmentServiceCategory = order.ShipmentServiceLevelCategory, NumOfItemsShipped = order.NumberOfItemsShipped, NumOfItemsUnshipped = order.NumberOfItemsUnshipped, PurchaseDate = order.PurchaseDate, LastUpdateDate = order.LastUpdateDate, PaymentMethod = order.PaymentMethod, OrderStatus = orderStatus, OrderType = order.OrderType, EarliestShipDate = order.EarliestShipDate, LatestShipDate = order.LatestShipDate, EarliestDeliveryDate = order.EarliestDeliveryDate, LatestDeliveryDate = order.LatestDeliveryDate, MarketplaceId = order.MarketplaceId, PurchaseOrderNumber = order.PurchaseOrderNumber, SalesChannel = order.SalesChannel, SellerOrderId = order.SellerOrderId, }; if (order.IsSetShippingAddress()) { marketplaceOrder.ShippingAddressLine1 = order.ShippingAddress.AddressLine1; marketplaceOrder.ShippingAddressLine2 = order.ShippingAddress.AddressLine2; marketplaceOrder.ShippingAddressLine3 = order.ShippingAddress.AddressLine3; marketplaceOrder.ShippingCity = order.ShippingAddress.City; marketplaceOrder.ShippingStateOrRegion = order.ShippingAddress.StateOrRegion; marketplaceOrder.ShippingPostalCode = order.ShippingAddress.PostalCode; marketplaceOrder.ShippingAddressName = order.ShippingAddress.Name; marketplaceOrder.ShippingAddressPhone = order.ShippingAddress.Phone; } // do the request for the list of items for this order var listOrderRequest = new ListOrderItemsRequest { SellerId = _credential.MerchantId, AmazonOrderId = order.AmazonOrderId }; var listItemsResponse = _ordersClient.ListOrderItems(listOrderRequest); var nextToken = listItemsResponse.ListOrderItemsResult.NextToken; var items = new List <MarketplaceOrderItem>(); ListOrderItemsByNextTokenResponse nextTokenResponse = null; // convert the item responses to marketplace order item objects. var orderItems = listItemsResponse.ListOrderItemsResult.OrderItems; do { if (nextTokenResponse != null) { orderItems = nextTokenResponse.ListOrderItemsByNextTokenResult.OrderItems; nextToken = nextTokenResponse.ListOrderItemsByNextTokenResult.NextToken; } // iterate and convert the marketplace order item into local object for (var i = 0; i < orderItems.Count; i++) { var orderItem = orderItems[i]; var item = new MarketplaceOrderItem { OrderId = order.AmazonOrderId, MarketplaceItemId = orderItem.ASIN, OrderItemId = orderItem.OrderItemId, SKU = orderItem.SellerSKU, Title = orderItem.Title, QtyOrdered = Convert.ToInt32(orderItem.QuantityOrdered), QtyShipped = Convert.ToInt32(orderItem.QuantityShipped), ConditionNote = orderItem.ConditionNote }; item.Price = orderItem.IsSetItemPrice() ? decimal.Parse(orderItem.ItemPrice.Amount) : 0; item.ShippingPrice = orderItem.IsSetShippingPrice() ? decimal.Parse(orderItem.ShippingPrice.Amount) : 0; item.GiftWrapPrice = orderItem.IsSetGiftWrapPrice() ? decimal.Parse(orderItem.GiftWrapPrice.Amount) : 0; item.Tax = orderItem.IsSetItemTax() ? decimal.Parse(orderItem.ItemTax.Amount) : 0; item.ShippingTax = orderItem.IsSetShippingTax() ? decimal.Parse(orderItem.ShippingTax.Amount) : 0; item.GiftWrapTax = orderItem.IsSetGiftWrapTax() ? decimal.Parse(orderItem.GiftWrapTax.Amount) : 0; item.ShippingDiscount = orderItem.IsSetShippingDiscount() ? decimal.Parse(orderItem.ShippingDiscount.Amount) : 0; item.PromotionDiscount = orderItem.IsSetPromotionDiscount() ? decimal.Parse(orderItem.PromotionDiscount.Amount) : 0; items.Add(item); } // get the page order items if the next token not null if (!string.IsNullOrWhiteSpace(nextToken)) { // pause for 2 seconds, this is the restore reate for the ListOrderItemsByNextToken for every 30 quota Thread.Sleep(2000); var nextRequest = new ListOrderItemsByNextTokenRequest { SellerId = _credential.MerchantId, NextToken = nextToken }; nextTokenResponse = _ordersClient.ListOrderItemsByNextToken(nextRequest); } } while (!string.IsNullOrWhiteSpace(nextToken)); // set the order items to the local object marketplaceOrder.OrderItems = items; return(marketplaceOrder); }
public static void GetOrderList() { dt = new DataTable(); dt.Columns.Add("OrderId"); MarketplaceWebServiceOrdersConfig config = new MarketplaceWebServiceOrdersConfig(); string SellerId = "A3U1G59YKB47LS"; string MarketplaceId = "A1VC38T7YXB528"; string AccessKeyId = "AKIAJFRPIMOTC4CJGHLQ"; string SecretKeyId = "4KI9yuXr7Ni64iFpdjnW1dw3LNdNXIn4rgOnNrZQ"; string ApplicationVersion = "1.0"; string ApplicationName = "ラスタスポーツ"; string MWSAuthToken = "amzn.mws.fea748c0-bfe0-4039-0cc0-88b6ce5c0058"; string serviceURL = "https://mws.amazonservices.jp"; string strbuff = string.Empty; config.ServiceURL = serviceURL; MarketplaceWebServiceOrders.MarketplaceWebServiceOrders client = new MarketplaceWebServiceOrdersClient( AccessKeyId, SecretKeyId, ApplicationName, ApplicationVersion, config); //ListOrder try { ListOrdersRequest request = new ListOrdersRequest(); request.SellerId = SellerId; request.CreatedAfter = DateTime.Now.AddDays(-1); List <string> lstMarketplace = new List <string>(); lstMarketplace.Add(MarketplaceId); request.MarketplaceId = lstMarketplace; request.MWSAuthToken = MWSAuthToken; ListOrdersResponse response = client.ListOrders(request); if (response.IsSetListOrdersResult()) { ListOrdersResult listOrdersResult = response.ListOrdersResult; if (listOrdersResult.IsSetOrders()) { List <Order> orders = listOrdersResult.Orders; foreach (Order order in orders) { dt.Rows.Add(order.AmazonOrderId); } } } } catch (Exception ex) { var msge = ex.Message; } //// ListOrderByNextToken try { ListOrdersRequest request = new ListOrdersRequest(); request.SellerId = SellerId; request.CreatedAfter = DateTime.Now.AddDays(-1); List <string> lstMarketplace = new List <string>(); lstMarketplace.Add(MarketplaceId); request.MarketplaceId = lstMarketplace; request.MaxResultsPerPage = 14; request.MWSAuthToken = MWSAuthToken; ListOrdersResponse response = client.ListOrders(request); if (response.IsSetListOrdersResult()) { ListOrdersResult listOrdersResult = response.ListOrdersResult; if (listOrdersResult.IsSetOrders()) { if (listOrdersResult.NextToken != null) { ListOrdersByNextTokenRequest request1 = new ListOrdersByNextTokenRequest(); request1.SellerId = SellerId; request1.MWSAuthToken = MWSAuthToken; request1.NextToken = listOrdersResult.NextToken; ListOrdersByNextTokenResponse response1 = client.ListOrdersByNextToken(request1); if (response1.IsSetListOrdersByNextTokenResult()) { ListOrdersByNextTokenResult listOrdersByNextResult = response1.ListOrdersByNextTokenResult; if (listOrdersByNextResult.IsSetOrders()) { List <Order> orders = listOrdersByNextResult.Orders; foreach (Order order in orders) { dt.Rows.Add(order.AmazonOrderId); // strbuff += order.AmazonOrderId + System.Environment.NewLine; } } } } } var val = strbuff; } Environment.Exit(0); } catch (Exception ex) { } // //List Order Item //try //{ // foreach (DataRow dr in dt.Rows) // { // ListOrderItemsRequest request = new ListOrderItemsRequest(); // request.SellerId = SellerId; // request.AmazonOrderId = dr["OrderId"].ToString(); // request.MWSAuthToken = MWSAuthToken; // ListOrderItemsResponse response = client.ListOrderItems(request); // if (response.IsSetListOrderItemsResult()) // { // ListOrderItemsResult listOrderItemsResult = response.ListOrderItemsResult; // if (listOrderItemsResult.IsSetOrderItems()) // { // List<OrderItem> orderItems = listOrderItemsResult.OrderItems; // foreach (OrderItem orderItem in orderItems) // { // strbuff += "商品名:" + orderItem.Title + System.Environment.NewLine; // } // } // } // } //} //catch (Exception ex) //{ //} //// ListOrderItem_byNextToken try { foreach (DataRow dr in dt.Rows) { ListOrderItemsRequest request = new ListOrderItemsRequest(); request.SellerId = SellerId; request.AmazonOrderId = dr["OrderId"].ToString(); request.MWSAuthToken = MWSAuthToken; ListOrderItemsResponse response = client.ListOrderItems(request); if (response.IsSetListOrderItemsResult()) { ListOrderItemsResult listOrderItemsResult = response.ListOrderItemsResult; if (listOrderItemsResult.NextToken != null) { ListOrderItemsByNextTokenRequest request1 = new ListOrderItemsByNextTokenRequest(); request1.SellerId = SellerId; request1.MWSAuthToken = MWSAuthToken; request1.NextToken = listOrderItemsResult.NextToken; ListOrderItemsByNextTokenResponse response1 = client.ListOrderItemsByNextToken(request1); if (response1.IsSetListOrderItemsByNextTokenResult()) { ListOrderItemsByNextTokenResult listOrderByNextItemsResult = response1.ListOrderItemsByNextTokenResult; if (listOrderByNextItemsResult.IsSetOrderItems()) { List <OrderItem> orderItems = listOrderItemsResult.OrderItems; foreach (OrderItem orderItem in orderItems) { if (orderItem.IsSetOrderItemId()) { strbuff += "商品名:" + orderItem.Title + System.Environment.NewLine; } } } } } } } } catch (Exception ex) { } //// GetOrder //try //{ // foreach (DataRow dr in dt.Rows) // { // GetOrderRequest request = new GetOrderRequest(); // request.SellerId = SellerId; // request.MWSAuthToken = MWSAuthToken; // List<string> amazonorderId = new List<string>(); // amazonorderId.Add(dr["OrderId"].ToString()); // request.AmazonOrderId = amazonorderId; // GetOrderResponse response = client.GetOrder(request); // if (response.IsSetGetOrderResult()) // { // List<Order> orders = response.GetOrderResult.Orders; // foreach (Order order in orders) // { // strbuff += "購入者:" + order.AmazonOrderId + ","+ order.OrderStatus + System.Environment.NewLine; // } // } // } //} //catch (Exception ex) //{ //} //// GetService Status //try //{ // MarketplaceWebServiceOrdersConfig config1 = new MarketplaceWebServiceOrdersConfig(); // config1.ServiceURL = serviceURL; // MarketplaceWebServiceOrders.MarketplaceWebServiceOrders client1 = new MarketplaceWebServiceOrdersClient( // AccessKeyId, // SecretKeyId, // ApplicationName, // ApplicationVersion, // config1); // MarketplaceWebServiceOrders.Model.GetServiceStatusRequest request = new MarketplaceWebServiceOrders.Model.GetServiceStatusRequest(); // request.SellerId = SellerId; // request.MWSAuthToken = MWSAuthToken; // // MarketplaceWebServiceOrders.Model.GetServiceStatusRequest // var response = client1.GetServiceStatus(request); // if (response.IsSetGetServiceStatusResult()) // { // strbuff = "処理状況:" + response.GetServiceStatusResult.Status; // } //} //catch (Exception ex) //{ //} }