예제 #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;
 }