/** * @param MultiCallQueueInterface $queue * @param bool $throwsException * * @return array * @throws MagentoException */ public function multiCall(MultiCallQueueInterface $queue, $throwsException = false) { try { $this->checkSecurity(); $event = new MultiCallTransportEvent($this, $queue); $this->dispatcher->dispatch(MagentoEvents::PRE_MULTI_CALL, $event); $queue = $event->getQueue(); $actions = $this->getActions($queue); if (null !== $this->logger) { $logId = $this->logger->start(); $results = $this->soapClient->multiCall($this->sessionId, $actions); $this->logger->stop($logId, $this->connection, 'multicall', 'queue: ' . count($actions) . ' action(s)'); } else { $results = $this->soapClient->multiCall($this->sessionId, $actions); } $event = new MultiCallTransportEvent($this, $queue, $results); $this->dispatcher->dispatch(MagentoEvents::POST_MULTI_CALL, $event); $queue = $event->getQueue(); $results = $event->getResults(); $this->handleCallbacks($queue, $results); return $results; } catch (MagentoException $e) { return array(); } }