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 addItemToCart($cart, $cartItem, $additionalParams = []) { $user = Yii::$app->user->getIdentity(); $cartItem->cartId = $cart->id; // remove if exist if ($cartItem->id > 0 && !$cartItem->addToCart) { CartItemService::delete($cartItem); } if ($cartItem->addToCart) { // create if ($cartItem->id <= 0) { $cartItem->setScenario("create"); return CartItemService::create($cartItem); } else { $cartItem->setScenario("update"); return CartItemService::update($cartItem, $additionalParams); } } return null; }