Example #1
0
 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;
 }
Example #2
0
 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;
 }