2013-07-16 34 views
3

我不知道,如果它得到的產品列表中的媒體列表,而無需做多.CALL甚至有可能()的Magento的API:獲取與媒體產品/細節一個電話

是多呼叫()某種選擇?我必須從multiCall()中的第一次調用返回值插入到檢索媒體的第二次,但我認爲Magento的文檔很差。

我是否必須創建自己的API擴展才能完成像返回圖像url與產品詳細信息一樣簡單的操作?

這就是我目前所面對的:

<?php 
$soap = new SoapClient('http://hello-magento.local/magento/api/soap?wsdl'); 
$session_id = $soap->login('username', 'password'); 

$product_list = $soap->call($session_id, 'product.list'); 

$products = array(); 

foreach($product_list as $product_item) 
{ 
    $product_id = $product_item['product_id']; 
    $product_image = $soap->call($session_id, 'catalog_product_attribute_media.list', $product_id); 

    $product_details = array(); 
    $product_details['id']  = $product_id; 
    $product_details['name'] = $product_item['name']; 
    $product_details['image'] = $product_image[0]['url']; 

    $products['products'][] = $product_details; 
} 

$soap->endSession($session_id); 

echo json_encode($products); 
?> 

回答

1

我有,我想獲得訂單項目的詳細信息獲得的訂單列表時,類似的問題。我能夠通過創建一個觀察者模塊來解決這個問題。無論何時加載訂單模型,我都可以執行$ order-> setMyCustomValue($ orderItemInfo),當我執行order.list請求時,這些數據就會顯示出來。

查看Mage_Catalog_Model_Product_Api,基本產品信息(product_id,sku,名稱等)全都在items方法(which product.list調用)中被硬編碼。 我周圍看到的唯一方法是創建一個覆蓋和擴展Mage_Catalog_Model_Product_Api的自定義模塊。調用父項目方法,然後將需要的數據添加到結果中(例如媒體url)並返回。

一個自定義API也可以工作,但它會多一點工作。

相關問題