Skip to main content
Published: April 23 2015, 8:44:00 AMUpdated: November 28 2020, 8:40:40 PM

This sample demonstrates how to go about Sales order processing using GetOrders with order creation time filter described in the KB Order management using Trading API - GetOrders. The sample has been written in C# using .NET SDK v817.

Below is the code. Corresponding GetOrders SOAP request is attached with this article.

/*
© 2010-2013 eBay Inc., All Rights Reserved
Licensed under CDDL 1.0 - http://opensource.org/licenses/cddl1.php
*/

 

using System;

using System.Collections.Generic;

using System.Text;

using eBay.Service.Core.Sdk;

using eBay.Service.Call;

using eBay.Service.Core.Soap;

using eBay.Service.Util;

namespace Trading_Samples

{

    class Program

    {

        static void Main(string[] args)

        {

            MakeGetOrders();

            Console.ReadLine();

        } 

        //MakeGetOrders

        private static void MakeGetOrders()

        {

            //create the context

            ApiContext context = new ApiContext();

            //set the User token
            context.ApiCredential.eBayToken = "YOUR_TOKEN_HERE";

 

            //set the server url

            context.SoapApiServerUrl = https://api.sandbox.ebay.com/wsapi;

 

            //enable logging

            context.ApiLogManager = new ApiLogManager();

            context.ApiLogManager.ApiLoggerList.Add(new FileLogger("log.txt", true, true, true));

            context.ApiLogManager.EnableLogging = true;

            //set the version

            context.Version = "817";

            context.Site = SiteCodeType.UK;

            bool blnHasMore = true;

            DateTime CreateTimeFromPrev, CreateTimeFrom, CreateTimeTo;

            GetOrdersCall getOrders = new GetOrdersCall(context);

            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;

            getOrders.CreateTimeTo = CreateTimeTo;

            getOrders.Execute();

 

            if (getOrders.ApiResponse.Ack != AckCodeType.Failure)

            {

                //Check if any orders are returned

                if (getOrders.ApiResponse.OrderArray.Count != 0)

                {

                    foreach (OrderType order in getOrders.ApiResponse.OrderArray)

                    {

                        //Update your system with the order information.

                        Console.WriteLine("Order Number: " + order.OrderID);

                        Console.WriteLine("OrderStatus: " + order.OrderStatus);

                        Console.WriteLine("Order Created On: " + order.CreatedTime);

 

                        //Get Order Details

                        TransactionTypeCollection orderTrans = order.TransactionArray;

 

                        //Order could be comprised of one or more items

                        foreach (TransactionType transaction in orderTrans)

                        {

                            Console.WriteLine("Order for: " + transaction.Item.ItemID + ", " + transaction.Item.SKU + ", " + transaction.Item.Title);

 

                            //If you are listing variation items, you will need to retrieve the variation

                            //details as chosen by the buyer

                            if (transaction.Variation.SKU != null)

                            {

                                Console.WriteLine("Variation: " + transaction.Variation.SKU);

                            }

                            Console.WriteLine("OrderLineItemID: " + transaction.OrderLineItemID);

                            Console.WriteLine("Qty Purchased: " + transaction.QuantityPurchased);

                            Console.WriteLine("Buyer Info: " + order.BuyerUserID + ", " + transaction.Buyer.Email);

                        }

 

                        if (order.CheckoutStatus.Status == CompleteStatusCodeType.Complete)

                        {

                            //Get Payment Details

                            Console.WriteLine("Order Adjustment Amount: " + order.AdjustmentAmount.Value);

                            Console.WriteLine("Order Amount Paid: " + order.AmountPaid.Value);

                            Console.WriteLine("Payment Method: " + order.CheckoutStatus.PaymentMethod);

                            ExternalTransactionTypeCollection extTrans = order.ExternalTransaction;

                            foreach (ExternalTransactionType extTran in extTrans)

                            {

                                Console.WriteLine("External TransactionID: " + extTran.ExternalTransactionID);

                                Console.WriteLine("External Transaction Time: " + extTran.ExternalTransactionTime);

                                Console.WriteLine("Payment/Refund Amount: " + extTran.PaymentOrRefundAmount.Value);

                            }

 

                            //Get shipping information

                            ShippingServiceOptionsType shipping;

                            shipping = order.ShippingServiceSelected;

                            Console.WriteLine("Shipping Service Selected: " + order.ShippingServiceSelected.ShippingService);

 

                            //Get Shipping Address - Address subject to change if the buyer has not completed checkout                      

                            AddressType address = order.ShippingAddress;

                            StringBuilder sAdd = new StringBuilder();

                            sAdd = sAdd.Append(address.Name);

                            if (address.Street != null && address.Street != "")

                                sAdd.Append(", " + address.Street);

 

                            if (address.Street1 != null && address.Street1 != "")

                                sAdd.Append(", " + address.Street1);

 

                            if (address.Street2 != null && address.Street2 != "")

                                sAdd.Append(", " + address.Street2);

 

                            if (address.CityName != null && address.CityName != "")

                                sAdd.Append(", " + address.CityName);

 

                            if (address.StateOrProvince != null && address.StateOrProvince != "")

                                sAdd.Append(", " + address.StateOrProvince);

 

                            if (address.PostalCode != null && address.PostalCode != "")

                                sAdd.Append(", " + address.PostalCode);

 

                            if (address.CountryName != null && address.CountryName != "")

                                sAdd.Append(", " + address.CountryName);

 

                            if (address.Phone != null && address.Phone != "")

                                sAdd.Append(": Phone" + address.Phone);

 

                            Console.WriteLine("Shipping Address: " + sAdd);

                            double salesTax;

 

                            //Get the sales tax

                            if (order.ShippingDetails.SalesTax.SalesTaxAmount == null)

                                salesTax = 0.00;

                            else

                                salesTax = order.ShippingDetails.SalesTax.SalesTaxAmount.Value;

 

                            Console.WriteLine("Sales Tax: " + salesTax);

                            if (order.BuyerCheckoutMessage != null)

                            {

                                Console.WriteLine("Buyer Checkout Message: " + order.BuyerCheckoutMessage);

                            }

                        }

                        Console.WriteLine("********************************************************");

                    }

                }

                else

                {

                    Console.WriteLine("No Order available");

                    Console.WriteLine("TotalNumberOfPages: " + getOrders.ApiResponse.PaginationResult.TotalNumberOfPages.ToString());

                    Console.WriteLine("TotalNumberOfEntries: " + getOrders.ApiResponse.PaginationResult.TotalNumberOfEntries.ToString());

                    Console.WriteLine("********************************************************");

                }

            }

        }

    }

}

 

 

 

 

 

 

 

 


 

How well did this answer your question?
Answers others found helpful