diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/AdminCreateProductAttributeSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCreateProductAttributeSection.xml
index d24c501152b78..7ca2c0a56f224 100644
--- a/app/code/Magento/Catalog/Test/Mftf/Section/AdminCreateProductAttributeSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCreateProductAttributeSection.xml
@@ -13,6 +13,7 @@
+
diff --git a/app/code/Magento/Swatches/Block/Product/Renderer/Configurable.php b/app/code/Magento/Swatches/Block/Product/Renderer/Configurable.php
index 6143b8e659059..0848f566f67bb 100644
--- a/app/code/Magento/Swatches/Block/Product/Renderer/Configurable.php
+++ b/app/code/Magento/Swatches/Block/Product/Renderer/Configurable.php
@@ -182,6 +182,9 @@ public function getJsonSwatchConfig()
$attributeDataArray
);
}
+ if (isset($attributeDataArray['additional_data'])) {
+ $config[$attributeId]['additional_data'] = $attributeDataArray['additional_data'];
+ }
}
return $this->jsonEncoder->encode($config);
@@ -189,6 +192,7 @@ public function getJsonSwatchConfig()
/**
* Get number of swatches from config to show on product listing.
+ *
* Other swatches can be shown after click button 'Show more'
*
* @return string
@@ -228,6 +232,8 @@ public function getProduct()
}
/**
+ * Get swatch attributes data.
+ *
* @return array
*/
protected function getSwatchAttributesData()
@@ -236,6 +242,8 @@ protected function getSwatchAttributesData()
}
/**
+ * Init isProductHasSwatchAttribute.
+ *
* @deprecated 100.1.5 Method isProductHasSwatchAttribute() is used instead of this.
*
* @codeCoverageIgnore
@@ -364,6 +372,8 @@ protected function getVariationMedia($attributeCode, $optionId)
}
/**
+ * Get swatch product image.
+ *
* @param Product $childProduct
* @param string $imageType
* @return string
@@ -384,6 +394,8 @@ protected function getSwatchProductImage(Product $childProduct, $imageType)
}
/**
+ * Check if product have image.
+ *
* @param Product $product
* @param string $imageType
* @return bool
@@ -394,6 +406,8 @@ protected function isProductHasImage(Product $product, $imageType)
}
/**
+ * Get configurable options ids.
+ *
* @param array $attributeData
* @return array
* @since 100.0.3
@@ -453,8 +467,8 @@ protected function getRendererTemplate()
}
/**
+ * @inheritDoc
* @deprecated 100.1.5 Now is used _toHtml() directly
- * @return string
*/
protected function getHtmlOutput()
{
@@ -462,6 +476,8 @@ protected function getHtmlOutput()
}
/**
+ * Get media callback url.
+ *
* @return string
*/
public function getMediaCallback()
diff --git a/app/code/Magento/Swatches/Test/Mftf/Test/StorefrontFilterByImageSwatchTest.xml b/app/code/Magento/Swatches/Test/Mftf/Test/StorefrontFilterByImageSwatchTest.xml
index e4c96ab3a2ba7..b82fce84a550b 100644
--- a/app/code/Magento/Swatches/Test/Mftf/Test/StorefrontFilterByImageSwatchTest.xml
+++ b/app/code/Magento/Swatches/Test/Mftf/Test/StorefrontFilterByImageSwatchTest.xml
@@ -41,6 +41,9 @@
+
+
+
diff --git a/app/code/Magento/Swatches/view/frontend/web/js/swatch-renderer.js b/app/code/Magento/Swatches/view/frontend/web/js/swatch-renderer.js
index 2571c0385dab7..7e12f89738d39 100644
--- a/app/code/Magento/Swatches/view/frontend/web/js/swatch-renderer.js
+++ b/app/code/Magento/Swatches/view/frontend/web/js/swatch-renderer.js
@@ -713,7 +713,8 @@ define([
$wrapper = $this.parents('.' + $widget.options.classes.attributeOptionsWrapper),
$label = $parent.find('.' + $widget.options.classes.attributeSelectedOptionLabelClass),
attributeId = $parent.attr('attribute-id'),
- $input = $parent.find('.' + $widget.options.classes.attributeInput);
+ $input = $parent.find('.' + $widget.options.classes.attributeInput),
+ checkAdditionalData = JSON.parse(this.options.jsonSwatchConfig[attributeId]['additional_data']);
if ($widget.inProductList) {
$input = $widget.productForm.find(
@@ -753,7 +754,10 @@ define([
$widget.options.jsonConfig.optionPrices
]);
- $widget._loadMedia();
+ if (checkAdditionalData['update_product_preview_image'] === '1') {
+ $widget._loadMedia();
+ }
+
$input.trigger('change');
},