2015-12-24 45 views
1
$client = new SoapClient($host . '/api/v2_soap/?wsdl'); 
$session = $client->login($apiUser, $apiKey); 

$result = $client->catalogInventoryStockItemMultiUpdate($session, 'sku_id1', 
      array('qty' => 1), null, 'sku'); 
$result = $client->catalogInventoryStockItemMultiUpdate($session, 'sku_id1', 
      array('qty' =>2), null, 'sku'); 

如何使用函數catalogInventoryStockItemMultiUpdate()或其他決定調用多個函數一個請求?如何使SOAP v2 multiCall到Magento API?

僅適用於soap v1的示例,但不適用於soap v2。

回答

3

回答這些問題的人來自Google。 v2 Magento Api沒有多重功能。 v1 API可以。

下面是從API v1的文檔演示瞭如何使一次多個調用一個codesnippet:

$client = new SoapClient('http://magentohost/soap/api/?wsdl'); 

// If somestuff requires api authentification, 
// then get a session token 
$session = $client->login('apiUser', 'apiKey'); 

$result = $client->call($session, 'somestuff.method'); 
$result = $client->call($session, 'somestuff.method', 'arg1'); 
$result = $client->call($session, 'somestuff.method', array('arg1', 'arg2', 'arg3')); 
$result = $client->multiCall($session, array(
    array('somestuff.method'), 
    array('somestuff.method', 'arg1'), 
    array('somestuff.method', array('arg1', 'arg2')) 
)); 


// If you don't need the session anymore 
$client->endSession($session); 

的請求仍然必須創建一個排隊的一個,但至少你節省自己的時間就需要一個接一個地發送請求。

在我的工具中,我使用v1和v2 api的組合來進行批量更新和選擇性更新。 v1 API可能會滿足您的所有需求,但不符合WSI標準。

相關問題