$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()
或其他决策来调用多个函数?
仅适用于肥皂v1而不适用于肥皂v2。
答案 0 :(得分:3)
为那些从Google收到此邮件的人回答此问题。 v2 Magento Api没有多功能。 v1 API可以。
以下是API v1文档中的代码段,演示了如何一次拨打多个电话:
$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兼容。