예제 #1
0
 public function createOrderFromCart(OrderInterface $cart)
 {
     $order = $this->orderManager->createOrder();
     $order->setCustomer($cart->getCustomer());
     $order->setOrderDate(new \DateTime());
     $this->orderManager->setOrderState($order, 'unprocessed');
     // $order->setPrices($cart->getPrices());    //TODO: order pricing should be independent from a cart
     // Copy the (sales) channel if it is provided
     if (null != $cart->getChannel()) {
         $order->setChannel($cart->getChannel());
     }
     //$fulfillmentAgreement = $this->orderManager->createFulfillmentAgreement();
     //$paymentAgreement = $this->orderManager->createPaymentAgreement();
     //$order->setFulfillmentAgreement($fulfillmentAgreement);
     //$order->setPaymentAgreement($paymentAgreement);
     $items = $cart->getItems();
     if (null != $items) {
         foreach ($cart->getItems() as $cartItem) {
             $orderItem = $this->orderManager->addProductToOrder($order, $cartItem->getProduct());
             //$orderItem->setPricing($cartItem->getPricing());
             $this->orderManager->setItemQuantity($orderItem, $cartItem->getQuantity());
             $this->orderManager->setOrderItemState($orderItem, 'unprocessed');
         }
     }
     return $order;
 }
예제 #2
0
 public function isValidOpenOrder(OrderInterface $order = null, PartnerInterface $customer = null)
 {
     if (null == $order) {
         return false;
     }
     if (null != $customer && $customer != $order->getCustomer()) {
         return false;
     }
     if ($order->getState() != OrderState::OPEN) {
         return false;
     }
     return true;
 }