Commit 15b6552f51fc70a91d3c070cc4012eb5892200bd
1 parent
240fe900
Sitemap
Showing
1 changed file
with
13 additions
and
17 deletions
Show diff stats
console/SiteMapController.php
| ... | ... | @@ -3,6 +3,7 @@ |
| 3 | 3 | namespace artweb\artbox\ecommerce\console; |
| 4 | 4 | |
| 5 | 5 | use artweb\artbox\ecommerce\models\Brand; |
| 6 | + use artweb\artbox\ecommerce\models\Product; | |
| 6 | 7 | use artweb\artbox\ecommerce\models\ProductVariant; |
| 7 | 8 | use artweb\artbox\language\components\LanguageUrlManager; |
| 8 | 9 | use artweb\artbox\language\models\Language; |
| ... | ... | @@ -41,18 +42,8 @@ |
| 41 | 42 | |
| 42 | 43 | public function getVariants() |
| 43 | 44 | { |
| 44 | - return ProductVariant::find() | |
| 45 | - ->with('lang') | |
| 46 | - ->with('product.lang') | |
| 47 | - ->select('*', 'DISTINCT ON (product_id)') | |
| 48 | - ->andWhere( | |
| 49 | - [ | |
| 50 | - '!=', | |
| 51 | - 'stock', | |
| 52 | - 0, | |
| 53 | - ] | |
| 54 | - ); | |
| 55 | - | |
| 45 | + return Product::find() | |
| 46 | + ->with('enabledVariants.lang'); | |
| 56 | 47 | } |
| 57 | 48 | |
| 58 | 49 | public function getSeoLinks() |
| ... | ... | @@ -254,16 +245,21 @@ |
| 254 | 245 | } |
| 255 | 246 | |
| 256 | 247 | foreach ($this->getVariants() |
| 257 | - ->batch(1000) as $rows) { | |
| 258 | - foreach ($rows as $row) { | |
| 259 | - if (!preg_match("@^[a-zA-Z\d]+$@i", $row->sku)) { | |
| 248 | + ->each(1000) as $row) { | |
| 249 | + /** | |
| 250 | + * @var Product $row | |
| 251 | + */ | |
| 252 | + if(!empty($row->enabledVariants)) { | |
| 253 | + $variant = $row->enabledVariants[0]; | |
| 254 | + } | |
| 255 | + if(!empty($variant)) { | |
| 256 | + if (!preg_match("@^[a-zA-Z\d]+$@i", $variant->sku)) { | |
| 260 | 257 | continue; |
| 261 | 258 | } |
| 262 | 259 | $url = $urlManager->createAbsoluteUrl( |
| 263 | 260 | [ |
| 264 | 261 | 'catalog/product', |
| 265 | - 'product' => $row->product->lang->alias, | |
| 266 | - 'variant' => $row->sku, | |
| 262 | + 'product' => $row->lang->alias, | |
| 267 | 263 | ] |
| 268 | 264 | ); |
| 269 | 265 | $this->createRow($url, 0.7, 'Daily'); | ... | ... |