2012-01-02 21 views
5

Ricevo un elenco di ordini tramite l'API getorder di eBay, ma ora desidero selezionare un ordine e aggiornarne lo stato.Stato degli ordini di aggiornamento su ebay usando api?

Come posso farlo? Per favore, ogni aiuto sarebbe gradito

Sto usando un codice da Internet, e mostra "successo" sul cambiamento dello stato. Ma quando carico di nuovo l'elenco ordini è ancora "completo" (o se uso spedito = falso in api) è ancora "completo".

Codice:

//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); 

Grazie

+0

hai provato il metodo completeSale di api? –

+0

ciao sì, grazie l'ho fatto usando il metodo completo :) Posso cambiare lo stato degli ordini a pagato e spedito in blocco ora.Ma una cosa perché fa ancora quando ottengo usandoapi l'orderstatus = attivo? non dovrebbe cambiare a spedito o pagato ecc? – ehsankayani

+0

dovrebbe restituire l'ultimo stato. stai diventando sccuess in risposta a completalo? –

risposta

1

Per cambiare lo stato dell'ordine ebay da attivo a completato è possibile chiamare API "ReviseCheckoutStatus", ha funzionato per me :)