/** * Process OrderState for Order * * @param CoreShopOrder $order * @param null $locale * @return bool * @throws \Exception */ public function processStep(CoreShopOrder $order, $locale = null) { $emailDocument = $this->getEmailDocument($locale); $emailParameters = array("order" => $order, "newOrderStatus" => $this, "user" => $order->getCustomer()); if ($this->getAccepted()) { } if ($this->getShipped()) { } if ($this->getPaid()) { Plugin::actionHook("paymentConfirmation", array("order" => $order)); } Plugin::actionHook("orderStatusUpdate", array("newOrderStatus" => $this, "order" => $order)); if ($this->getEmail() && $emailDocument instanceof Document\Email) { $mail = new Mail(); $mail->setDocument($emailDocument); $mail->setParams($emailParameters); $mail->addTo($order->getCustomer()->getEmail(), $order->getCustomer()->getFirstname() . " " . $order->getCustomer()->getLastname()); Tool::addAdminToMail($mail); $mail->send(); } $order->setOrderState($this); $order->save(); return true; //TODO: Stock Management }
public function paymentAction() { $this->checkIsAllowed(); $this->view->provider = Plugin::getPaymentProviders($this->cart); if ($this->getRequest()->isPost()) { $paymentProvider = reset($this->getParam("payment_provider", array())); foreach ($this->view->provider as $provider) { if ($provider->getIdentifier() == ${$paymentProvider}) { $paymentProvider = $provider; break; } } if (!$provider instanceof Payment) { $this->view->error = "oh shit, not found"; } else { $this->session->order['paymentProvider'] = $provider; $order = new CoreShopOrder(); $order->setKey(uniqid()); $order->setParent(Service::createFolderByPath('/coreshop/orders/' . date('Y/m/d'))); $order->setPublished(true); $order->setLang($this->view->language); $order->setCustomer($this->session->user); $order->setShippingAddress($this->session->order['address']['delivery']); $order->setBillingAddress($this->session->order['address']['billing']); $order->setPaymentProvider($provider->getIdentifier()); $order->setOrderDate(new \Zend_Date()); if ($this->session->order['shippingProvider'] instanceof Shipping) { $order->setShippingProvider($this->session->order['shippingProvider']->getIdentifier()); $order->setShipping($this->session->order['shippingProvider']->getShipping($this->cart)); } else { $order->setShipping(0); } $order->save(); $order->importCart($this->cart); $this->session->orderId = $order->getId(); $this->_helper->viewRenderer($provider->processPayment($order, $this->view->url(array("action" => "paymentreturn"), "coreshop_checkout")), null, true); } } $this->view->headTitle($this->view->translate("Payment")); }