diff --git a/app/code/Magento/Catalog/Helper/Product/View.php b/app/code/Magento/Catalog/Helper/Product/View.php
index e56711f361de2..3141cbb933c5e 100644
--- a/app/code/Magento/Catalog/Helper/Product/View.php
+++ b/app/code/Magento/Catalog/Helper/Product/View.php
@@ -9,6 +9,7 @@
use Magento\Catalog\Model\Product\Attribute\LayoutUpdateManager;
use Magento\Framework\App\ObjectManager;
use Magento\Framework\View\Result\Page as ResultPage;
+use Magento\Store\Model\ScopeInterface;
/**
* Catalog category helper
@@ -173,25 +174,57 @@ public function initProductLayout(ResultPage $resultPage, $product, $params = nu
}
$urlSafeSku = rawurlencode($product->getSku());
+
+ $enableIdHandle = $this->scopeConfig->isSetFlag(
+ 'catalog/layout_settings/enable_id_handle',
+ ScopeInterface::SCOPE_STORE
+ );
+ $enableAttributeSetHandle = $this->scopeConfig->isSetFlag(
+ 'catalog/layout_settings/enable_attribute_set_handle',
+ ScopeInterface::SCOPE_STORE
+ );
// Load default page handles and page configurations
if ($params && $params->getBeforeHandles()) {
foreach ($params->getBeforeHandles() as $handle) {
$resultPage->addPageLayoutHandles(['type' => $product->getTypeId()], $handle, false);
- $resultPage->addPageLayoutHandles(['attribute_set' => $product->getAttributeSetId()], $handle, false);
- $resultPage->addPageLayoutHandles(['id' => $product->getId(), 'sku' => $urlSafeSku], $handle);
+ if ($enableAttributeSetHandle) {
+ $resultPage->addPageLayoutHandles(
+ ['attribute_set' => $product->getAttributeSetId()],
+ $handle,
+ false
+ );
+ }
+ if ($enableIdHandle) {
+ $resultPage->addPageLayoutHandles(
+ ['id' => $product->getId(), 'sku' => $urlSafeSku],
+ $handle
+ );
+ }
}
}
$resultPage->addPageLayoutHandles(['type' => $product->getTypeId()], null, false);
- $resultPage->addPageLayoutHandles(['attribute_set' => $product->getAttributeSetId()], null, false);
- $resultPage->addPageLayoutHandles(['id' => $product->getId(), 'sku' => $urlSafeSku]);
+ if ($enableAttributeSetHandle) {
+ $resultPage->addPageLayoutHandles(['attribute_set' => $product->getAttributeSetId()], null, false);
+ }
+ if ($enableIdHandle) {
+ $resultPage->addPageLayoutHandles(['id' => $product->getId(), 'sku' => $urlSafeSku]);
+ }
if ($params && $params->getAfterHandles()) {
foreach ($params->getAfterHandles() as $handle) {
$resultPage->addPageLayoutHandles(['type' => $product->getTypeId()], $handle, false);
- $resultPage->addPageLayoutHandles(['attribute_set' => $product->getAttributeSetId()], $handle, false);
- $resultPage->addPageLayoutHandles(['id' => $product->getId(), 'sku' => $urlSafeSku], $handle);
+ if ($enableAttributeSetHandle) {
+ $resultPage->addPageLayoutHandles(
+ ['attribute_set' => $product->getAttributeSetId()],
+ $handle,
+ false
+ );
+ }
+ if ($enableIdHandle) {
+ $resultPage->addPageLayoutHandles(['id' => $product->getId(), 'sku' => $urlSafeSku], $handle);
+ }
}
}
diff --git a/app/code/Magento/Catalog/etc/adminhtml/system.xml b/app/code/Magento/Catalog/etc/adminhtml/system.xml
index e82b08b5229bd..614e988eabd21 100644
--- a/app/code/Magento/Catalog/etc/adminhtml/system.xml
+++ b/app/code/Magento/Catalog/etc/adminhtml/system.xml
@@ -1,8 +1,8 @@
@@ -240,6 +240,22 @@
Jpeg quality for resized images 1-100%.
+
+
+
+ advanced
+ Magento_Developer::config
+
+
+
+
+ Magento\Config\Model\Config\Source\Yesno
+
+
+
+ Magento\Config\Model\Config\Source\Yesno
+
+
diff --git a/app/code/Magento/Catalog/etc/config.xml b/app/code/Magento/Catalog/etc/config.xml
index 04f5e8fb3e883..c38f31d796e04 100644
--- a/app/code/Magento/Catalog/etc/config.xml
+++ b/app/code/Magento/Catalog/etc/config.xml
@@ -1,8 +1,8 @@
@@ -97,6 +97,12 @@
datetime
-
+
+
+
+ 1
+ 0
+
+