2014-04-10 42 views
0

我試圖創建一個magento API來獲取每個項目的定價。我有一張桌子,上面有我需要獲取信息的所有SKU。我跑了以下一個項目,它的工作PHP Magento API catalog_product.info在列表中運行時不起作用

$client = new SoapClient('http://www.mysite.com/api/soap/?wsdl'); 
$session = $client->login('user', 'pass'); 
$productId = 'ABC'; 
$att = array("visibility","sku","special_price", "price"); 
$arguments = array($productId, NULL, $att); 
$result = $client->call($session, 'catalog_product.info', $arguments); 
echo $result['visibility'].",".$result['sku'].",".$result['special_price'].",".$result['price']; 

上述代碼工作正常。

然後我測試另一個代碼,以確保我的代碼通過每個SKU查詢數據庫並循環工作

$getskus = "SELECT sku FROM items;"; 
$skus = mysqli_query($con, $getskus); 
while($row = mysqli_fetch_array($skus)) 
{ 
    $productId = $row['sku']; 
    echo $productId."<br>"; 
} 

上面的代碼工作正常。我的問題是,當我結合2我得到一個空白的屏幕。

$client = new SoapClient('http://www.mysite.com/api/soap/?wsdl'); 
$session = $client->login('user', 'pass'); 

$getskus = "SELECT sku FROM items;"; 
$skus = mysqli_query($con, $getskus); 
while($row = mysqli_fetch_array($skus)) 
{ 
    $productId = $row['sku']; 
    $att = array("visibility","sku","special_price", "price"); 
    $arguments = array($productId, NULL, $att); 
    $result = $client->call($session, 'catalog_product.info', $arguments); 
    echo $result['visibility'].",".$result['sku'].",".$result['special_price'].",".$result['price']; 

} 

我什麼也沒得到。有任何想法嗎?

更新:如果$ row ['sku'] ='9005'將magento認爲它的產品id而不是SKU?

回答

0

這條線:

$result = $client->call($session, 'catalog_product.info', $arguments); 

這是不能接受$參數作爲第三PARAM。相反:

$result = $client->call($session, 'catalog_product.info', $row['sku'], null, $att, 'sku'); 

注意:不確定'null'(第4參數)是否爲存儲視圖的有效參數。爲了安全起見,請使用正確的商店視圖(大多數情況下爲default)。

RTM:http://www.magentocommerce.com/api/soap/catalog/catalogProduct/catalog_product.info.html

+1

但是當我使用$參數作爲第一組的它上面的代碼確實工作 – knowzero

+0

我想可能有一個事實,即我的一些SKU的實際上只是數字 – knowzero

+0

即做爲什麼你必須在我的建議中指定最後一個參數爲'sku'。 –