Example #1
0
 /**
  * @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();
     }
 }