Пример #1
0
 protected function finalizeOrder($options = array())
 {
     if (!count($this->order->getShipments())) {
         throw new ApplicationException('No shipments in order');
     }
     $user = $this->order->user->get();
     $user->load();
     $newOrder = $this->order->finalize($options);
     $orderArray = $this->order->toArray(array('payments' => true));
     // send order confirmation email
     if ($this->config->get('EMAIL_NEW_ORDER')) {
         $email = new Email($this->application);
         $email->setUser($user);
         $email->setTemplate('order.new');
         $email->set('order', $orderArray);
         $email->send();
     }
     // notify store admin
     if ($this->config->get('NOTIFY_NEW_ORDER')) {
         $email = new Email($this->application);
         $email->setTo($this->config->get('NOTIFICATION_EMAIL'), $this->config->get('STORE_NAME'));
         $email->setTemplate('notify.order');
         $email->set('order', $orderArray);
         $email->set('user', $user->toArray());
         $email->send();
     }
     $this->session->set('completedOrderID', $this->order->getID());
     if ($newOrder instanceof CustomerOrder) {
         SessionOrder::save($newOrder);
     } else {
         SessionOrder::destroy();
     }
     return new ActionRedirectResponse('checkout', 'completed');
 }