Esempio n. 1
0
 public static function getCurrentCart()
 {
     if (($cart = self::findOne(['customer_id' => \Yii::$app->user->identity->id, 'status' => self::CART_PENDING])) !== null) {
         $cart->cleanUp();
         return $cart;
     }
     $cart = new Cart();
     $cart->customer_id = \Yii::$app->user->identity->id;
     $cart->session_id = session_id();
     $cart->created = date('Y-m-d H:i:s');
     $cart->status = self::CART_PENDING;
     $cart->save();
     return $cart;
 }
Esempio n. 2
0
 public function actionAjaxAdd()
 {
     Yii::$app->response->format = Response::FORMAT_JSON;
     $request = Yii::$app->request;
     $id = $request->get('id');
     $color = $request->get('color');
     $size = $request->get('size');
     $number = $request->get('num');
     $model = Product::findOne($id);
     if (!Yii::$app->session->isActive) {
         Yii::$app->session->open();
     }
     $cart = new Cart();
     $cart->session_id = Yii::$app->session->id;
     $cart->user_id = Yii::$app->user->isGuest ? 0 : Yii::$app->user->id;
     $cart->product_id = $id;
     $cart->name = $model->name;
     $cart->color = $color;
     $cart->size = $size;
     $cart->number = $number;
     $cart->price = $model->price;
     if ($cart->save()) {
         return ['status' => 1, 'productId' => $id, 'size' => $size, 'color' => $color];
     } else {
         return ['status' => -2, 'productId' => $id, 'size' => $size, 'color' => $color];
     }
 }
Esempio n. 3
0
 public function actionAddToCart($productId, $quantity)
 {
     if (isset(Yii::$app->user->id)) {
         $cart = Cart::findOne(['user_id' => Yii::$app->user->id, 'status' => 'CREATED']);
         if ($cart) {
             $productCart = ProductsCart::findOne(['cart_id' => $cart->id, 'product_id' => $productId]);
             if ($productCart) {
                 $productCart->quantity += $quantity;
             } else {
                 $productCart = new ProductsCart();
                 $productCart->cart_id = $cart->id;
                 $productCart->product_id = $productId;
                 $productCart->quantity = $quantity;
             }
             $productCart->save();
         } else {
             $cart = new Cart();
             $cart->user_id = Yii::$app->user->id;
             $cart->status = 'CREATED';
             $cart->creation_date = date('Y-m-d H:i:s');
             if ($cart->save()) {
                 $productCart = new ProductsCart();
                 $productCart->cart_id = $cart->id;
                 $productCart->product_id = $productId;
                 $productCart->quantity = $quantity;
                 $productCart->save();
             }
         }
     } else {
         $cart = Yii::$app->session['cart'];
         if (isset($cart[$productId])) {
             $cart[$productId] += intval($quantity);
         } else {
             $cart[$productId] = intval($quantity);
         }
         Yii::$app->session['cart'] = $cart;
     }
     $this->actionLoadCart();
 }
 public static function new($user_id = null)
 {
     $cart = new Cart(['user_id' => $user_id]);
     $cart->save();
     return $cart;
 }