2015-12-24 44 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标准。

相关问题