Example #1
0
 public function updateStatus(OrderEvent $event)
 {
     $order = $event->getOrder();
     $paidStatusId = OrderStatusQuery::create()->filterByCode(OrderStatus::CODE_PAID)->select('Id')->findOne();
     if ($order->hasVirtualProduct() && $event->getStatus() == $paidStatusId) {
         $contact_email = ConfigQuery::read('store_email');
         if ($contact_email) {
             $message = MessageQuery::create()->filterByName('mail_virtualproduct')->findOne();
             if (false === $message) {
                 throw new \Exception("Failed to load message 'mail_virtualproduct'.");
             }
             $order = $event->getOrder();
             $customer = $order->getCustomer();
             $this->parser->assign('customer_id', $customer->getId());
             $this->parser->assign('order_id', $order->getId());
             $this->parser->assign('order_ref', $order->getRef());
             $this->parser->assign('order_date', $order->getCreatedAt());
             $this->parser->assign('update_date', $order->getUpdatedAt());
             $message->setLocale($order->getLang()->getLocale());
             $instance = \Swift_Message::newInstance()->addTo($customer->getEmail(), $customer->getFirstname() . " " . $customer->getLastname())->addFrom($contact_email, ConfigQuery::read('store_name'));
             // Build subject and body
             $message->buildMessage($this->parser, $instance);
             $this->mailer->send($instance);
             Tlog::getInstance()->debug("Virtual product download message sent to customer " . $customer->getEmail());
         } else {
             $customer = $order->getCustomer();
             Tlog::getInstance()->debug("Virtual product download message no contact email customer_id", $customer->getId());
         }
     }
 }
Example #2
0
 /**
  * @param OrderEvent $event
  */
 public function updateStatus(OrderEvent $event)
 {
     $order = $event->getOrder();
     $newStatus = $event->getStatus();
     $this->updateQuantity($order, $newStatus);
     $order->setStatusId($newStatus);
     $order->save();
     $event->setOrder($order);
 }
Example #3
0
 /**
  * @param OrderEvent $event
  */
 public function updateStatus(OrderEvent $event)
 {
     $order = $event->getOrder();
     $status = $event->getStatus();
     $canceledStatus = OrderStatusQuery::getCancelledStatus()->getId();
     if ($status == $canceledStatus || $order->getStatusId() == $canceledStatus) {
         $this->updateQuantity($event->getOrder(), $status, $canceledStatus);
     }
     $order->setStatusId($status);
     $order->save();
     $event->setOrder($order);
 }
Example #4
0
 public function processUpdateOrders(OrderEvent $event)
 {
     if ($event->getOrder()->getPaymentModuleId() == $this->shoppingFluxPaymentModuleId) {
         $status = $event->getStatus();
         $allowedStatus = [$sentStatusId = OrderStatusQuery::getSentStatus()->getId(), OrderStatusQuery::getCancelledStatus()->getId()];
         if (in_array($status, $allowedStatus)) {
             $order = $event->getOrder();
             $mode = ShoppingFluxConfigQuery::getProd() ? UpdateOrders::REQUEST_MODE_PRODUCTION : UpdateOrders::REQUEST_MODE_SANDBOX;
             $api = new UpdateOrders(ShoppingFluxConfigQuery::getToken(), $mode);
             $request = new Request("UpdateOrders");
             $request->addOrder(["IdOrder" => $order->getRef(), "Marketplace" => $order->getTransactionRef(), "Status" => $status === $sentStatusId ? "Shipped" : "Canceled"]);
             $response = $api->setRequest($request)->getResponse();
             if ($response->isInError()) {
                 $this->logger->error($response->getFormattedError());
             }
             if (!$api->compareResponseRequest()) {
                 $errorMessage = "Bad response from ShoppingFlux: " . $response->getGroup("UpdateOrders")->C14N();
                 $this->logger->error($errorMessage);
             }
         }
     }
 }
Example #5
0
 /**
  * @param OrderEvent $event
  */
 public function updateStatus(OrderEvent $event, $eventName, EventDispatcherInterface $dispatcher)
 {
     $order = $event->getOrder();
     $newStatus = $event->getStatus();
     $paymentModule = ModuleQuery::create()->findPk($order->getPaymentModuleId());
     /** @var PaymentModuleInterface $paymentModuleInstance */
     $paymentModuleInstance = $paymentModule->createInstance();
     $manageStockOnCreation = $this->isModuleManageStockOnCreation($dispatcher, $paymentModuleInstance);
     $this->updateQuantity($order, $newStatus, $manageStockOnCreation);
     $order->setStatusId($newStatus);
     $order->save();
     $event->setOrder($order);
 }