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'); | ... | ... |