public function run() { $data = null; $cart = $this->getModule()->getCart(); $request = Yii::$app->request; $model = new $this->productClass(); $collection = new Collection(); $collection->setModel($model); if ($this->bulkLoad) { $data = []; $selection = $request->post('selection'); foreach ($selection as $id) { $data[$id] = [reset($model->primaryKey()) => $id]; } } else { $data = [$request->post() ?: $request->get()]; } if ($collection->load($data) && $collection->validate()) { foreach ($collection->models as $position) { if (!$cart->hasPosition($position->getId())) { $cart->put($position); Yii::$app->session->addFlash('success', Yii::t('cart', 'Item has been added to cart')); } else { Yii::$app->session->addFlash('warning', Yii::t('cart', 'Item is in the cart already')); } } } else { Yii::$app->session->addFlash('warning', Yii::t('cart', 'Item does not exists')); } if ($request->isAjax) { Yii::$app->end(); } else { return $this->controller->redirect($request->referrer); } }