2016-05-06 17 views
0

Ich arbeite mit Amazons MWS API, PHP-Bibliothek.PHP Objekte mit Arrays

Ich hoffe, dass die Informationen von Amazon konvertiert werden, wie es von der API zu einer einfachen HTML-Tabelle gegeben wird.

Wie kann ich ObjectArrays durchlaufen und die gewünschten Informationen abrufen?

Alle Vorschläge sind willkommen.

PHP-Skript:

<?php 
require_once('.config.inc.php'); 
$serviceUrl = "https://mws.amazonservices.com/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 
); 

MarketplaceWebServiceOrders_Model_ListOrders 
$request = new MarketplaceWebServiceOrders_Model_ListOrdersRequest(); 
$request->setSellerId('SELLERID'); 
$request->setMarketplaceId(array('ATVPDKIKX0DER', 'A2EUQ1WTGCTBG2',  'A1AM78C64UM0Y8')); 
$request->setCreatedAfter('2016-05-01'); 
$request->setOrderStatus(array('Unshipped', 'PartiallyShipped')); 

// object or array of parameters 
invokeListOrders($service, $request); 

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

      echo '<pre>'; 
      print_r($response); 
      echo '</pre>'; 

     } 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"); 
     } 
} 

Objekt Ausgabe über print_r:

MarketplaceWebServiceOrders_Model_ListOrdersResponse Object 
(
[_fields:protected] => Array 
    (
     [ListOrdersResult] => Array 
      (
       [FieldValue] => MarketplaceWebServiceOrders_Model_ListOrdersResult Object 
        (
         [_fields:protected] => Array 
          (
           [NextToken] => Array 
            (
             [FieldValue] => 
             [FieldType] => string 
            ) 

           [CreatedBefore] => Array 
            (
             [FieldValue] => 2016-05-06T19:10:39Z 
             [FieldType] => string 
            ) 

           [LastUpdatedBefore] => Array 
            (
             [FieldValue] => 
             [FieldType] => string 
            ) 

           [Orders] => Array 
            (
             [FieldValue] => Array 
              (
               [0] => MarketplaceWebServiceOrders_Model_Order Object 
                (
                 [_fields:protected] => Array 
                  (
                   [AmazonOrderId] => Array 
                    (
                     [FieldValue] => 115-7547682-3635468 
                     [FieldType] => string 
                    ) 

                   [SellerOrderId] => Array 
                    (
                     [FieldValue] => 
                     [FieldType] => string 
                    ) 

                   [PurchaseDate] => Array 
                    (
                     [FieldValue] => 2016-05-02T17:47:50Z 
                     [FieldType] => string 
                    ) 

                   [LastUpdateDate] => Array 
                    (
                     [FieldValue] => 2016-05-05T16:29:23Z 
                     [FieldType] => string 
                    ) 

                   [OrderStatus] => Array 
                    (
                     [FieldValue] => Unshipped 
                     [FieldType] => string 
                    ) 
+0

Wahrscheinlich gibt es eine Methode, die die gesuchten Informationen wie '$ amazon-> getOrders()' abrufen kann, die das Array 'Orders' abrufen kann, ich kenne die API nicht, aber das ist wahrscheinlich der Fall. Es sollte eine Art Dokumentation zu diesem API/SDK geben, oder? – Rasclatt

+0

Ehrlich gesagt, ist die Dokumentation an dieser Stelle nicht hilfreich http://docs.developer.amazonservices.com/de_DE/dev_guide/DG_ResponseFormat.html –

+0

Welchen Code müssen Sie an diesen Punkt gelangen? – Rasclatt

Antwort

0

Der Code Fee mir sagt Ihnen wahrscheinlich ->getOrder() auf Ihrem MarketplaceWebServiceOrders_Model_ListOrdersResult Objekt aufrufen kann das Array zu bekommen, dass iteriert über Ihre Aufträge. Probieren Sie es zuerst auf $response; Ich kann nicht sagen, welche, ohne den tatsächlichen Code zu testen. (https://github.com/basio/PlaywithAmazonAWS/blob/278b6256025b2841841bda79b304d5a0818b3325/MarketplaceWebServiceOrders/Model/OrderList.php#L65)

Übrigens ist es kein ObjectArray; Es ist nur ein Array, das in diesem Objekt versteckt ist.