I get a list of orders using eBay getorder API, but now I want to select an order and update its status.
How can I do that? Please, any help would be appreciated
I am using some code off the internet, and it shows “success” on changing the status. But when I load the order list again (or if I use shipped=false
in API) it’s still “complete”.
Code:
//create the context
ApiContext context = new ApiContext();
//set the User token
context.ApiCredential.eBayToken = "token";
//set the server url
// context.SoapApiServerUrl = "https://api.sandbox.ebay.com/wsapi";
context.SoapApiServerUrl = "https://api.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 = "705";
context.Site = SiteCodeType.UK;
//Create the call and set the fields
CompleteSaleCall apicall = new CompleteSaleCall(context);
//Either ItemID-TransactionID or OrderLineItemID or OrderID is required. If item is part of an order, specify OrderID.
apicall.OrderLineItemID = "123467585959-0";
apicall.Shipped = true;
//apicall.Shipment = new ShipmentType();
//apicall.Shipment.ShipmentTrackingDetails = new ShipmentTrackingDetailsTypeCollection();
//ShipmentTrackingDetailsType shpmnt = new ShipmentTrackingDetailsType();
//shpmnt.ShipmentTrackingNumber = "VZ9478668";
//shpmnt.ShippingCarrierUsed = "YourCarrier";
//apicall.Shipment.ShipmentTrackingDetails.Add(shpmnt);
//Specify time in GMT. This is an optional field
//If you don't specify a value for the ShippedTime, it will be defaulted to the time at which the call was made
// apicall.Shipment.ShippedTime = new DateTime(2011, 3, 5, 10, 0, 0).ToUniversalTime();
//call the Execute method
apicall.Execute();
Console.WriteLine(apicall.ApiResponse.Ack);
Thank you
2
Answers
This should work: CompleteSale in Trading API
For changing ebay order status from active to completed you can call “ReviseCheckoutStatus” API, it worked for me 🙂