public static function createFromCart($order, $shippingAddress, $cart, $cartItems, $message, $additionalParams = []) { // Set Attributes $user = Yii::$app->user->getIdentity(); $order->createdBy = $user->id; $order->status = Order::STATUS_NEW; $order->description = $message; // Generate uid $order->generateName(); // Set Order Totals $cartTotal = $cart->getCartTotal($cartItems); $order->subTotal = $cartTotal; $order->tax = 0; $order->shipping = 0; $order->total = $cartTotal; $order->discount = 0; $order->grandTotal = $cartTotal; $order->save(); // Save Shipping Address ModelAddressService::copyToShipping($shippingAddress, $order->id, CartGlobal::TYPE_ORDER); // Create Order Items foreach ($cartItems as $cartItem) { OrderItemService::createFromCartItem($order->id, $cartItem, $additionalParams); } // Delete Cart Items CartItemService::deleteByCartId($cart->id); // Delete Cart CartService::delete($cart); // Create Order History OrderHistoryService::create($order); // Return Order return $order; }
public static function getObjectMapByUserId($userId) { $cart = CartService::findAndCreateByUserId($userId); return self::findObjectMap('parentId', new CartItem(), ['conditions' => ['cartId' => $cart->id]]); }