Comment conserver la sélection des color swatches sur Magento 2., A Unix Mind In A Windows World
Astuces

Comment conserver la sélection des color swatches sur Magento 2.

Bon.Je viens de me souvenir que j’ai un blog et que ce dernier a besoin d’être alimenté. Mon dernier article remonte à belle lurette : toutes les aventures technologiques que j’ai eu la chance d’avoir depuis lors me fourniront assez de contenu pour alimenter ce blog, du moins jusqu’à la fin de l’année (Par exemple, j’expliquerais, dans les jours à venir, comment après être passé par la case Huawei P30 Lite, puis P30 Pro, je suis revenu mes premiers amours en matière de SmartPhone – la gamme camon de Tecno, pour avoir la paix de l’esprit, de bonnes photos, éviter le cauchemar des accessoires pour le P30 pro mais surtout avoir la garantie d’un service après vente.).

Mais aujourd’hui, parlons plutôt d’un sujet qui, j’en suis sûr, donne beaucoup de cheveux blancs à bon nombre de développeurs des bords de la lagune Ebrié : Les produits configurables de Magento 2 , et plus précisement l’incapacité des « color swatches » à conserver le choix des utilisateurs .
En termes plus clairs, lorsqu’un produit est proposé dans plusieurs variantes de couleurs , Magento 2 permet de visualiser ces couleurs en cliquant sur des pastilles de couleur , aussi bien sur la page des catégories que sur la fiche produit.

Comment conserver la sélection des color swatches sur Magento 2., A Unix Mind In A Windows World

Toutefois, il est incapable, out of the box, de conserver le choix de l’utilisateur lorsque ce dernier passe de la page des catégories à la fiche produit : en d’autres termes, si votre madame va sur le site présente plus haut et choisit un top noir, lorsqu’elle affichera la fiche produit de ce top, elle devra à nouveau sélectionner la pastille noire pour retrouver son choix.
Soit dit en passant, c’est un jeu d’enfant pour des CMS moins prestigieux, tels WordPress/WooCommerce.
Tout comme mon expérience avec Huawei, Magento 2 s’est averé être une grosse déception ( contrairement à Magento 1.9) .


Une solution est d’acheter un module dédié à la gestion des catégories de couleur . Néanmoins, il faut garder à l’esprit que rien ne garantit que ce dernier soit compatible out of the box avec le thème que vous utilisez, et il faut prévoir du développement supplémentaire.

L’autre solution est d’utiliser des cookies javascript et un peu de jQuery.

Dans un premier temps, ajoutez la librairie jscookie – https://github.com/js-cookie/js-cookie – dans le dossier app/design/frontend/Vendor/template/web/js de votre template

et éditez le fichier require-config.js de votre template comme ceci

var config = {
  paths: {
    cookie: 'js/cookie'
  },
  shim: {
    cookie: {
      deps: ['jquery']
    }
  }
};

Regenerez les fichiers statiques de votre template si cela est nécessaire .

Ensuite, créez un cookie qui enregistrera le choix de l’utilisateur, dans le fichier phtml des catégories (généralement dans le dossier app/design/Vendor/template/Magento_Catalog/templates/product/list.phtml)

<script type="text/javascript">
require(['jquery', 'cookie'], function($) {
    $(document).ready(function() {
   
        if ($("body").hasClass("page-products")) {
            //si l'user click sur la photo, creer un cookie
            $('.product-item-info').each(function() {
                $(this).click(function() {
                    var moupe = $(this).find('.swatch-option.color.selected');
                    var tangoyi = moupe.attr("id");
                    //console.log(tangoyi);
                    var choixdelutilisateur = $.cookie('choixdelutilisateur', tangoyi);
                    //console.log(choixdelutilisateur);
                });
            });
        }
    });
});
</script>

Enfin, chargez ce cookie sur la fiche produit – app/design/frontend/Vendor/template/Magento_Catalog/templates/product/view/detail_layout.phtml – , et faites un trigger click lorsque les color swatches sont chargées.

  <script type="text/javascript">
require([
    'jquery','cookie'
], function(jQuery) {
    (function($) {
        $(document).ready(function() {
$(document).on('swatch.initialized', function() {
              var choix = $.cookie('choixdelutilisateur');
                console.log(choix);
            var choixId = '#'+choix;
                console.log(choixId);
            $("#"+choix).trigger('click');

        });
    })(jQuery);
});
</script>

Bonne chance .

Jean Luc Houedanou

Jean-Luc Houédanou
Jean-Luc Houédanou est un blogueur spécialisé dans l'innovation et la transformation numérique, avec une expérience en développement web front-end. Après avoir obtenu un Master en gestion du commerce électronique de l'Université de Sherbrooke, il a travaillé sur des projets d'envergure mondiale pour diverses entreprises, startups et organisations internationales. Il est également impliqué dans des projets communautaires et technologiques en Afrique. Il aide, par le biais de ce blog, les lecteurs à s'adapter aux évolutions rapides de la technologie et des tendances du marché. En plus de ses articles sur l'innovation et la transformation numérique, Jean-Luc Houédanou écrit également des colonnes d'opinion et donne des conseils sur le bien-être mental. Son objectif est d'aider les lecteurs à se développer personnellement et professionnellement, en leur fournissant des conseils pratiques pour gérer le stress et améliorer leur qualité de vie.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *