2016-05-06 5 views
0

私はAmazonのMWS API、PHPライブラリを使って作業しています。PHPオブジェクト(配列あり)

私は、Amazonからの情報をAPIから与えられたものから単純なHTMLテーブルに変換することを望んでいます。

ObjectArraysをループして、必要な情報をプルするにはどうすればよいですか?

すべての提案をいただければ幸いです。

PHPスクリプト:

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

オブジェクト出力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

'$ amazon-> getOrders()'のような探している情報を取得する方法があります。これは 'Orders'配列を取得するかもしれませんが、APIはわかりませんが、そうかもしれません。このAPI/SDKには何らかのドキュメントがありますか? – Rasclatt

+0

正直なところ、ドキュメントは現時点では役に立ちません。http://docs.developer.amazonservices.com/en_UK/dev_guide/DG_ResponseFormat.html –

+0

この時点までにどのようなコードを取得していますか? – Rasclatt

答えて

0

コードの妖精は、あなたの上に配列その繰り返し処理を得るためにあなたのMarketplaceWebServiceOrders_Model_ListOrdersResultオブジェクトに->getOrder()をそう呼ぶことができると言われます注文。最初に$responseにお試しください。私は実際のコードをテストせずにどちらを伝えることはできません。 (https://github.com/basio/PlaywithAmazonAWS/blob/278b6256025b2841841bda79b304d5a0818b3325/MarketplaceWebServiceOrders/Model/OrderList.php#L65

ところで、それはObjectArrayではありません。それはそのオブジェクトの中に隠された単なる配列です。

関連する問題