Stop simple product images overriding main product gallery after clicking swatchesLink configurable swatches to appropriate simple productChange More product images on color swatch selectSimple product images on product page, search/category and basket pagesConfigurable swatches on category page showing Out Of Stock ProductsSwatches update gallery but only with the first productSimple product images in cartConfigurable Products: Update Media Gallery - Not Just Base ImageProduct gallery disappear after page loadHide Configurable product images from details page when color swatch is selectedConfigurable product doesn't show simple product images
How to stop co-workers from teasing me because I know Russian?
How to have a sharp product image?
How can I practically buy stocks?
If a planet has 3 moons, is it possible to have triple Full/New Moons at once?
How much cash can I safely carry into the USA and avoid civil forfeiture?
Critique of timeline aesthetic
Can someone publish a story that happened to you?
How do I deal with a coworker that keeps asking to make small superficial changes to a report, and it is seriously triggering my anxiety?
What happens to Mjolnir (Thor's hammer) at the end of Endgame?
Aligning equation numbers vertically
On The Origin of Dissonant Chords
Does tea made with boiling water cool faster than tea made with boiled (but still hot) water?
Why did C use the -> operator instead of reusing the . operator?
Don’t seats that recline flat defeat the purpose of having seatbelts?
Is it idiomatic to construct against `this`
How to display Aura JS Errors Lightning Out
What are the steps to solving this definite integral?
How could Tony Stark make this in Endgame?
Checks user level and limit the data before saving it to mongoDB
Extension of 2-adic valuation to the real numbers
How to pronounce 'c++' in Spanish
Should the Death Curse affect an undead PC in the Tomb of Annihilation adventure?
What's the name of these pliers?
Classification of surfaces
Stop simple product images overriding main product gallery after clicking swatches
Link configurable swatches to appropriate simple productChange More product images on color swatch selectSimple product images on product page, search/category and basket pagesConfigurable swatches on category page showing Out Of Stock ProductsSwatches update gallery but only with the first productSimple product images in cartConfigurable Products: Update Media Gallery - Not Just Base ImageProduct gallery disappear after page loadHide Configurable product images from details page when color swatch is selectedConfigurable product doesn't show simple product images
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I've upgraded from 2.1.9 to 2.2.3. Now on a configurable product page when a swatch is selected the product page gallery images get overridden by the simple product image for each swatch.
This didn't used to happen and I can't find a way to stop this behaviour. I only want the configurable product images to show as in the past. I actually only have thumbnails associated with simple products to show at the checkout.
configurable-product magento2.2 simple-product swatches gallery
add a comment |
I've upgraded from 2.1.9 to 2.2.3. Now on a configurable product page when a swatch is selected the product page gallery images get overridden by the simple product image for each swatch.
This didn't used to happen and I can't find a way to stop this behaviour. I only want the configurable product images to show as in the past. I actually only have thumbnails associated with simple products to show at the checkout.
configurable-product magento2.2 simple-product swatches gallery
add a comment |
I've upgraded from 2.1.9 to 2.2.3. Now on a configurable product page when a swatch is selected the product page gallery images get overridden by the simple product image for each swatch.
This didn't used to happen and I can't find a way to stop this behaviour. I only want the configurable product images to show as in the past. I actually only have thumbnails associated with simple products to show at the checkout.
configurable-product magento2.2 simple-product swatches gallery
I've upgraded from 2.1.9 to 2.2.3. Now on a configurable product page when a swatch is selected the product page gallery images get overridden by the simple product image for each swatch.
This didn't used to happen and I can't find a way to stop this behaviour. I only want the configurable product images to show as in the past. I actually only have thumbnails associated with simple products to show at the checkout.
configurable-product magento2.2 simple-product swatches gallery
configurable-product magento2.2 simple-product swatches gallery
edited Apr 18 '18 at 10:16
Mukesh Prajapati
1,251416
1,251416
asked Apr 18 '18 at 10:00
SilkSpinSilkSpin
407
407
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
By adding the following code to the theme's view.xml the image from the simple product is now added to the product gallery rather than replacing the one associated with the configurable product.
<vars module="Magento_ConfigurableProduct">
<var name="gallery_switch_strategy">prepend</var>
</vars>
I would still like to find a way to stop the simple product image appearing in the configurable product gallery altogether? I don't need separate photos for each simple product. I only have thumbnails associated with the simple products but they are being shown in the gallery when the swatch image is clicked on. Even though Hide from Product Page is checked.
– SilkSpin
Apr 20 '18 at 22:52
add a comment |
If you would like to alter the behavior of how the gallery switching happens, I think the function you are looking for is in
vendor/magento/module-swatches/view/frontend/web/js/swatch-renderer.js
called processUpdateBaseImage
This is completely untested, but you can create a mixin and change that function's behavior, something like:
Namespace/Module/view/frontend/requirejs-config.js -
var config =
config:
mixins:
'Magento_Swatches/js/swatch-renderer':
'Namespace_Module/js/swatch-renderer-mixin': true
,
;
Namespace/Module/view/web/js/swatch-renderer-mixin.js -
define(['jquery'], function ($)
'use strict';
var mixin =
/**
* Update [gallery-placeholder] or [product-image-photo]
* @param Array images
* @param jQuery context
* @param Boolean isInProductView
* @param Object gallery
*/
processUpdateBaseImage: function (images, context, isInProductView, gallery)
var justAnImage = images[0],
initialImages = this.options.mediaGalleryInitial,
imagesToUpdate,
isInitial;
if (isInProductView)
imagesToUpdate = images.length ? this._setImageType($.extend(true, [], images)) : [];
isInitial = _.isEqual(imagesToUpdate, initialImages);
if (this.options.gallerySwitchStrategy === 'prepend' && !isInitial)
imagesToUpdate = imagesToUpdate.concat(initialImages);
imagesToUpdate = this._setImageIndex(imagesToUpdate);
gallery.updateData(imagesToUpdate);
if (isInitial)
$(this.options.mediaGallerySelector).AddFotoramaVideoEvents();
else
$(this.options.mediaGallerySelector).AddFotoramaVideoEvents(
selectedOption: this.getProduct(),
dataMergeStrategy: this.options.gallerySwitchStrategy
);
gallery.first();
else if (justAnImage && justAnImage.img)
context.find('.product-image-photo').attr('src', justAnImage.img);
;
return function (target)
return target.extend(mixin);
);
New contributor
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "479"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f222804%2fstop-simple-product-images-overriding-main-product-gallery-after-clicking-swatch%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
By adding the following code to the theme's view.xml the image from the simple product is now added to the product gallery rather than replacing the one associated with the configurable product.
<vars module="Magento_ConfigurableProduct">
<var name="gallery_switch_strategy">prepend</var>
</vars>
I would still like to find a way to stop the simple product image appearing in the configurable product gallery altogether? I don't need separate photos for each simple product. I only have thumbnails associated with the simple products but they are being shown in the gallery when the swatch image is clicked on. Even though Hide from Product Page is checked.
– SilkSpin
Apr 20 '18 at 22:52
add a comment |
By adding the following code to the theme's view.xml the image from the simple product is now added to the product gallery rather than replacing the one associated with the configurable product.
<vars module="Magento_ConfigurableProduct">
<var name="gallery_switch_strategy">prepend</var>
</vars>
I would still like to find a way to stop the simple product image appearing in the configurable product gallery altogether? I don't need separate photos for each simple product. I only have thumbnails associated with the simple products but they are being shown in the gallery when the swatch image is clicked on. Even though Hide from Product Page is checked.
– SilkSpin
Apr 20 '18 at 22:52
add a comment |
By adding the following code to the theme's view.xml the image from the simple product is now added to the product gallery rather than replacing the one associated with the configurable product.
<vars module="Magento_ConfigurableProduct">
<var name="gallery_switch_strategy">prepend</var>
</vars>
By adding the following code to the theme's view.xml the image from the simple product is now added to the product gallery rather than replacing the one associated with the configurable product.
<vars module="Magento_ConfigurableProduct">
<var name="gallery_switch_strategy">prepend</var>
</vars>
answered Apr 20 '18 at 9:44
SilkSpinSilkSpin
407
407
I would still like to find a way to stop the simple product image appearing in the configurable product gallery altogether? I don't need separate photos for each simple product. I only have thumbnails associated with the simple products but they are being shown in the gallery when the swatch image is clicked on. Even though Hide from Product Page is checked.
– SilkSpin
Apr 20 '18 at 22:52
add a comment |
I would still like to find a way to stop the simple product image appearing in the configurable product gallery altogether? I don't need separate photos for each simple product. I only have thumbnails associated with the simple products but they are being shown in the gallery when the swatch image is clicked on. Even though Hide from Product Page is checked.
– SilkSpin
Apr 20 '18 at 22:52
I would still like to find a way to stop the simple product image appearing in the configurable product gallery altogether? I don't need separate photos for each simple product. I only have thumbnails associated with the simple products but they are being shown in the gallery when the swatch image is clicked on. Even though Hide from Product Page is checked.
– SilkSpin
Apr 20 '18 at 22:52
I would still like to find a way to stop the simple product image appearing in the configurable product gallery altogether? I don't need separate photos for each simple product. I only have thumbnails associated with the simple products but they are being shown in the gallery when the swatch image is clicked on. Even though Hide from Product Page is checked.
– SilkSpin
Apr 20 '18 at 22:52
add a comment |
If you would like to alter the behavior of how the gallery switching happens, I think the function you are looking for is in
vendor/magento/module-swatches/view/frontend/web/js/swatch-renderer.js
called processUpdateBaseImage
This is completely untested, but you can create a mixin and change that function's behavior, something like:
Namespace/Module/view/frontend/requirejs-config.js -
var config =
config:
mixins:
'Magento_Swatches/js/swatch-renderer':
'Namespace_Module/js/swatch-renderer-mixin': true
,
;
Namespace/Module/view/web/js/swatch-renderer-mixin.js -
define(['jquery'], function ($)
'use strict';
var mixin =
/**
* Update [gallery-placeholder] or [product-image-photo]
* @param Array images
* @param jQuery context
* @param Boolean isInProductView
* @param Object gallery
*/
processUpdateBaseImage: function (images, context, isInProductView, gallery)
var justAnImage = images[0],
initialImages = this.options.mediaGalleryInitial,
imagesToUpdate,
isInitial;
if (isInProductView)
imagesToUpdate = images.length ? this._setImageType($.extend(true, [], images)) : [];
isInitial = _.isEqual(imagesToUpdate, initialImages);
if (this.options.gallerySwitchStrategy === 'prepend' && !isInitial)
imagesToUpdate = imagesToUpdate.concat(initialImages);
imagesToUpdate = this._setImageIndex(imagesToUpdate);
gallery.updateData(imagesToUpdate);
if (isInitial)
$(this.options.mediaGallerySelector).AddFotoramaVideoEvents();
else
$(this.options.mediaGallerySelector).AddFotoramaVideoEvents(
selectedOption: this.getProduct(),
dataMergeStrategy: this.options.gallerySwitchStrategy
);
gallery.first();
else if (justAnImage && justAnImage.img)
context.find('.product-image-photo').attr('src', justAnImage.img);
;
return function (target)
return target.extend(mixin);
);
New contributor
add a comment |
If you would like to alter the behavior of how the gallery switching happens, I think the function you are looking for is in
vendor/magento/module-swatches/view/frontend/web/js/swatch-renderer.js
called processUpdateBaseImage
This is completely untested, but you can create a mixin and change that function's behavior, something like:
Namespace/Module/view/frontend/requirejs-config.js -
var config =
config:
mixins:
'Magento_Swatches/js/swatch-renderer':
'Namespace_Module/js/swatch-renderer-mixin': true
,
;
Namespace/Module/view/web/js/swatch-renderer-mixin.js -
define(['jquery'], function ($)
'use strict';
var mixin =
/**
* Update [gallery-placeholder] or [product-image-photo]
* @param Array images
* @param jQuery context
* @param Boolean isInProductView
* @param Object gallery
*/
processUpdateBaseImage: function (images, context, isInProductView, gallery)
var justAnImage = images[0],
initialImages = this.options.mediaGalleryInitial,
imagesToUpdate,
isInitial;
if (isInProductView)
imagesToUpdate = images.length ? this._setImageType($.extend(true, [], images)) : [];
isInitial = _.isEqual(imagesToUpdate, initialImages);
if (this.options.gallerySwitchStrategy === 'prepend' && !isInitial)
imagesToUpdate = imagesToUpdate.concat(initialImages);
imagesToUpdate = this._setImageIndex(imagesToUpdate);
gallery.updateData(imagesToUpdate);
if (isInitial)
$(this.options.mediaGallerySelector).AddFotoramaVideoEvents();
else
$(this.options.mediaGallerySelector).AddFotoramaVideoEvents(
selectedOption: this.getProduct(),
dataMergeStrategy: this.options.gallerySwitchStrategy
);
gallery.first();
else if (justAnImage && justAnImage.img)
context.find('.product-image-photo').attr('src', justAnImage.img);
;
return function (target)
return target.extend(mixin);
);
New contributor
add a comment |
If you would like to alter the behavior of how the gallery switching happens, I think the function you are looking for is in
vendor/magento/module-swatches/view/frontend/web/js/swatch-renderer.js
called processUpdateBaseImage
This is completely untested, but you can create a mixin and change that function's behavior, something like:
Namespace/Module/view/frontend/requirejs-config.js -
var config =
config:
mixins:
'Magento_Swatches/js/swatch-renderer':
'Namespace_Module/js/swatch-renderer-mixin': true
,
;
Namespace/Module/view/web/js/swatch-renderer-mixin.js -
define(['jquery'], function ($)
'use strict';
var mixin =
/**
* Update [gallery-placeholder] or [product-image-photo]
* @param Array images
* @param jQuery context
* @param Boolean isInProductView
* @param Object gallery
*/
processUpdateBaseImage: function (images, context, isInProductView, gallery)
var justAnImage = images[0],
initialImages = this.options.mediaGalleryInitial,
imagesToUpdate,
isInitial;
if (isInProductView)
imagesToUpdate = images.length ? this._setImageType($.extend(true, [], images)) : [];
isInitial = _.isEqual(imagesToUpdate, initialImages);
if (this.options.gallerySwitchStrategy === 'prepend' && !isInitial)
imagesToUpdate = imagesToUpdate.concat(initialImages);
imagesToUpdate = this._setImageIndex(imagesToUpdate);
gallery.updateData(imagesToUpdate);
if (isInitial)
$(this.options.mediaGallerySelector).AddFotoramaVideoEvents();
else
$(this.options.mediaGallerySelector).AddFotoramaVideoEvents(
selectedOption: this.getProduct(),
dataMergeStrategy: this.options.gallerySwitchStrategy
);
gallery.first();
else if (justAnImage && justAnImage.img)
context.find('.product-image-photo').attr('src', justAnImage.img);
;
return function (target)
return target.extend(mixin);
);
New contributor
If you would like to alter the behavior of how the gallery switching happens, I think the function you are looking for is in
vendor/magento/module-swatches/view/frontend/web/js/swatch-renderer.js
called processUpdateBaseImage
This is completely untested, but you can create a mixin and change that function's behavior, something like:
Namespace/Module/view/frontend/requirejs-config.js -
var config =
config:
mixins:
'Magento_Swatches/js/swatch-renderer':
'Namespace_Module/js/swatch-renderer-mixin': true
,
;
Namespace/Module/view/web/js/swatch-renderer-mixin.js -
define(['jquery'], function ($)
'use strict';
var mixin =
/**
* Update [gallery-placeholder] or [product-image-photo]
* @param Array images
* @param jQuery context
* @param Boolean isInProductView
* @param Object gallery
*/
processUpdateBaseImage: function (images, context, isInProductView, gallery)
var justAnImage = images[0],
initialImages = this.options.mediaGalleryInitial,
imagesToUpdate,
isInitial;
if (isInProductView)
imagesToUpdate = images.length ? this._setImageType($.extend(true, [], images)) : [];
isInitial = _.isEqual(imagesToUpdate, initialImages);
if (this.options.gallerySwitchStrategy === 'prepend' && !isInitial)
imagesToUpdate = imagesToUpdate.concat(initialImages);
imagesToUpdate = this._setImageIndex(imagesToUpdate);
gallery.updateData(imagesToUpdate);
if (isInitial)
$(this.options.mediaGallerySelector).AddFotoramaVideoEvents();
else
$(this.options.mediaGallerySelector).AddFotoramaVideoEvents(
selectedOption: this.getProduct(),
dataMergeStrategy: this.options.gallerySwitchStrategy
);
gallery.first();
else if (justAnImage && justAnImage.img)
context.find('.product-image-photo').attr('src', justAnImage.img);
;
return function (target)
return target.extend(mixin);
);
New contributor
edited Apr 22 at 18:08
Pawan
2,2912721
2,2912721
New contributor
answered Apr 22 at 17:49
asdfasdfasfasdfasdfasf
1
1
New contributor
New contributor
add a comment |
add a comment |
Thanks for contributing an answer to Magento Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f222804%2fstop-simple-product-images-overriding-main-product-gallery-after-clicking-swatch%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown