2016-03-23 4 views
0

Ich kann nicht ein Tag für EbaySDK erstellen, so Ebay API kann irreführend sein. Die SDK-Referenz befindet sich unten.Verkaufte Artikel von Ebay SDK Selling - bekommen "Fehlende erforderliche Eingabeelement" Fehler

Warum benötigen einige Anfragen "Eingabe" und wo können sie gefunden werden? Die SDK-Notizen scheinen nicht klar zu sein, was per "Anruftyp" erforderlich ist.

Nach den Beispielen von http://devbay.net/sdk/guides/getting-started/basic-usage.html#working-with-responses versuche ich eine Liste der verkauften Artikel zu erhalten. Da Ebay nur 90 Tage Daten hält, habe ich meiner Anfrage keine Grenzen gesetzt.

Ihr Beispiel Anfrage:

// Create the API request object. 
$request = new Types\FindItemsByKeywordsRequest(); 
// Assign the keywords. 
$request->keywords = 'Harry Potter'; 
// Output the response from the API. 
    if ($response->ack !== 'Success') { 
    foreach ($response->errorMessage->error as $error) { 
     printf("Error: %s\n", $error->message); 
    } 
    } else { 
     foreach ($response->searchResult->item as $item) { 
     printf("(%s) %s:%.2f\n", $item->itemId, $item->title, $item->sellingStatus->currentPrice->value); 
    } 
    } 

Mine ein bisschen einfacher ist (und offensichtlich unvollständig)

$request = new Types\GetItemStatusRequestType; 
$response = $service->getItemStatus(); 
if ($response->Ack !== 'Success') { 
    if (isset($response->Errors)) { 
     foreach ($response->Errors as $error) { 
      printf("Error: %s\n", $error->ShortMessage); 
     } 
    } 
} else { 
    print_r($response->getItemStatus); //should return all avail values (works with other types of requests) 
} 

Hier ist der böse Fehler

DTS\eBaySDK\Shopping\Types\GetItemStatusResponseType Object 
(
    [values:DTS\eBaySDK\Types\BaseType:private] => Array 
     (
      [Timestamp] => DateTime Object 
      (
       [date] => 2016-03-23 00:28:28.391000 
       [timezone_type] => 2 
       [timezone] => Z 
      ) 

     [Ack] => Failure 
     [Errors] => DTS\eBaySDK\Types\UnboundType Object 
      (
       [data:DTS\eBaySDK\Types\UnboundType:private] => Array 
        (
         [0] => DTS\eBaySDK\Shopping\Types\ErrorType Object 
          (
           [values:DTS\eBaySDK\Types\BaseType:private] => Array 
            (
             [ShortMessage] => Missing required input element. 
             [LongMessage] => Required input element is missing from the request. 
             [ErrorCode] => 1.19 
             [SeverityCode] => Error 
             [ErrorParameters] => DTS\eBaySDK\Types\UnboundType Object 
              (
               [data:DTS\eBaySDK\Types\UnboundType:private] => Array 
                (
                 [0] => DTS\eBaySDK\Shopping\Types\ErrorParameterType Object 
                  (
                   [values:DTS\eBaySDK\Types\BaseType:private] => Array 
                    (
                     [ParamID] => 0 
                     [Value] => ItemID 
                    ) 

                   [attachment:DTS\eBaySDK\Types\BaseType:private] => Array 
                    (
                     [data] => 
                     [mimeType] => 
                    ) 

                  ) 

                ) 

               [position:DTS\eBaySDK\Types\UnboundType:private] => 0 
               [class:DTS\eBaySDK\Types\UnboundType:private] => DTS\eBaySDK\Shopping\Types\ErrorType 
               [property:DTS\eBaySDK\Types\UnboundType:private] => ErrorParameters 
               [expectedType:DTS\eBaySDK\Types\UnboundType:private] => DTS\eBaySDK\Shopping\Types\ErrorParameterType 
              ) 

             [ErrorClassification] => RequestError 
            ) 

           [attachment:DTS\eBaySDK\Types\BaseType:private] => Array 
            (
             [data] => 
             [mimeType] => 
            ) 

          ) 

        ) 

       [position:DTS\eBaySDK\Types\UnboundType:private] => 0 
       [class:DTS\eBaySDK\Types\UnboundType:private] => DTS\eBaySDK\Shopping\Types\GetItemStatusResponseType 
       [property:DTS\eBaySDK\Types\UnboundType:private] => Errors 
       [expectedType:DTS\eBaySDK\Types\UnboundType:private] => DTS\eBaySDK\Shopping\Types\ErrorType 
      ) 

     [Build] => E949_CORE_APILW_17769283_R1 
     [Version] => 949 
    ) 

[attachment:DTS\eBaySDK\Types\BaseType:private] => Array 
    (
     [data] => 
     [mimeType] => 
    ) 

) 

Fehler: erforderlich Fehlende Eingabeelement

Es scheint, dass ich nicht die Anfrage für etwas, aber ich habe keine Ahnung.

Antwort

0

Der GetItemStatus-Aufruf erfordert, dass Sie eine ItemID angeben. Siehe folgende API-Referenz: GetItemStatus

Sie geben an, dass Sie nach einer Verkaufsgeschichte suchen. Ich glaube nicht, dass dies der Anruf ist, den Sie verwenden sollten. Dies ist ein Funktionsaufruf, der anscheinend in der Shopping-API enthalten ist, die eher ein Produktsuchwerkzeug ist.

Sie möchten wahrscheinlich 'GetOrders' API-Aufruf verwenden, wenn Sie nach einem bestimmten Account-Verkaufsverlauf suchen. Siehe die folgenden: GetOrders

+0

Die Antwort ist der GetItemStatus braucht eine ID, danke. Die GetOrders sind leider nur für den eingeloggten Verkäufer spezifisch. – zzipper72

+0

Die gute Nachricht ist, ich glaube, ich habe die Lösung für mehrere verkaufte Listing Returns gefunden. (Ich habe es nicht getestet, aber die Dokumentation scheint ziemlich klar zu sein) Es war, wo ich ursprünglich arbeitete, aber verpasste, wie man den Filter richtig verwendet, so dass ich es früh (falsch) ausgeschlossen habe, da es scheinbar nur aktive Einträge zurückgibt. - Das Objekt findCompletedItems gibt die verkauften Artikel mit einem bestimmten Filter zurück: pro Dokument: itemFilter (2) .name = SoldItemsOnly & itemFilter (2) .value = true &, gefunden unter: http://developer.ebay.com/devzone/finding /CallRef/findCompletedItems.html#Response.searchResult.item.sellingStatus.sellingState – zzipper72

+0

Freut mich zu hören, dass du es aussortiert hast! Ich ging davon aus, dass Sie nach Verkäufen für Ihr oder ein Kundenkonto suchten. Schlechte Annahme meinerseits :-) –