/// <summary> /// Makes the single orders call. /// </summary> /// <param name="pageNumber">The page number.</param> /// <param name="token">The token.</param> /// <param name="dateFromUtc">The date from UTC.</param> /// <param name="dateToUtc">The date to UTC.</param> /// <returns></returns> private GetOrdersCall MakeSingleOrdersCall(int pageNumber, string token, DateTime dateFromUtc, DateTime dateToUtc) { GetOrdersCall getOrdersCall = new GetOrdersCall(GetContext(token)); getOrdersCall.IncludeFinalValueFee = true; getOrdersCall.DetailLevelList = new DetailLevelCodeTypeCollection(); getOrdersCall.DetailLevelList.Add(DetailLevelCodeType.ReturnAll); getOrdersCall.CreateTimeFrom = dateFromUtc; getOrdersCall.CreateTimeTo = dateToUtc; getOrdersCall.OrderRole = TradingRoleCodeType.Seller; getOrdersCall.OrderStatus = OrderStatusCodeType.All; getOrdersCall.Pagination = new PaginationType { EntriesPerPage = Config.GetOrdersCallPageSize, EntriesPerPageSpecified = true, PageNumber = pageNumber, PageNumberSpecified = true }; getOrdersCall.CallRetry = new CallRetry { DelayTime = Config.GetOrdersCallRetryDelayMilliSec, MaximumRetries = Config.GetOrdersCallMaximumRetries }; getOrdersCall.Execute(); return(getOrdersCall); }
public string GetOrders() { try { ApiContext context = eBayCall.GetContext(); GetOrdersCall getOrders = new GetOrdersCall(context); PopulateGetOrders(getOrders); getOrders.Execute(); if (getOrders.ApiResponse.Ack != AckCodeType.Failure) { // Check if any orders are returned if (getOrders.ApiResponse.OrderArray.Count != 0) { // Convert response to Json return(JsonConvert.SerializeObject(getOrders.ApiResponse.OrderArray)); } else { return("No orders returned from the API."); } } else { return("AckCodeType Failed"); } } catch (Exception ex) { return("There was an exception. " + ex.Message); } }
// Given a time period specified by startDate and endDate, returns all the order ids created in that period. public static StringCollection GetAllOrderIds(AccountType account, DateTime startDate, DateTime endDate) { if (account.SellerApiContext == null) { return(null); } TimeFilter timeFilter = new TimeFilter(); timeFilter.TimeFrom = startDate; timeFilter.TimeTo = endDate; GetOrdersCall getOrdersApiCall = new GetOrdersCall(account.SellerApiContext); DetailLevelCodeType[] detailLevels = new DetailLevelCodeType[] { DetailLevelCodeType.ReturnSummary }; getOrdersApiCall.DetailLevelList = new DetailLevelCodeTypeCollection(detailLevels); getOrdersApiCall.GetOrders(timeFilter, TradingRoleCodeType.Seller, OrderStatusCodeType.All); StringCollection orderIds = new StringCollection(); foreach (OrderType order in getOrdersApiCall.OrderList) { orderIds.Add(order.OrderID); } return(orderIds); }
public OrderType[] DownloadNeweBayOrder(DateTime?fromTime, DateTime?toTime) { try { GetOrdersCall getOrdersCall; GetOrdersRequestType getOrdersRequest; PaginationType paging = new PaginationType(); int totalPage; DetailLevelCodeTypeCollection detailLevelColl = new DetailLevelCodeTypeCollection(); detailLevelColl.Add(DetailLevelCodeType.ReturnAll); List <OrderType> returnOrders = new List <OrderType>(); foreach (var apiContext in _eBayAPIContextProvider.GetAPIContext()) { getOrdersCall = new GetOrdersCall(apiContext); getOrdersRequest = new GetOrdersRequestType(); getOrdersRequest.OrderRole = TradingRoleCodeType.Seller; getOrdersRequest.DetailLevel = detailLevelColl; //var getOrderRequestDatetimeNow = DateTime.Now.AddMinutes(-2); if (fromTime != null) { getOrdersRequest.CreateTimeFrom = ((DateTime)fromTime).ToUniversalTime(); } if (toTime != null) { getOrdersRequest.CreateTimeTo = ((DateTime)toTime).ToUniversalTime(); } int pageNumber = 1; do { paging.EntriesPerPage = 100; paging.PageNumber = pageNumber; getOrdersRequest.Pagination = paging; var getOrdersResponse = getOrdersCall.ExecuteRequest(getOrdersRequest) as GetOrdersResponseType; if (getOrdersResponse.OrderArray != null && getOrdersResponse.OrderArray.Count > 0) { returnOrders.AddRange(getOrdersResponse.OrderArray.ToArray()); } totalPage = getOrdersResponse.PaginationResult.TotalNumberOfPages; pageNumber++; } while (pageNumber <= totalPage); } return(returnOrders.ToArray()); } catch (Exception ex) { return(default(OrderType[])); } }
private void simpleButtonLeer_Click(object sender, EventArgs e) { int pageNumber = 1; List <OrderType> orderType = new List <OrderType>(); foreach (CheckedListBoxItem cuenta in checkedListBoxControlCuentas.CheckedItems) { credencialesEbay.cuenta = cuenta.Value.ToString(); pageNumber = 1; while (true) { GetOrdersCall getOrdersCall = new GetOrdersCall(credencialesEbay.context); getOrdersCall.DetailLevelList = new DetailLevelCodeTypeCollection(); getOrdersCall.DetailLevelList.Add(DetailLevelCodeType.ReturnAll); getOrdersCall.CreateTimeTo = DateTime.Now.ToUniversalTime(); getOrdersCall.CreateTimeFrom = dateEditDesde.DateTime; getOrdersCall.IncludeFinalValueFee = true; PaginationType pagination = new PaginationType(); pagination.EntriesPerPage = 100; pagination.EntriesPerPageSpecified = true; pagination.PageNumber = pageNumber; pagination.PageNumberSpecified = true; getOrdersCall.Execute(); int total = 999; try { total = getOrdersCall.PaginationResult.TotalNumberOfPages; } catch { } simpleButtonLeer.Text = credencialesEbay.cuenta + string.Format(" {0} de {1}", pageNumber, total); Application.DoEvents(); var b = getOrdersCall.ApiResponse.Any.ToString(); for (int i = 0; i < getOrdersCall.ApiResponse.OrderArray.Count; i++) { orderType.Add(getOrdersCall.ApiResponse.OrderArray[i]); } Parallel.ForEach(orderType, new ParallelOptions { MaxDegreeOfParallelism = 4 }, webpage => { fnGrabarOrder(webpage); }); orderType.Clear(); var a = getOrdersCall.ApiResponse.OrderArray[0]; if (pageNumber < getOrdersCall.PaginationResult.TotalNumberOfPages) { pageNumber++; } else { break; } } } }
private void button2_Click(object sender, EventArgs e) { GetOrdersCall apiCall = new GetOrdersCall(apiContext); Console.WriteLine("Begin to call eBay API, please wait ..."); TimeFilter fltr = new TimeFilter(); fltr.TimeFrom = DateTime.Now.AddDays(-7); fltr.TimeTo = DateTime.Now.AddDays(-2); OrderTypeCollection list = apiCall.GetOrders(fltr, TradingRoleCodeType.Seller, OrderStatusCodeType.All); }
private List <MarketplaceOrder> getMarketplaceOrdersData(List <string> orderIds) { var context = new ApiContext(); var results = new List <MarketplaceOrder>(); try { // let's set the credentials for our eBay API service context.ApiCredential = _apiCredential; context.SoapApiServerUrl = _apiServiceUrl; // init the GetOrdersCall var apiCall = new GetOrdersCall(context); apiCall.DetailLevelList = new DetailLevelCodeTypeCollection(); apiCall.DetailLevelList.Add(DetailLevelCodeType.ReturnAll); apiCall.OrderRole = TradingRoleCodeType.Seller; apiCall.OrderStatus = OrderStatusCodeType.Completed; apiCall.Site = SiteCodeType.US; apiCall.OrderIDList = new StringCollection(orderIds.ToArray()); apiCall.Execute(); // check if the call is not success if (apiCall.ApiResponse.Ack != AckCodeType.Success) { _logger.Add(LogEntrySeverity.Error, LogEntryType.eBayOrders, string.Format("{0} - Error in retrieving orders for eBay. Error message: {1}", apiCall.ApiResponse.Errors[0].LongMessage), apiCall.ApiResponse.Errors.ToString()); return(null); } var ordersResult = apiCall.ApiResponse.OrderArray; if (ordersResult.Count == 0) { return(null); } // parsed the orders results foreach (OrderType item in ordersResult) { results.Add(parsedMarketplaceOrder(item)); } return(results); } catch (Exception ex) { _logger.LogError(LogEntryType.AmazonOrdersProvider, string.Format("{0} - Error in getting latest order data for Order Id: {1}. Error Message: {2}", ChannelName, string.Join(",", orderIds), EisHelper.GetExceptionMessage(ex)), ex.StackTrace); return(null); } }
public void GetOrders() { Assert.IsNotNull(TestData.NewItem, "Failed because no item available -- requires successful AddItem test"); // GetOrdersCall api = new GetOrdersCall(this.apiContext); api.OrderRole = TradingRoleCodeType.Seller; api.OrderStatus = OrderStatusCodeType.Active; System.DateTime calTo = System.DateTime.Now; System.DateTime calFrom = calTo.AddHours(-1); api.CreateTimeFrom = calFrom; api.CreateTimeTo = calTo; // Make API call. OrderTypeCollection orders = api.GetOrders(calFrom, calTo, api.OrderRole, api.OrderStatus); }
public static int GetNumberOfItems(ApiContext apiContext, DateTime DateFrom, DateTime DateTo, bool Active = true, bool Completed = true) { eBayClass.LogManager.RecordMessage("Starting a GetNumberOfItems call"); Blink(); Stopwatch s = Stopwatch.StartNew(); GetOrdersCall apiCall = new GetOrdersCall(apiContext); Blink(); apiCall.DetailLevelList = new DetailLevelCodeTypeCollection(new DetailLevelCodeType[] { DetailLevelCodeType.ReturnAll }); apiCall.ApiRequest.OutputSelector = new StringCollection() { "TransactionID", "PaginationResult" }; apiCall.Pagination = new PaginationType() { EntriesPerPage = 100, PageNumber = 1 }; TimeFilter createTime = new TimeFilter() { TimeFrom = DateFrom.Subtract(TimeDiff), TimeTo = DateTo.Subtract(TimeDiff) }; OrderStatusCodeType filterStatus = OrderStatusCodeType.All; if (Active && !Completed) { filterStatus = OrderStatusCodeType.Active; } else if (Completed && !Active) { filterStatus = OrderStatusCodeType.Completed; } OrderTypeCollection items = apiCall.GetOrders(createTime, TradingRoleCodeType.Seller, filterStatus); apiContext.ApiLogManager.RecordMessage(String.Format("Getting item list - SUCCESS, page {0}", 1)); Blink(); eBayClass.Metrics.GenerateReport(eBayClass.LogManager.ApiLoggerList[0]); eBayClass.LogManager.RecordMessage("Done; ms: " + s.ElapsedMilliseconds.ToString()); Blink(); return(apiCall.PaginationResult.TotalNumberOfEntries); }
private OrderTypeCollection ExecuteGetOrders(GetOrdersRequestType request) { GetOrdersCall call = new GetOrdersCall(_marketplace.GetApiContext()); GetOrdersResponseType response = call.ExecuteRequest(request) as GetOrdersResponseType; while (request.Pagination.PageNumber < response.PaginationResult.TotalNumberOfPages) { request.Pagination.PageNumber++; GetOrdersResponseType additionalResponse = call.ExecuteRequest(request) as GetOrdersResponseType; response.OrderArray.AddRange(additionalResponse.OrderArray); } return(response.OrderArray); }
private void BtnGetOrders_Click(object sender, System.EventArgs e) { try { LstOrders.Items.Clear(); GetOrdersCall apicall = new GetOrdersCall(Context); TimeFilter fltr = new TimeFilter(); if (ChkStartFrom.Checked) { fltr.TimeFrom = DatePickStartFrom.Value; } if (ChkStartTo.Checked) { fltr.TimeTo = DatePickStartTo.Value; } OrderTypeCollection orders = apicall.GetOrders(fltr, (TradingRoleCodeType)Enum.Parse(typeof(TradingRoleCodeType), CboRole.SelectedItem.ToString()), (OrderStatusCodeType)Enum.Parse(typeof(OrderStatusCodeType), CboStatus.SelectedItem.ToString())); foreach (OrderType order in orders) { string[] listparams = new string[5]; listparams[0] = order.OrderID; listparams[1] = order.OrderStatus.ToString(); listparams[2] = order.CreatingUserRole.ToString(); listparams[3] = order.AmountSaved.Value.ToString(); string[] itemids = new string[order.TransactionArray.Count]; int indx = 0; foreach (TransactionType trans in order.TransactionArray) { itemids[indx] = trans.Item.ItemID; indx++; } listparams[4] = String.Join(", ", itemids); ListViewItem vi = new ListViewItem(listparams); LstOrders.Items.Add(vi); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
/// <summary> /// Returns a list of ebay transaction types matching a specified time period /// </summary> /// <param name="from">Start date and time of the requiered time period</param> /// <param name="until">End date and time of the requiered time period</param> /// <returns></returns> public static List <TransactionType> LoadEbayTransactions(DateTime from, DateTime until) { List <TransactionType> result = new List <TransactionType>(); //Get all sales GetSellerTransactionsCall transactionCall = new GetSellerTransactionsCall(EbayController.GetApiContext()); transactionCall.DetailLevelList.Add(DetailLevelCodeType.ReturnAll); transactionCall.IncludeContainingOrder = true; transactionCall.Site = SiteCodeType.Germany; transactionCall.Pagination = new PaginationType(); transactionCall.Pagination.EntriesPerPage = 200; Int32 pageNumber = 1; do { transactionCall.Pagination.PageNumber = pageNumber; TransactionTypeCollection transactionPage = transactionCall.GetSellerTransactions(from, until); result.AddRange(transactionPage.ToArray()); pageNumber++; }while (transactionCall.HasMoreTransactions); //Get all orders for the loaded sales var orderIds = from current in result where current.ContainingOrder != null select current.ContainingOrder.OrderID; GetOrdersCall orderCall = new GetOrdersCall(EbayController.GetApiContext()); orderCall.OrderIDList = new StringCollection(orderIds.ToArray()); orderCall.Execute(); //Assign orders to sales List <OrderType> orders = new List <OrderType>(orderCall.OrderList.ToArray()); foreach (TransactionType current in result) { if (current.ContainingOrder != null) { current.ContainingOrder = orders.FirstOrDefault(x => x.OrderID == current.ContainingOrder.OrderID); } } return(result); }
private GetOrdersCall createGetOrdersCall(DateTime createdAfter) { // let's set the credentials for our eBay API service _context.ApiCredential = _apiCredential; _context.SoapApiServerUrl = _apiServiceUrl; // we will use the NumberOfDays filter for retrieving the order //var numberOfDays = (int)(DateTime.UtcNow - createdAfter).TotalDays; // init the GetOrdersCall var apiCall = new GetOrdersCall(_context); apiCall.DetailLevelList = new DetailLevelCodeTypeCollection(); apiCall.DetailLevelList.Add(DetailLevelCodeType.ReturnAll); apiCall.NumberOfDays = 30; // just make it 30 days apiCall.OrderRole = TradingRoleCodeType.Seller; apiCall.Site = SiteCodeType.US; return(apiCall); }
public static void PopulateGetOrders(GetOrdersCall getOrders) { DateTime CreateTimeFromPrev, CreateTimeFrom, CreateTimeTo; getOrders.DetailLevelList = new DetailLevelCodeTypeCollection(); getOrders.DetailLevelList.Add(DetailLevelCodeType.ReturnAll); // CreateTimeTo set to the current time CreateTimeTo = DateTime.Now.ToUniversalTime(); // Assumption call is made every 15 sec. So CreateTimeFrom of last call was 15 mins // prior to now TimeSpan ts1 = new TimeSpan(9000000000); CreateTimeFromPrev = CreateTimeTo.Subtract(ts1); // Set the CreateTimeFrom the last time you made the call minus 2 minutes TimeSpan ts2 = new TimeSpan(1200000000); CreateTimeFrom = CreateTimeFromPrev.Subtract(ts2); getOrders.CreateTimeFrom = CreateTimeFrom.AddDays(-7); getOrders.CreateTimeTo = CreateTimeTo; }
// http://developer.ebay.com/devzone/xml/docs/Reference/eBay/GetOrders.html public OrderTypeCollection GetOrders(OrderStatusCodeType type, DateTime from, DateTime to) { var call = new GetOrdersCall(api); call.DetailLevelList.Add(DetailLevelCodeType.ReturnAll); var timeFilter = new TimeFilter { TimeFrom = from, TimeTo = to }; var result = new OrderTypeCollection(); bool hasMoreEntries = true; int count = 1; while (hasMoreEntries) { call.Pagination = new PaginationType { PageNumber = count, EntriesPerPage = 200 }; OrderTypeCollection orders = call.GetOrders(timeFilter, TradingRoleCodeType.Seller, type); result.AddRange(orders); hasMoreEntries = call.HasMoreOrders; if (count++ > 10) { break; } } responseXML = call.SoapResponse; return(result); }
public OrderType GetTestOrder(String orderID) { OrderTypeCollection order = new OrderTypeCollection(); GetOrdersCall getOrder = new GetOrdersCall(context); getOrder.DetailLevelList = new DetailLevelCodeTypeCollection(); getOrder.DetailLevelList.Add(DetailLevelCodeType.ReturnAll); getOrder.OrderIDList = new StringCollection(new[] { orderID }); getOrder.Execute(); if (getOrder.ApiResponse.Ack != AckCodeType.Failure) { //Check if any orders are returned if (getOrder.ApiResponse.OrderArray.Count != 0) { order = getOrder.ApiResponse.OrderArray; } foreach (OrderType o in order) { return(o); } } return(null); }
public static List<EbayOrderType> GetOrderFromEbay(string token,string accountNum) { string senderEmail = ConfigurationManager.AppSettings["senderEmail"]; string messageFromPassword= ConfigurationManager.AppSettings["messageFromPassword"]; string messageToEmail = ConfigurationManager.AppSettings["messageToEmail"]; string smtpClient = ConfigurationManager.AppSettings["smtpClient"]; int smtpPortNum = ConvertUtility.ToInt(ConfigurationManager.AppSettings["smtpPortNum"]); List<EbayOrderType> OrderList = new List<EbayOrderType>(); ApiContext context = new ApiContext(); context.ApiCredential.eBayToken = token; context.SoapApiServerUrl = "https://api.ebay.com/wsapi"; context.Site = SiteCodeType.US; DateTime createTimeFrom, createTimeTo; GetOrdersCall GetOrderCall = new GetOrdersCall(context); GetOrderCall.DetailLevelList = new DetailLevelCodeTypeCollection(); GetOrderCall.DetailLevelList.Add(DetailLevelCodeType.ReturnAll); createTimeFrom = DateTime.Now.AddDays(-15).ToUniversalTime(); createTimeTo = DateTime.Now.ToUniversalTime(); int pageNumber = 1; int errorCount = 0; GetOrderCall.CreateTimeFrom = createTimeFrom; GetOrderCall.CreateTimeTo = createTimeTo; GetOrderCall.OrderStatus = OrderStatusCodeType.Completed; while (pageNumber<100) { try { PaginationType pagination = new PaginationType(); pagination.EntriesPerPage = 100; GetOrderCall.Pagination = pagination; pagination.PageNumber = pageNumber; GetOrderCall.Execute(); int totalPageNumber = GetOrderCall.PaginationResult.TotalNumberOfPages; if (pageNumber > totalPageNumber) { break; } else { if (GetOrderCall.ApiResponse.Ack != AckCodeType.Failure) { if (GetOrderCall.ApiResponse.OrderArray.Count != 0) { foreach (OrderType orderType in GetOrderCall.ApiResponse.OrderArray) { try { EbayOrderType ebayOrderType = new EbayOrderType(); string orderId = orderType.OrderID; DataRow checkDuplidatedDr = Db.Db.CheckDuplicatedOrderID(orderId); if (checkDuplidatedDr!=null) { if(checkDuplidatedDr["OrderStatus"].ToString() == "Completed") { continue; // continue if order already exist } else { Db.Db.DeleteUncompletedEbayOrder(orderId); } } else { EbayOrderHeaderType ebayOrderHeaderType = AddOrderHeader(orderType);//add header info foreach (ExternalTransactionType externalTransactionType in orderType.ExternalTransaction)//add external trasnaction info { EbayOrderPaymentTransactionType ebayOrderPaymentTransactionType = AddOrderPaymentTransaction(orderId, externalTransactionType); ebayOrderType.paymentTransaction.Add(ebayOrderPaymentTransactionType); } ebayOrderType.Header = ebayOrderHeaderType; int lineId = 0; foreach (TransactionType transactionType in orderType.TransactionArray)//add line info { lineId = lineId + 1; EbayOrderLineType ebayOrderLineType = AddOrderLine(orderId, transactionType, lineId); ebayOrderType.Line.Add(ebayOrderLineType); } OrderList.Add(ebayOrderType); } } catch(Exception ex) { ExceptionUtility exceptionUtility = new ExceptionUtility(); exceptionUtility.CatchMethod(ex, accountNum + ": GetOrderCall--foreach ", ex.Message.ToString(), senderEmail, messageFromPassword, messageToEmail, smtpClient, smtpPortNum); continue; //continue next single order if current order error } } } else { continue; // continue next account if no order } } else { ExceptionUtility exceptionUtility = new ExceptionUtility(); exceptionUtility.ErrorWarningMethod("AckCodeType Failure: " + accountNum, "AckCodeType Failure: " + accountNum, senderEmail, messageFromPassword, messageToEmail, smtpClient, smtpPortNum); continue; // continue next account if ack error } } pageNumber = pageNumber + 1; } catch (Exception ex) { if (errorCount > 4) { ExceptionUtility exceptionUtility = new ExceptionUtility(); exceptionUtility.CatchMethod(ex,accountNum+ ": While ",ex.Message.ToString(),senderEmail,messageFromPassword,messageToEmail,smtpClient,smtpPortNum); break; } else { errorCount = errorCount + 1; continue; // continue try if error less 4 times } } } return OrderList; }
public JsonResult GetEbayOrderData() { DirectlineOrder order = new DirectlineOrder(); List <DirectlineOrder> result = new List <DirectlineOrder>(); /* * * using (DSLEntities entity = new DSLEntities()) * { * * * result = entity.DirectlineOrder.OrderBy(a=>a.DirectlineOrderId).Skip((currentPage - 1) * pageSize).Take(pageSize).ToList(); ; * //写回数据库 * entity.SaveChanges(); * } * Console.WriteLine("OK"); * */ ApiContext apiContext = new ApiContext(); apiContext.SoapApiServerUrl = "https://api.sandbox.ebay.com/wsapi"; ApiCredential apiCredential = new ApiCredential(); apiCredential.eBayToken = "AgAAAA**AQAAAA**aAAAAA**N7s/WQ**nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6wFk4GkCpiGpg2dj6x9nY+seQ**wi8EAA**AAMAAA**7o44E/rl2J6N6sif8itG2DKpkdFQqAJK8d28n2dv8mzwagpQVHIjFjmn8RuPzyiw06c9T7vcRo81RNElYv/A8kFvEEcKxGeEtFxuitv2VBs9GO/GkOGJqK3dtl6ivmKazSb5T3XyG9hyer+lk2TgcGZEYgmXbus/D3Ql3vEkjaT7Zr04yowX6EVNa/sv6j2YvncL8/A9nzq9z169en8xS6bOTvcLm/k5XXfbZ4Jyr6zk66ifCK7fJ9Li7yKSsPHHCU9hQo6vgDLLyf/GEDb5j4HV2OGN02vb6iWyMny/HYP17hPNCue6jbc7jNv0klTpPXJ7i2z0pDzqRmfPFSluqeohRojd81FChqjTob+VXJ7nuS1SpG5XxxCAn0B9dylLm91lncPmoi6FJ9HRM1SlHoH/dWqbtlHyjZ5yAuuYpHwAAfqMXuaDsGr6dNfS7JsRePkaKhbkwna2XYasdqZ2VK2jDVoZYwPnsWj7m9S/QxGJ09I+Ar5J1kDpzGjiezy1mruSV3pflqfs8E+HWybzeB+yisrtLf5eBKS8AgW2otQOg/lI3KDJR1+faS5M6ZExnT+K5t8TZn9RKtBaMa07D6/MRkhANKx5RSoMFfT488JETTGNE1IAV/1kf7Pzm1HNqBCxEn97b27SECe6dwVTWwqi6ZR/2G00D1IQDVCmNkSxloApEdlV7qRtOpmUFHzCa8zdS53f0RHSjxV8JfCLvB4FXw/+849jtNek+wtNO3Fcd3nimPqaqF1eWfrIeCBq"; apiContext.ApiCredential = apiCredential; GetOrdersCall get = new GetOrdersCall(apiContext); OrderTypeCollection types = get.GetOrders(DateTime.Parse("2017-01-01 12:33:33"), DateTime.Parse("2017-06-20 12:33:33"), TradingRoleCodeType.Seller, OrderStatusCodeType.All); if (types != null && types.Count > 0) { foreach (OrderType o in types) { DirectlineOrder addOrder = new DirectlineOrder(); addOrder.BuyerName = o.BuyerUserID; addOrder.BBCode = o.TransactionArray[0].Item.ItemID; addOrder.Quantity = o.TransactionArray[0].Item.Quantity.ToString(); addOrder.Status = o.OrderStatus.ToString(); result.Add(addOrder); // textBox.Text = "Order Id:" + types[0].TransactionArray[0].Item.Title + ", Buyer Name:" + types[0].ShippingAddress.Name; } } return(Json(result, JsonRequestBehavior.AllowGet)); }
private void BtnGetOrders_Click(object sender, EventArgs e) { try { DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("SellingManagerSalesRecordNumber")); dt.Columns.Add(new DataColumn("BuyerUserID")); dt.Columns.Add(new DataColumn("AmountPaid")); dt.Columns.Add(new DataColumn("Timestamp")); dt.Columns.Add(new DataColumn("SellerEmail")); dt.Columns.Add(new DataColumn("OrderID")); dt.Columns.Add(new DataColumn("ClmItems")); GetOrdersCall apicall = new GetOrdersCall(Program.GetApiContext()); TimeFilter fltr = new TimeFilter(); fltr.TimeFrom = DatePickStartFrom.Value; fltr.TimeTo = DatePickStartTo.Value; _orders = apicall.GetOrders(fltr, (TradingRoleCodeType)Enum.Parse(typeof(TradingRoleCodeType), CboRole.SelectedItem.ToString()), (OrderStatusCodeType)Enum.Parse(typeof(OrderStatusCodeType), CboStatus.SelectedItem.ToString())); if (_orders.Count == 0) { MessageBox.Show("There is no order!"); return; } foreach (OrderType order in _orders) { //string[] listparams = new string[5]; //listparams[0] = order.OrderID; //listparams[1] = order.OrderStatus.ToString(); //listparams[2] = order.CreatingUserRole.ToString(); //listparams[3] = order.AmountSaved.Value.ToString(); string[] itemids = new string[order.TransactionArray.Count]; int indx = 0; foreach (TransactionType trans in order.TransactionArray) { itemids[indx] = trans.Item.ItemID; indx++; } //listparams[4] = String.Join(", ", itemids); //ListViewItem vi = new ListViewItem(listparams); //LstOrders.Items.Add(vi); DataRow dr = dt.NewRow(); dr["SellingManagerSalesRecordNumber"] = order.ShippingDetails.SellingManagerSalesRecordNumber; dr["BuyerUserID"] = order.BuyerUserID.ToString(); dr["AmountPaid"] = order.AmountPaid.ToString(); dr["Timestamp"] = apicall.ResponseTime.ToString(); dr["SellerEmail"] = order.SellerEmail.ToString(); dr["OrderID"] = order.OrderID.ToString(); dr["ClmItems"] = String.Join(", ", itemids); dt.Rows.Add(dr); } this.dataGridView1.DataSource = dt; } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public static List <EbayTransactionType> GetAllOrders(AccountType account, TimeFilter timeFilter, StringCollection orderIds) { List <EbayTransactionType> transList = new List <EbayTransactionType>(); GetOrdersCall getOrdersApiCall = new GetOrdersCall(account.SellerApiContext); getOrdersApiCall.IncludeFinalValueFee = true; DetailLevelCodeType[] detailLevels = new DetailLevelCodeType[] { DetailLevelCodeType.ReturnAll }; getOrdersApiCall.DetailLevelList = new DetailLevelCodeTypeCollection(detailLevels); if (orderIds != null) { getOrdersApiCall.OrderIDList = orderIds; } try { OrderTypeCollection orders = getOrdersApiCall.GetOrders(timeFilter, TradingRoleCodeType.Seller, OrderStatusCodeType.All); foreach (OrderType order in orders) { AddressType addressType = order.ShippingAddress; String shippingAddress = GetShippingAddressString(addressType); String shippingAddressCompact = GetShippingAddressCompactString(addressType); bool completed = order.OrderStatus == OrderStatusCodeType.Completed; foreach (TransactionType trans in order.TransactionArray) { #region Process each ebay transaction // Check if this transaction has already be recorded in system. String transId = trans.TransactionID; if (transId == null || transId == "") { Logger.WriteSystemLog("GetAllOrders: Invalid transaction id, skip and continue."); continue; } EbayTransactionType ebayTrans = new EbayTransactionType(); ebayTrans.SellerName = account.ebayAccount; ebayTrans.OrderId = order.OrderID; ebayTrans.OrderLineItemId = trans.OrderLineItemID; ebayTrans.EbayTransactionId = trans.TransactionID; ebayTrans.EbayRecordId = order.ShippingDetails.SellingManagerSalesRecordNumberSpecified ? order.ShippingDetails.SellingManagerSalesRecordNumber : -1; ebayTrans.BuyerId = order.BuyerUserID; GetUserCall getUserApiCall = new GetUserCall(account.SellerApiContext); getUserApiCall.UserID = order.BuyerUserID; UserType user = getUserApiCall.GetUser(); // BuyerRating if (user.FeedbackScoreSpecified) { ebayTrans.BuyerRating = user.FeedbackScore; } else { ebayTrans.BuyerRating = -1; } // BuyerCountryEbayCode ebayTrans.BuyerCountryEbayCode = addressType.Country.ToString(); // BuyerCountry4PXCode ebayTrans.BuyerCountry4PXCode = ""; // BuyerCountry ebayTrans.BuyerCountry = addressType.CountryName; // BuyerCompanyName ebayTrans.BuyerCompanyName = StringUtil.GetSafeString(addressType.CompanyName); // BuyerName ebayTrans.BuyerName = addressType.Name; // BuyerStateOrProvince ebayTrans.BuyerStateOrProvince = addressType.StateOrProvince; // BuyerCity ebayTrans.BuyerCity = addressType.CityName; // BuyerTel ebayTrans.BuyerTel = addressType.Phone; // BuyerMail ebayTrans.BuyerMail = trans.Buyer.Email; // BuyerPostalCode ebayTrans.BuyerPostalCode = addressType.PostalCode; // BuyerAddress ebayTrans.BuyerAddress = shippingAddress; // BuyerAddressCompact ebayTrans.BuyerAddressCompact = shippingAddressCompact; // BuyerAddressLine1 ebayTrans.BuyerAddressLine1 = addressType.Street1; // BuyerAddressLine2 ebayTrans.BuyerAddressLine2 = addressType.Street2; // BuyerPayPal ebayTrans.BuyerPayPal = trans.Buyer.Email; // ItemId ebayTrans.ItemId = trans.Item.ItemID; // What is the valid way to determine if there is a variation. if (trans.Variation != null && trans.Variation.VariationTitle != null && trans.Variation.VariationTitle.Trim() != "") { // ItemTitle ebayTrans.ItemTitle = trans.Variation.VariationTitle; // ItemSKU ebayTrans.ItemSKU = trans.Variation.SKU; } else { // ItemTitle ebayTrans.ItemTitle = trans.Item.Title; // ItemSKU ebayTrans.ItemSKU = trans.Item.SKU; } // ItemPrice if (trans.TransactionPrice != null) { ebayTrans.ItemPrice = trans.TransactionPrice.Value; } // SaleQuantity ebayTrans.SaleQuantity = trans.QuantityPurchased; if (trans.TransactionPrice != null) { // SalePrice ebayTrans.SalePrice = trans.TransactionPrice.Value * trans.QuantityPurchased; // TotalPrice ebayTrans.TotalPrice = trans.TransactionPrice.Value * trans.QuantityPurchased; } // TODO: there may be multiple transactions in one order. if (order.Total != null) { ebayTrans.TotalPrice = order.Total.Value; ebayTrans.CurrencyId = order.Total.currencyID.ToString(); } else { // Set a default value. ebayTrans.TotalPrice = 0.0; ebayTrans.CurrencyId = ""; } // SaleDate ebayTrans.SaleDate = order.CreatedTime; // SaleDateCN ebayTrans.SaleDateCN = order.CreatedTime.ToLocalTime(); // IsPaid ebayTrans.IsPaid = order.PaidTimeSpecified; // order.AmountPaid // order.CheckoutStatus // ebayPaymentStatus // Status // orderStatus if (ebayTrans.IsPaid == false) { // Some payment is paid using credit card, and while PayPal is processing the payment, // the transaction is marked as unpaid. we should view it as paid. if (order.OrderStatusSpecified && order.OrderStatus == OrderStatusCodeType.Completed) { ebayTrans.IsPaid = true; } } if (ebayTrans.IsPaid == false) { if (order.CheckoutStatus.StatusSpecified && order.CheckoutStatus.Status == CompleteStatusCodeType.Complete) { ebayTrans.IsPaid = true; } } // PaidDate ebayTrans.PaidDate = StringUtil.GetSafeDateTime(order.PaidTime); // IsShipped ebayTrans.IsShipped = order.ShippedTimeSpecified; if (order.ShippedTimeSpecified) { ebayTrans.ShippedDate = StringUtil.GetSafeDateTime(order.ShippedTime); } else { ebayTrans.ShippedDate = DateTime.Now.AddYears(-10); } // Store the shippedDate as the local date time. ebayTrans.ShippedDate = ebayTrans.ShippedDate.ToLocalTime(); // ShippingServiceCode ebayTrans.ShippingServiceCode = ""; // ShippingService ebayTrans.ShippingService = ""; // ShippingTrackingNo ebayTrans.ShippingTrackingNo = ""; // ShippingCost ebayTrans.ShippingCost = 0.0; // FinalValueFee if (trans.FinalValueFee != null) { ebayTrans.FinalValueFee = trans.FinalValueFee.Value; } else { ebayTrans.FinalValueFee = 0.0; } // PayPalFee ebayTrans.PayPalFee = 0.034 * ebayTrans.TotalPrice + 0.3; // IsReceived ebayTrans.IsReceived = false; ebayTrans.IsBuyerLeftFeedback = false; ebayTrans.IsSellerLeftFeedback = false; ebayTrans.IsNeedAttention = false; ebayTrans.MessageStatus = TransactionMessageStatus.NoMessage; ebayTrans.IsContactedBuyer = false; ebayTrans.LastContactedBuyerDate = DateTime.Now.AddYears(-10); ebayTrans.IsResendReplacement = false; ebayTrans.UserComment = ""; GetFeedbackCall getFeedbackApiCall = new GetFeedbackCall(account.SellerApiContext); //DetailLevelCodeType[] detailLevels = new DetailLevelCodeType[] { DetailLevelCodeType.ReturnAll }; getFeedbackApiCall.DetailLevelList = new DetailLevelCodeTypeCollection(detailLevels); getFeedbackApiCall.OrderLineItemID = trans.OrderLineItemID; FeedbackDetailTypeCollection feedbacks = getFeedbackApiCall.GetFeedback(); foreach (FeedbackDetailType feedback in feedbacks) { if (feedback.CommentingUser == account.ebayAccount) { ebayTrans.IsSellerLeftFeedback = true; } if (feedback.CommentingUser == ebayTrans.BuyerId) { ebayTrans.IsBuyerLeftFeedback = true; } } if (trans.ShippingDetails != null) { if (trans.ShippingDetails.ShipmentTrackingDetails.Count == 1) { ShipmentTrackingDetailsType shipmentDetails = trans.ShippingDetails.ShipmentTrackingDetails[0]; ebayTrans.ShippingTrackingNo = shipmentDetails.ShipmentTrackingNumber; } } transList.Add(ebayTrans); #endregion } } } catch (Exception ex) { Logger.WriteSystemLog(string.Format("Unexpected expection : {0}", ex.Message)); } return(transList); } // GetAllOrders
public OrderTypeCollection allCompletedOrders(String LastOrderDownload) { OrderTypeCollection orders = new OrderTypeCollection(); OrderTypeCollection retOrders = new OrderTypeCollection(); DateTime dateOut; DateTime.TryParse(LastOrderDownload, out dateOut); try { GetOrdersCall getOrders = new GetOrdersCall(context); getOrders.DetailLevelList = new DetailLevelCodeTypeCollection(); getOrders.DetailLevelList.Add(DetailLevelCodeType.ReturnAll); getOrders.CreateTimeFrom = dateOut.AddDays(-15.0); //According to Zane, typical orders are paid within 3-4 days, but we would give 15 days window (thats when eBay cancells NonPaid orders automatically). We return only orders having PaidTime since our last timestamp. getOrders.CreateTimeTo = DateTime.Now; getOrders.OrderRole = TradingRoleCodeType.Seller; getOrders.OrderStatus = OrderStatusCodeType.Completed; getOrders.Execute(); if (getOrders.ApiResponse.Ack != AckCodeType.Failure) { //Check if any orders are returned if (getOrders.ApiResponse.OrderArray.Count != 0) { orders = getOrders.ApiResponse.OrderArray; } } if (getOrders.PaginationResult.TotalNumberOfPages > 1) //if more than 1 pages, then need to download all the pages. { int pageNumber = 2; do { getOrders.Pagination = new PaginationType() { PageNumber = pageNumber }; getOrders.Execute(); if (getOrders.ApiResponse.Ack != AckCodeType.Failure) { //Check if any orders are returned if (getOrders.ApiResponse.OrderArray.Count != 0) { orders.AddRange(getOrders.ApiResponse.OrderArray); } } pageNumber++; } while (pageNumber <= getOrders.PaginationResult.TotalNumberOfPages); } foreach (OrderType o in orders) { if (o.PaidTime.ToLocalTime() > dateOut) { retOrders.Add(o); } } } catch (Exception ex) { } return(retOrders); }
/// <summary> /// Callback method for timer /// </summary> private void OnTimer() { GetOrdersCall getOrdersApiCall = new GetOrdersCall(apiContext); OrderTypeCollection orders = null; try { orders = getOrdersApiCall.GetOrders(new TimeFilter { TimeFrom = DateTime.Now.AddDays(DaysAgo), TimeTo = DateTime.Now }, TradingRoleCodeType.Seller, OrderStatusCodeType.Completed); } catch (Exception e) { eventLog.WriteEntry("Unable to connect to the server"); return; } int counter = 0; var ordersList = new List <HeaderRecords>(); bool orderInserted = false; foreach (OrderType order in orders) { try { if (!DAL.HeaderRecords.Exists(order.OrderID)) { orderInserted = true; #region Header record var headerRecord = new HeaderRecords { OrderID = order.OrderID, InvoiceID = order.ShippingDetails.SellingManagerSalesRecordNumber.ToString(), OrderDate = order.PaidTime.ToShortDateString(), Email = order.TransactionArray[0].Buyer.Email, //? it gives the value of "invalid request" BilltoFirstName = order.ShippingAddress.Name, BilltoLastName = order.ShippingAddress.Name, BilltoCompanyName = order.BuyerUserID, DeliveryMethod = order.ShippingServiceSelected.ShippingService == "ShippingMethodStandard" ? "1" : "5", ShippingAndHandling = order.ShippingServiceSelected.ShippingServiceCost.Value.ToString(), Tax = order.ShippingDetails.SalesTax.SalesTaxAmount.Value.ToString(), Discount = "0", OverallTotal = order.Total.Value.ToString(), ShiptoFirstName = order.ShippingAddress.Name.Split(' ')[0], ShiptoLastName = order.ShippingAddress.Name.Split(' ')[1], ShiptoCompanyName = order.BuyerUserID, ShiptoStreetAddress = order.ShippingAddress.Street1, ShiptoOptionalAddress = order.ShippingAddress.Street2, ShiptoCity = order.ShippingAddress.CityName, ShiptoState = order.ShippingAddress.StateOrProvince, ShiptoZip = order.ShippingAddress.PostalCode, ShiptoCountry = order.ShippingAddress.CountryName, ShiptoPhone = order.ShippingAddress.Phone, CatalogName = "EBAY", Source = "EBAY" }; #endregion List <DAL.DetailRecord> detailRecordList = new List <DAL.DetailRecord>(); foreach (TransactionType transactionItem in order.TransactionArray) { #region Detail record var dr = new DAL.DetailRecord { InvoiceID = headerRecord.InvoiceID, PurchaseID = transactionItem.ShippingDetails.SellingManagerSalesRecordNumber.ToString(), SourceCode = transactionItem.Item.Site.ToString(), ItemID = transactionItem.Item.ItemID, ProductDescription = transactionItem.Item.Title, Quantity = transactionItem.QuantityPurchased, UnitPrice = transactionItem.TransactionPrice.Value, ExtendedPrice = transactionItem.TransactionPrice.Value * transactionItem.QuantityPurchased }; detailRecordList.Add(dr); #endregion } headerRecord.ProductSubtotal = detailRecordList.Sum(x => x.ExtendedPrice).ToString(); headerRecord.Commision = GetCommission(headerRecord.ProductSubtotal); try { #region Inserting objects in database using (var scope = new TransactionScope()) { DAL.HeaderRecords.Add(headerRecord); SetSkuCodeForDetailsRecord(detailRecordList); DAL.DetailRecord.Add(detailRecordList); headerRecord.Items.AddRange(detailRecordList); var orderStatus = new DAL.OrderStatus { OrderID = order.OrderID, Status = 1 }; DAL.OrderStatus.Add(orderStatus); var orderMessage = new DAL.OrderMessage { InvoiceID = headerRecord.InvoiceID }; DAL.OrderMessage.Add(orderMessage); scope.Complete(); } #endregion } catch (TransactionAbortedException) { eventLog.WriteEntry("TransactionAbortedException has been thrown"); } ordersList.Add(headerRecord); } } catch (Exception e) { eventLog.WriteEntry(string.Format("An error occured at the step #: {0}; message: {1}", counter, e.Message)); } finally { counter++; } } if (orderInserted) { CreateXmlFile(ordersList); } RestartTimer(); }
public GetOrdersCall_(ApiContext ApiContext) { apiContext = ApiContext; ebayGetOrdersCall = new GetOrdersCall(ApiContext); }
public static void EbayUploadTrackCode(string account, KeWeiOMS.Domain.OrderType orderType) { ISession NSession = NhbHelper.OpenSession(); Dictionary <string, int> sendNum = new Dictionary <string, int>(); IList <AccountType> accounts = NSession.CreateQuery("from AccountType where AccountName='" + account + "'").SetMaxResults(1). List <AccountType>(); if (accounts.Count > 0) { IList <KeWeiOMS.Domain.OrderType> orderList = new List <KeWeiOMS.Domain.OrderType>(); if (orderType.IsMerger == 1 || orderType.OrderExNo.IndexOf("|") != -1) { orderList = NSession.CreateQuery("from OrderType where MId='" + orderType.Id + "' Or Id ='" + orderType.Id + "'").List <KeWeiOMS.Domain.OrderType>(); } else { orderList.Add(orderType); } ApiContext context = GetGenericApiContext("US"); context.ApiCredential.eBayToken = accounts[0].ApiToken; eBay.Service.Call.CompleteSaleCall call = null; string CarrierUsed = ""; // IList<logisticsSetupType> setups = NSession.CreateQuery("from logisticsSetupType where LId in (select ParentID from LogisticsModeType where LogisticsCode='" + orderType.LogisticMode + "')").List<logisticsSetupType>(); //if (setups != null) //{ // CarrierUsed = setups[0].SetupName; //} CarrierUsed = "China Post"; call = new eBay.Service.Call.CompleteSaleCall(context); foreach (KeWeiOMS.Domain.OrderType order in orderList) { string orderid = ""; string itemid = ""; if (order.OrderExNo.IndexOf("-") == -1) { orderid = order.OrderExNo; GetOrdersCall apicall = new GetOrdersCall(context); OrderTypeCollection orders = null; try { orders = apicall.GetOrders(new StringCollection { order.OrderExNo }); } catch (Exception) { orders = new OrderTypeCollection(); } if (orders.Count > 0) { foreach (TransactionType trans in orders[0].TransactionArray) { itemid = trans.Item.ItemID; orderid = trans.TransactionID; call.Shipment = new ShipmentType(); call.Shipment.DeliveryStatus = eBay.Service.Core.Soap.ShipmentDeliveryStatusCodeType.Delivered; call.Shipment.ShipmentTrackingDetails = new ShipmentTrackingDetailsTypeCollection(); if (orderType.OrderNo == order.TrackCode || order.TrackCode == "" || order.TrackCode == null) { //call.Shipment.ShipmentTrackingNumber = ""; } else { call.Shipment.ShippingCarrierUsed = CarrierUsed; call.Shipment.ShipmentTrackingNumber = orderType.TrackCode.ToString(); } call.Shipment.DeliveryDate = DateTime.Now; call.Shipment.DeliveryDateSpecified = true; call.Shipment.DeliveryStatus = ShipmentDeliveryStatusCodeType.Delivered; try { call.CompleteSale(itemid, orderid, true, true); } catch (Exception ex) { break; } break; } } } else { itemid = order.OrderExNo.Substring(0, order.OrderExNo.IndexOf("-")); orderid = order.OrderExNo.Substring(order.OrderExNo.IndexOf("-") + 1); call.Shipment = new ShipmentType(); call.Shipment.DeliveryStatus = eBay.Service.Core.Soap.ShipmentDeliveryStatusCodeType.Delivered; call.Shipment.ShipmentTrackingDetails = new ShipmentTrackingDetailsTypeCollection(); if (orderType.OrderNo == order.TrackCode || order.TrackCode == "" || order.TrackCode == null) { //call.Shipment.ShipmentTrackingNumber = ""; } else { call.Shipment.ShippingCarrierUsed = CarrierUsed; call.Shipment.ShipmentTrackingNumber = orderType.TrackCode.ToString(); } call.Shipment.DeliveryDate = DateTime.Now; call.Shipment.DeliveryDateSpecified = true; call.Shipment.DeliveryStatus = ShipmentDeliveryStatusCodeType.Delivered; try { call.CompleteSale(itemid, orderid, true, true); } catch (Exception) { continue; } finally { } } } } }