diff --git a/app/code/Magento/CatalogUrlRewrite/Model/Product/Plugin/Import.php b/app/code/Magento/CatalogUrlRewrite/Model/Product/Plugin/Import.php index d83d347f4b65ea687b61254cb8195b3e0c6fa739..45ac3244d56e2757656c499951124707a40f2a4d 100644 --- a/app/code/Magento/CatalogUrlRewrite/Model/Product/Plugin/Import.php +++ b/app/code/Magento/CatalogUrlRewrite/Model/Product/Plugin/Import.php @@ -320,12 +320,14 @@ class Import $urls = []; foreach ($this->products as $productId => $productsByStores) { foreach ($productsByStores as $storeId => $product) { - $urls[] = $this->urlRewriteFactory->create() - ->setEntityType(ProductUrlRewriteGenerator::ENTITY_TYPE) - ->setEntityId($productId) - ->setRequestPath($this->productUrlPathGenerator->getUrlPathWithSuffix($product, $storeId)) - ->setTargetPath($this->productUrlPathGenerator->getCanonicalUrlPath($product)) - ->setStoreId($storeId); + if ($this->productUrlPathGenerator->getUrlPath($product)) { + $urls[] = $this->urlRewriteFactory->create() + ->setEntityType(ProductUrlRewriteGenerator::ENTITY_TYPE) + ->setEntityId($productId) + ->setRequestPath($this->productUrlPathGenerator->getUrlPathWithSuffix($product, $storeId)) + ->setTargetPath($this->productUrlPathGenerator->getCanonicalUrlPath($product)) + ->setStoreId($storeId); + } } } diff --git a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/Product/Plugin/ImportTest.php b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/Product/Plugin/ImportTest.php index 296a19e9374dac89b3c39fef8ab6c8f2df8275b4..b462b7b658031d59211567a0ee31d0d6166f2d27 100644 --- a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/Product/Plugin/ImportTest.php +++ b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/Product/Plugin/ImportTest.php @@ -670,7 +670,7 @@ class ImportTest extends \PHPUnit_Framework_TestCase /** * Cover canonicalUrlRewriteGenerate(). */ - public function testCanonicalUrlRewriteGenerate() + public function testCanonicalUrlRewriteGenerateWithUrlPath() { $productId = 'product_id'; $requestPath = 'simple-product.html'; @@ -691,6 +691,10 @@ class ImportTest extends \PHPUnit_Framework_TestCase ->expects($this->once()) ->method('getUrlPathWithSuffix') ->will($this->returnValue($requestPath)); + $this->productUrlPathGenerator + ->expects($this->once()) + ->method('getUrlPath') + ->will($this->returnValue('urlPath')); $this->productUrlPathGenerator ->expects($this->once()) ->method('getCanonicalUrlPath') @@ -734,6 +738,36 @@ class ImportTest extends \PHPUnit_Framework_TestCase ); } + /** + * Cover canonicalUrlRewriteGenerate(). + */ + public function testCanonicalUrlRewriteGenerateWithEmptyUrlPath() + { + $productId = 'product_id'; + $storeId = 10; + $product = $this + ->getMockBuilder('Magento\Catalog\Model\Product') + ->disableOriginalConstructor() + ->getMock(); + $productsByStores = [$storeId => $product]; + $products = [ + $productId => $productsByStores, + ]; + + $this->setPropertyValue($this->import, 'products', $products); + + $this->productUrlPathGenerator + ->expects($this->once()) + ->method('getUrlPath') + ->will($this->returnValue('')); + $this->urlRewriteFactory + ->expects($this->never()) + ->method('create'); + + $actualResult = $this->invokeMethod($this->import, 'canonicalUrlRewriteGenerate'); + $this->assertEquals([], $actualResult); + } + /** * Cover categoriesUrlRewriteGenerate(). */