예제 #1
0
 public function actionAdd()
 {
     $item_id = (int) Yii::$app->request->post('item_id');
     $qty = (int) Yii::$app->request->post('qty');
     $data = Yii::$app->request->post('data');
     $props = Yii::$app->request->post('props');
     if ($props) {
         $tmp = explode(';', $props);
         $props = [];
         foreach ($tmp as $v) {
             $a = explode(':', $v);
             $props[$a[0]] = $v;
         }
         $sku = Sku::find()->where(['item_id' => $item_id, 'props' => Json::encode($props)])->one();
         $sku_id = $sku->sku_id;
     }
     $shoppingCartModel = new ShoppingCart();
     if ($shoppingCartModel->add($sku_id, $qty, $data)) {
         return Json::encode(['message' => \Yii::t('app', 'add to cart success')]);
     } else {
         return Json::encode(['message' => \Yii::t('app', 'add to cart fail')]);
     }
 }
예제 #2
0
 public function updateItemStock()
 {
     foreach ($this->items as $orderItem) {
         /** @var \star\catalog\models\Sku $item */
         $item = Sku::findOne(['sku_id' => $orderItem->item_id]);
         $item->quantity = $item->quantity - $orderItem->qty;
         if (!$item->save()) {
             throw new Exception('update item fail');
         }
     }
 }
예제 #3
0
 /**
  * @param $event CartEvent
  */
 public function validate($event)
 {
     //@TODO need to move to cart model the have error message
     $sku = Sku::find()->where($event->item_id)->one();
     if (!$sku) {
         $event->isValid = false;
         return;
     }
     $item = Item::find()->where($sku->item_id)->one();
     if (!$item || intval($event->qty) != $event->qty) {
         $event->isValid = false;
         return;
     }
     if ($event->qty <= 0) {
         $event->isValid = false;
         return;
     }
 }
예제 #4
0
 public function getSku()
 {
     return $this->hasOne(Sku::className(), ['item_id' => 'item_id']);
 }
예제 #5
0
 public function actionAjaxSkus()
 {
     if (!Yii::$app->request->isAjax && empty($_POST['item_id'])) {
         return;
     }
     $skuModel = Yii::createObject(Sku::className());
     $skus = $skuModel::findAll(["item_id" => $_POST["item_id"]]);
     $data = array();
     foreach ($skus as $sku) {
         $arr = array();
         $arr['sku_id'] = $sku->sku_id;
         $json = JSON::decode($sku->props);
         $arr['props'] = implode("_", $json);
         $arr['price'] = $sku->price;
         $arr['stock'] = $sku->quantity;
         $arr['outer_id'] = $sku->outer_id;
         $arr['tag'] = $sku->tag;
         $data[] = $arr;
     }
     echo json_encode($data);
 }
예제 #6
0
파일: Item.php 프로젝트: ASDAFF/OurYincart2
 public function beforeDelete()
 {
     if (parent::beforeDelete()) {
         //delete images and sku
         ItemImg::deleteAll(['item_id' => $this->item_id]);
         Sku::deleteAll(['item_id' => $this->item_id]);
         return true;
     } else {
         return false;
     }
 }