/** * @param UuidInterface $orderId * @param User $user * @param Cart $cart * @param CartCalculatorInterface $cartCalculator * @param string $ip4 * @return Order */ public static function fromCart(UuidInterface $orderId, User $user, Cart $cart, CartCalculatorInterface $cartCalculator, $ip4) { $order = new Order($orderId); $order->setIp4($ip4); foreach ($cart->getCartItems() as $item) { $order->addOrderItem($item->getOrderItem($order, $cartCalculator->getPricing())); } foreach ($cart->getCoupons() as $coupon) { $order->addCoupon($coupon); } $order->setUser($user); $order->setTaxRate($cart->getTaxRate()); $order->setShipmentRate($cart->getShipmentRate()); $order->setTotal($cart->getTotal($cartCalculator)); return $order; }