Commit 1c1c654502868891aa9c78a4dd61f0bb154798f4

Authored by Karnovsky A
1 parent a2a186db

---

common/modules/product/models/Product.php
... ... @@ -226,6 +226,13 @@ class Product extends \yii\db\ActiveRecord
226 226 }
227 227 }
228 228  
  229 + public function beforeDelete() {
  230 + ProductImage::deleteAll(['product_id' => $this->product_id]);
  231 + ProductCategory::deleteAll(['product_id' => $this->product_id]);
  232 + ProductVariant::deleteAll(['product_id' => $this->product_id]);
  233 + return true;
  234 + }
  235 +
229 236 public function imagesUpload()
230 237 {
231 238 if ($this->validate()) {
... ...
console/controllers/ImportController.php
... ... @@ -24,6 +24,19 @@ class ImportController extends Controller {
24 24 return Controller::EXIT_CODE_NORMAL;
25 25 }
26 26  
  27 + public function goClear() {
  28 + foreach(Product::find()->all() as $product) {
  29 + if (empty($product->variant)) {
  30 + if (!$product->delete()) {
  31 + $this->stdout("#$product->product_id '$product->name'\n");
  32 + exit;
  33 + } else {
  34 + $this->stdout("#$product->product_id '$product->name'\n");
  35 + }
  36 + }
  37 + }
  38 + }
  39 +
27 40 public function goGo() {
28 41 $new_products = $linked_products = 0;
29 42 foreach(RemoteProducts::find()->all() as $product) {
... ... @@ -31,7 +44,7 @@ class ImportController extends Controller {
31 44 if (empty($product->remoteCategory) || empty($product->remoteCategory->category)) {
32 45 continue;
33 46 }
34   - if (!empty($product->product->product_id))
  47 + if (!empty($product->product))
35 48 {
36 49 $linked_products++;
37 50  
... ... @@ -103,19 +116,19 @@ class ImportController extends Controller {
103 116 $_productVariant->remote_id = $product->ID;
104 117 $_productVariant->stock = $_productVariant->price > 0 ? null : 0;
105 118  
106   - if (!$_product->save()) {
107   - print $this->stdout("Saved error for the {$_product->name} {$_product->product_id}?\n");
108   - return Controller::EXIT_CODE_ERROR;
109   - }
110   - $_productVariant->product_id = $_product->product_id;
111   - if (!$_productVariant->save()) {
112   - print $this->stdout("Saved error for variant of the {$_product->name} {$_product->product_id}?\n");
113   - return Controller::EXIT_CODE_ERROR;
  119 + if ($_product->save()) {
  120 + $_productVariant->product_id = $_product->product_id;
  121 + if (!$_productVariant->save()) {
  122 + print $this->stdout("Saved error for variant of the {$_product->name} {$_product->product_id}?\n");
  123 +// return Controller::EXIT_CODE_ERROR;
  124 + }
  125 +
114 126 }
115 127 }
  128 + $product->delete();
116 129 }
117 130  
118   - $this->goStat();
  131 +// $this->goStat();
119 132 }
120 133  
121 134 public function goStat() {
... ...