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;








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.










share|improve this question






























    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.










    share|improve this question


























      0












      0








      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.










      share|improve this question
















      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






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Apr 18 '18 at 10:16









      Mukesh Prajapati

      1,251416




      1,251416










      asked Apr 18 '18 at 10:00









      SilkSpinSilkSpin

      407




      407




















          2 Answers
          2






          active

          oldest

          votes


















          0














          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>





          share|improve this answer























          • 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



















          0














          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);

          );





          share|improve this answer










          New contributor




          asdfasdfasf is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.




















            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
            );



            );













            draft saved

            draft discarded


















            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









            0














            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>





            share|improve this answer























            • 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
















            0














            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>





            share|improve this answer























            • 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














            0












            0








            0







            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>





            share|improve this answer













            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>






            share|improve this answer












            share|improve this answer



            share|improve this answer










            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


















            • 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














            0














            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);

            );





            share|improve this answer










            New contributor




            asdfasdfasf is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
            Check out our Code of Conduct.
























              0














              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);

              );





              share|improve this answer










              New contributor




              asdfasdfasf is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
              Check out our Code of Conduct.






















                0












                0








                0







                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);

                );





                share|improve this answer










                New contributor




                asdfasdfasf is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.










                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);

                );






                share|improve this answer










                New contributor




                asdfasdfasf is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.









                share|improve this answer



                share|improve this answer








                edited Apr 22 at 18:08









                Pawan

                2,2912721




                2,2912721






                New contributor




                asdfasdfasf is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.









                answered Apr 22 at 17:49









                asdfasdfasfasdfasdfasf

                1




                1




                New contributor




                asdfasdfasf is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.





                New contributor





                asdfasdfasf is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.






                asdfasdfasf is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.



























                    draft saved

                    draft discarded
















































                    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.




                    draft saved


                    draft discarded














                    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





















































                    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







                    Popular posts from this blog

                    Does high air pressure throw off wheel balance? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Should we be closing questions more regularly?How much should I inflate my tire?Which tire pressure is right for my 2008 Toyota Yaris's front tires?Should I let air out of my tires?Tire Pressure Adjustments When NeededRadial tires: Do they bulge at too high pressure?Cold weather tire pressure adjustmentHow does tire pressure vary with altitude?Why does a tire have the same air pressure when mounted on the car and when not?What does tire size have to do with the capabilities of an air compressor?Tire pressure with tires on vs off the car

                    Magento2 - How to hide price filter only in specific categories?Multiselect price filter attribute in layered navigationhide only some categories from layered navigation in magentoRemove Price Filter on certain categoriescustomize layered price filter?Hide Price for a particular customer groupPrice filter in layered navigation not working correctly with price including tax in magento 2.2.3Magento 2 how to hide attribute at Layered navigation?Magento 2. how to hide price only for specific categoriesMagento 2 How can I hide the price and total from cart and checkout summary?Magento2: Can we add navigation layered filter like price filter for other attribute?

                    Inventory management after order created via rest API in Magento 2.x version ( without cart)Magento - Create order using REST APILocalization for Cart/Quote APIs doesn't work properly in magento 2Magento 1.9 - Create order using REST APIPLacing Order Magento 2.1 REST APIREST API accessible without authorizationMagento 2.2 Inventory not getting decreased when orders are created using REST APIWhat is the usage of itemId inside Update inventory REST API?Get category meta tags via REST APIGet cart info REST APIAdding a grouped product to cart via the rest api