2016-12-30 8 views
0

Magentoの注文コメントを別のWebアプリケーションから取得する必要があります。Magentoの注文コメントをAPI経由で取得

Magento APIのドキュメントには、RESTSOAPという2つの方法があります。

RESTドキュメントはスパースです。 URL構造が次のようになっているだけです:http://magentohost/api/rest/orders/:orderid/comments

また、デフォルトのRESTレスポンスはXMLですが、私はこれをJSONで必要としています。

私は既にMagentoにAPIユーザーを設定しており、SOAPを使用してこの「その他の」Webアプリケーションからコメントを作成しました。

  1. 私はむしろXMLよりもJSONでの応答を取得するにはどうすればよい:RESTを使用して

    私の質問、?

  2. 認証方法を教えてください。 Magentoの注文をretriveする方法

答えて

0

ここでREST APIを使用して

コメントREST API認証とRetrive注文コメントのサンプルコードです。

Magentoのテストファイル

<?php 
session_start(); 
$mageFilename = '../app/Mage.php'; 

require $mageFilename; 
Mage::app(); 

// $callbackUrl is a path to your file with OAuth authentication example for the Admin user 
$callbackUrl = "http://magentohost/extrafiles/oauth-test.php"; 
//oAuth Initiate URL 
$temporaryCredentialsRequestUrl = "http://magentohost/oauth/initiate?oauth_callback=" . urlencode($callbackUrl); 
//oAuth Authorize 
$adminAuthorizationUrl = 'http://magentohost/admin/oauth_authorize'; 
//oAuth Token URL 
$accessTokenRequestUrl = 'http://magentohost/oauth/token'; 
//API Url 
$apiUrl = 'http://magentohost/api/rest'; 

//Consumer Key 
$consumerKey = '{{PUT_YOUR_CONSUMER_KEY}}'; 
//Consumer Secret 
$consumerSecret = '{{CONSUMER_SECRET}}'; 


if (!isset($_GET['oauth_token']) && isset($_SESSION['state']) && $_SESSION['state'] == 1) 
{ 
    $_SESSION['state'] = 0; 
} 
try 
{ 
    $authType = ($_SESSION['state'] == 2) ? OAUTH_AUTH_TYPE_AUTHORIZATION : OAUTH_AUTH_TYPE_URI; 
    $oauthClient = new OAuth($consumerKey, $consumerSecret, OAUTH_SIG_METHOD_HMACSHA1, $authType); 
    $oauthClient->enableDebug(); 

    if (!isset($_GET['oauth_token']) && !$_SESSION['state']) 
    { 
     $requestToken = $oauthClient->getRequestToken($temporaryCredentialsRequestUrl); 
     $_SESSION['secret'] = $requestToken['oauth_token_secret']; 
     $_SESSION['state'] = 1; 
     header('Location: ' . $adminAuthorizationUrl . '?oauth_token=' . $requestToken['oauth_token']); 
     exit; 
    } 
    else if ($_SESSION['state'] == 1) 
    { 
     $oauthClient->setToken($_GET['oauth_token'], $_SESSION['secret']); 
     $accessToken = $oauthClient->getAccessToken($accessTokenRequestUrl); 
     $_SESSION['state'] = 2; 
     $_SESSION['token'] = $accessToken['oauth_token']; 
     $_SESSION['secret'] = $accessToken['oauth_token_secret']; 
     header('Location: ' . $callbackUrl); 
     exit; 
    } 
    else 
    { 
     $oauthClient->setToken($_SESSION['token'], $_SESSION['secret']); 

     $resourceUrl = "$apiUrl/orders/21833/comments"; 

     $oauthClient->fetch($resourceUrl, array(), 'GET', array('Accept' => '*/*')); 
     echo $oauthClient->getLastResponse(); 
    } 
} 
catch (OAuthException $e) 
{ 
    print_r($e->getMessage()); 
    echo "<br/>"; 
    print_r($e->lastResponse); 
} 

exit; 
?> 

応答:

[ 
    { 
    "created_at": "2016-12-06 15:53:28", 
    "comment": "On order, Following Activity is done By: XXX Captured amount of $2,669.97 online. Transaction ID: \"XXXXXXX\".", 
    "is_customer_notified": "2", 
    "is_visible_on_front": "0", 
    "status": "processing" 
    }, 
    { 
    "created_at": "2016-12-06 15:53:28", 
    "comment": "Order is Created with following : Order is Created By: XXX Grand Total: $2669.97", 
    "is_customer_notified": null, 
    "is_visible_on_front": "0", 
    "status": "processing" 
    } 
] 
関連する問題