public function createOrderFromCart(CartInterface $cart)
    {
        $this
            ->orderEventDispatcher
            ->dispatchOrderPreCreatedEvent(
                $cart
            );

        $order = $cart->getOrder() instanceof OrderInterface
            ? $cart->getOrder()
            : $this->orderFactory->create();

        $cart->setOrder($order);

        $orderLines = $this
            ->cartLineOrderLineTransformer
            ->createOrderLinesByCartLines(
                $order,
                $cart->getCartLines()
            );

        /**
         * @var OrderInterface $order
         */
        $order
            ->setCustomer($cart->getCustomer())
            ->setCart($cart)
            ->setQuantity($cart->getTotalItemNumber())
            ->setPurchasableAmount($cart->getPurchasableAmount())
            ->setShippingAmount($cart->getShippingAmount())
            ->setAmount($cart->getAmount())
            ->setHeight($cart->getHeight())
            ->setWidth($cart->getWidth())
            ->setDepth($cart->getDepth())
            ->setWeight($cart->getWeight())
            ->setBillingAddress($cart->getBillingAddress())
            ->setDeliveryAddress($cart->getDeliveryAddress())
            ->setOrderLines($orderLines);

        $couponAmount = $cart->getCouponAmount();
        if ($couponAmount instanceof MoneyInterface) {
            $order->setCouponAmount($couponAmount);
        }

        $this
            ->orderEventDispatcher
            ->dispatchOrderOnCreatedEvent(
                $cart,
                $order
            );

        return $order;
    }
public function createOrderFromCart(CartInterface $cart)
    {
        $this
            ->orderEventDispatcher
            ->dispatchOrderPreCreatedEvent(
                $cart
            );

        $order = $cart->getOrder() instanceof OrderInterface
            ? $cart->getOrder()
            : $this->orderFactory->create();

        $cart->setOrder($order);

        $orderLines = $this
            ->cartLineOrderLineTransformer
            ->createOrderLinesByCartLines(
                $order,
                $cart->getCartLines()
            );

        /**
         * @var OrderInterface $order
         */
        $order
            ->setCustomer($cart->getCustomer())
            ->setCart($cart)
            ->setQuantity($cart->getTotalItemNumber())
            ->setPurchasableAmount($cart->getPurchasableAmount())
            ->setShippingAmount($cart->getShippingAmount())
            ->setAmount($cart->getAmount())
            ->setHeight($cart->getHeight())
            ->setWidth($cart->getWidth())
            ->setDepth($cart->getDepth())
            ->setWeight($cart->getWeight())
            ->setBillingAddress($cart->getBillingAddress())
            ->setDeliveryAddress($cart->getDeliveryAddress())
            ->setOrderLines($orderLines);

        $couponAmount = $cart->getCouponAmount();
        if ($couponAmount instanceof MoneyInterface) {
            $order->setCouponAmount($couponAmount);
        }

        $this
            ->orderEventDispatcher
            ->dispatchOrderOnCreatedEvent(
                $cart,
                $order
            );

        return $order;
    }
public function createOrderFromCart ( CartInterface $ cart ) { $ this -> orderEventDispatcher -> dispatchOrderPreCreatedEvent ( $ cart ) ; $ order = $ cart -> getOrder ( ) instanceof OrderInterface ? $ cart -> getOrder ( ) : $ this -> orderFactory -> create ( ) ; $ cart -> setOrder ( $ order ) ; $ orderLines = $ this -> cartLineOrderLineTransformer -> createOrderLinesByCartLines ( $ order , $ cart -> getCartLines ( ) ) ; /**
         * @var OrderInterface $order
         */ $ order -> setCustomer ( $ cart -> getCustomer ( ) ) -> setCart ( $ cart ) -> setQuantity ( $ cart -> getTotalItemNumber ( ) ) -> setPurchasableAmount ( $ cart -> getPurchasableAmount ( ) ) -> setShippingAmount ( $ cart -> getShippingAmount ( ) ) -> setAmount ( $ cart -> getAmount ( ) ) -> setHeight ( $ cart -> getHeight ( ) ) -> setWidth ( $ cart -> getWidth ( ) ) -> setDepth ( $ cart -> getDepth ( ) ) -> setWeight ( $ cart -> getWeight ( ) ) -> setBillingAddress ( $ cart -> getBillingAddress ( ) ) -> setDeliveryAddress ( $ cart -> getDeliveryAddress ( ) ) -> setOrderLines ( $ orderLines ) ; $ couponAmount = $ cart -> getCouponAmount ( ) ; if ( $ couponAmount instanceof MoneyInterface ) { $ order -> setCouponAmount ( $ couponAmount ) ; } $ this -> orderEventDispatcher -> dispatchOrderOnCreatedEvent ( $ cart , $ order ) ; return $ order ; }
This method creates a Order given a Cart.

If cart has a order, this one is taken as order to be used, otherwise
new order will be created from the scratch

This method dispatches these events

ElcodiPurchaseEvents::ORDER_PRECREATED
ElcodiPurchaseEvents::ORDER_ONCREATED
ElcodiPurchaseEvents::ORDER_POSTCREATED

@param CartInterface $cart Cart to create order from

@return OrderInterface the created order
This method creates a Order given a Cart .