/** * Given a cart line, creates a new order line * * @param OrderInterface $order Order * @param CartLineInterface $cartLine Cart Line * * @return OrderLineInterface OrderLine created */ public function createOrderLineByCartLine(OrderInterface $order, CartLineInterface $cartLine) { $orderLine = $cartLine->getOrderLine() instanceof OrderLineInterface ? $cartLine->getOrderLine() : $this->orderLineFactory->create(); /** * @var OrderLineInterface $orderLine */ $orderLine->setOrder($order)->setPurchasable($cartLine->getPurchasable())->setQuantity($cartLine->getQuantity())->setProductAmount($cartLine->getProductAmount())->setAmount($cartLine->getAmount())->setHeight($cartLine->getHeight())->setWidth($cartLine->getWidth())->setDepth($cartLine->getDepth())->setWeight($cartLine->getWeight()); $this->orderLineEventDispatcher->dispatchOrderLineOnCreatedEvent($order, $cartLine, $orderLine); return $orderLine; }