Skip to content

Commit c7d6324

Browse files
committed
MAGETWO-70651: Saving category create not valid url-rewrites
1 parent 3be13d1 commit c7d6324

File tree

2 files changed

+6
-20
lines changed

2 files changed

+6
-20
lines changed

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
/**
1212
* Class ProductUrlRewriteGenerator
1313
* @package Magento\CatalogUrlRewrite\Model
14-
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
1514
*/
1615
class CategoryProductUrlPathGenerator
1716
{
@@ -30,7 +29,7 @@ public function __construct(
3029
}
3130

3231
/**
33-
* Generate product url rewrites based on category
32+
* Generate product url rewrites based on all product categories
3433
*
3534
* @param \Magento\Catalog\Model\Product $product
3635
* @param int|null $rootCategoryId

app/code/Magento/CatalogUrlRewrite/Observer/UrlRewriteHandler.php

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class UrlRewriteHandler
2525
/** @var \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory */
2626
protected $productCollectionFactory;
2727

28-
/** @var \Magento\CatalogUrlRewrite\Model\CategoryBasedProductRewriteGenerator */
28+
/** @var \Magento\CatalogUrlRewrite\Model\CategoryProductUrlPathGenerator */
2929
private $categoryBasedProductRewriteGenerator;
3030

3131
/** @var \Magento\UrlRewrite\Model\MergeDataProvider */
@@ -40,6 +40,7 @@ class UrlRewriteHandler
4040
* @param \Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator $productUrlRewriteGenerator
4141
* @param \Magento\UrlRewrite\Model\UrlPersistInterface $urlPersist
4242
* @param \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory
43+
* @param \Magento\CatalogUrlRewrite\Model\CategoryProductUrlPathGenerator $categoryBasedProductRewriteGenerator
4344
* @param \Magento\UrlRewrite\Model\MergeDataProviderFactory|null $mergeDataProviderFactory
4445
* @param \Magento\Framework\Serialize\Serializer\Json|null $serializer
4546
*/
@@ -49,6 +50,7 @@ public function __construct(
4950
\Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator $productUrlRewriteGenerator,
5051
\Magento\UrlRewrite\Model\UrlPersistInterface $urlPersist,
5152
\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory,
53+
\Magento\CatalogUrlRewrite\Model\CategoryProductUrlPathGenerator $categoryBasedProductRewriteGenerator,
5254
\Magento\UrlRewrite\Model\MergeDataProviderFactory $mergeDataProviderFactory = null,
5355
\Magento\Framework\Serialize\Serializer\Json $serializer = null
5456
) {
@@ -57,6 +59,7 @@ public function __construct(
5759
$this->productUrlRewriteGenerator = $productUrlRewriteGenerator;
5860
$this->urlPersist = $urlPersist;
5961
$this->productCollectionFactory = $productCollectionFactory;
62+
$this->categoryBasedProductRewriteGenerator = $categoryBasedProductRewriteGenerator;
6063

6164
if (!isset($mergeDataProviderFactory)) {
6265
$mergeDataProviderFactory = \Magento\Framework\App\ObjectManager::getInstance()->get(
@@ -158,29 +161,13 @@ private function getCategoryProductsUrlRewrites(
158161
$product->setStoreId($storeId);
159162
$product->setData('save_rewrites_history', $saveRewriteHistory);
160163
$mergeDataProvider->merge(
161-
$this->getCategoryBasedProductRewriteGenerator()->generate($product, $rootCategoryId)
164+
$this->categoryBasedProductRewriteGenerator->generate($product, $rootCategoryId)
162165
);
163166
}
164167

165168
return $mergeDataProvider->getData();
166169
}
167170

168-
/**
169-
* Retrieve generator, which use all product categories for different products
170-
*
171-
* @deprecated
172-
* @return \Magento\CatalogUrlRewrite\Model\CategoryProductUrlPathGenerator|mixed
173-
*/
174-
private function getCategoryBasedProductRewriteGenerator()
175-
{
176-
if (!$this->categoryBasedProductRewriteGenerator) {
177-
$this->categoryBasedProductRewriteGenerator = \Magento\Framework\App\ObjectManager::getInstance()
178-
->get(\Magento\CatalogUrlRewrite\Model\CategoryProductUrlPathGenerator::class);
179-
}
180-
181-
return $this->categoryBasedProductRewriteGenerator;
182-
}
183-
184171
/**
185172
* @param \Magento\Catalog\Model\Category $category
186173
* @return void

0 commit comments

Comments
 (0)