Skip to content

Commit 9bc121b

Browse files
committed
ACP2E-2549: regenerate product url rewrites when root category is switched and on default is not visible.
1 parent 14ce93a commit 9bc121b

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

app/code/Magento/CatalogUrlRewrite/Model/ProductScopeRewriteGenerator.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ public function generateForGlobalScope($productCategories, Product $product, $ro
170170
$productId,
171171
Product::ENTITY
172172
)) {
173-
if (count($visibleForStores) == 0 || in_array((int)$id, $visibleForStores)) {
173+
if (count($visibleForStores) === 0 || in_array((int)$id, $visibleForStores)) {
174174
$mergeDataProvider->merge(
175175
$this->generateForSpecificStoreView(
176176
$id,
@@ -182,7 +182,7 @@ public function generateForGlobalScope($productCategories, Product $product, $ro
182182
);
183183
}
184184
} else {
185-
if (count($visibleForStores) == 0 || in_array((int)$id, $visibleForStores)) {
185+
if (count($visibleForStores) === 0 || in_array((int)$id, $visibleForStores)) {
186186
$scopedProduct = $this->productRepository->getById($productId, false, $id);
187187
$mergeDataProvider->merge(
188188
$this->generateForSpecificStoreView(

app/code/Magento/CatalogUrlRewrite/Model/ProductUrlRewriteGenerator.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use Magento\CatalogUrlRewrite\Service\V1\StoreViewService;
1313
use Magento\Framework\App\ObjectManager;
1414
use Magento\Catalog\Model\Product\Visibility;
15+
use Magento\Store\Model\Store;
1516
use Magento\Store\Model\StoreManagerInterface;
1617

1718
/**
@@ -146,6 +147,7 @@ public function generate(Product $product, $rootCategoryId = null)
146147
if ($product->getVisibility() == Visibility::VISIBILITY_NOT_VISIBLE) {
147148
$visibleForStores = $this->visibleForStores->execute($product);
148149
if (count($visibleForStores) === 0 ||
150+
$product->getStoreId() !== Store::DEFAULT_STORE_ID &&
149151
!in_array($product->getStoreId(), $visibleForStores)
150152
) {
151153
return [];

0 commit comments

Comments
 (0)