2017-10-20 3 views
1

Ich bin Amazon Verkäufer mit FBA. Ich begann mit MWS zu spielen.Amazon MWS PHP API (Bestellungen)

erste Frage ist:

Welche api besten (Aufträge oder Berichte) ist für "Berichte/Fulfillment by Amazon/Alle Aufträge" und Berichte/Zahlungen/Datumsbereich Berichte“

2.

ich heruntergeladen PHP-Bibliothek für "ORDERS" von https://developer.amazonservices.co.uk/gp/mws/api.html?ie=UTF8&group=orders&section=orders&version=latest

... und natürlich pro bleme

in config.inc.php stelle ich alle Daten und zusätzlich:

//set_include_path(get_include_path() . PATH_SEPARATOR . '../../.'); 
$path = 'http://MYWEBSITE/amazon-mws/'; 
set_include_path(get_include_path() . PATH_SEPARATOR . $path); 

Die Dateien aussehen enter image description here

und ich teste Datei "ListOrdersSample1"

<?php 

/** 
* List Orders Sample 
*/ 

require_once('.config.inc.php'); 

/************************************************************************ 
* Instantiate Implementation of MarketplaceWebServiceOrders 
* 
* AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY constants 
* are defined in the .config.inc.php located in the same 
* directory as this sample 
***********************************************************************/ 
// More endpoints are listed in the MWS Developer Guide 
// North America: 
//$serviceUrl = "https://mws.amazonservices.com/Orders/2013-09-01"; 
// Europe 
$serviceUrl = "https://mws-eu.amazonservices.com/Orders/2013-09-01"; 
// Japan 
//$serviceUrl = "https://mws.amazonservices.jp/Orders/2013-09-01"; 
// China 
//$serviceUrl = "https://mws.amazonservices.com.cn/Orders/2013-09-01"; 


$config = array (
    'ServiceURL' => $serviceUrl, 
    'ProxyHost' => null, 
    'ProxyPort' => -1, 
    'ProxyUsername' => null, 
    'ProxyPassword' => null, 
    'MaxErrorRetry' => 3, 
); 

$service = new MarketplaceWebServiceOrders_Client(
     AWS_ACCESS_KEY_ID, 
     AWS_SECRET_ACCESS_KEY, 
     APPLICATION_NAME, 
     APPLICATION_VERSION, 
     $config); 

/************************************************************************ 
* Uncomment to try out Mock Service that simulates MarketplaceWebServiceOrders 
* responses without calling MarketplaceWebServiceOrders service. 
* 
* Responses are loaded from local XML files. You can tweak XML files to 
* experiment with various outputs during development 
* 
* XML files available under MarketplaceWebServiceOrders/Mock tree 
* 
***********************************************************************/ 
$service = new MarketplaceWebServiceOrders_Mock(); 

/************************************************************************ 
* Setup request parameters and uncomment invoke to try out 
* sample for List Orders Action 
***********************************************************************/ 
// @TODO: set request. Action can be passed as MarketplaceWebServiceOrders_Model_ListOrders 
$request = new MarketplaceWebServiceOrders_Model_ListOrdersRequest(); 
$request->setSellerId(MERCHANT_ID); 
// object or array of parameters 
invokeListOrders($service, $request); 

/** 
    * Get List Orders Action Sample 
    * Gets competitive pricing and related information for a product identified by 
    * the MarketplaceId and ASIN. 
    * 
    * @param MarketplaceWebServiceOrders_Interface $service instance of MarketplaceWebServiceOrders_Interface 
    * @param mixed $request MarketplaceWebServiceOrders_Model_ListOrders or array of parameters 
    */ 

    function invokeListOrders(MarketplaceWebServiceOrders_Interface $service, $request) 
    { 
     try { 
     $response = $service->ListOrders($request); 

     echo ("Service Response\n"); 
     echo ("=============================================================================\n"); 

     $dom = new DOMDocument(); 
     $dom->loadXML($response->toXML()); 
     $dom->preserveWhiteSpace = false; 
     $dom->formatOutput = true; 
     echo $dom->saveXML(); 
     echo("ResponseHeaderMetadata: " . $response->getResponseHeaderMetadata() . "\n"); 

    } catch (MarketplaceWebServiceOrders_Exception $ex) { 
     echo("Caught Exception: " . $ex->getMessage() . "\n"); 
     echo("Response Status Code: " . $ex->getStatusCode() . "\n"); 
     echo("Error Code: " . $ex->getErrorCode() . "\n"); 
     echo("Error Type: " . $ex->getErrorType() . "\n"); 
     echo("Request ID: " . $ex->getRequestId() . "\n"); 
     echo("XML: " . $ex->getXML() . "\n"); 
     echo("ResponseHeaderMetadata: " . $ex->getResponseHeaderMetadata() . "\n"); 
    } 
} 

Ich versuche zu testen

$service = new MarketplaceWebServiceOrders_Mock(); 

aber nichts passiert. Ist der Pfad in der Konfiguration korrekt? Ich verstehe nicht, diese

$serviceUrl = "https://mws-eu.amazonservices.com/Orders/2013-09-01"; 

Sollte ich das Datum ändern?

Ich brauche kleines Arbeitsbeispiel zu starten.

Vielen Dank

Antwort

0
  1. Es hängt davon ab, was Sie versuchen zu erreichen. Ich denke, das Orders-API ist nützlich, wenn Sie etwas tun müssen, das mit der Bestellung in Verbindung steht, wie z. B. selbst versenden (Händler erfüllt statt FBA).
    Die Berichts-API ist nützlicher, wenn Sie hauptsächlich die Daten für die Berichterstellung verwenden. Einer der Hauptberichte, den ich verwende, ist _GET_AMAZON_FULFILLED_SHIPMENTS_DATA_, weil es die Verkaufsdaten gibt, nachdem es tatsächlich versendet worden ist. Nur weil jemand etwas bestellt hat, bedeutet das nicht, dass sie den Gegenstand tatsächlich bekommen. Manchmal schlagen Bestellungen fehl, weil die Kreditkarte abgelehnt wird, oder wenn sie schnell storniert werden usw.

  2. Das Datum ist die Version der API, die Sie verwenden. Das würde 2013-09-01 bleiben. Ich würde sehr empfehlen, mit dem Notizblock zu spielen, um diese Art von Daten für jede Art von Anfrage zurückgegeben zu sehen. Es hilft auch zu visualisieren, welche Art von Parametern Sie bereitstellen müssen. um die erwarteten Ergebnisse zu erhalten. Ich fange immer hier an, bevor ich irgendetwas kodiere. https://mws.amazonservices.co.uk/scratchpad/index.html (ändern co.uk, was auch immer Sie wollen, .de, etc)

+0

HALLO. Vielen Dank. Der Notizblock funktioniert einwandfrei. Sie richtig, ich sollte die Berichts-API verwenden. Können Sie mir sagen, wie Sie Ihre Dateien vorbereitet haben? Ich denke, ich vermisse etwas. Es spielt keine Rolle, welche API ich verwende. Wenn ich es funktioniere, kann ich leicht zu einem anderen springen. Könntest du raten, dass du "mock" arbeitest, zumindest weil es nicht so gut funktioniert für mich :). Es ist wichtig für mich, mit etwas Einfachem und Kleinem zu beginnen.Perfekt wäre "Reports/Fulfillment von Amazon/All Orders", weil ich es jeden Tag benutze. Grüße – awariat