Jump to content

[PS 1.7.5.1] [1.7.6.6] Masquer fournisseurs et page Fournisseur


Recommended Posts

Hello,

J'aimerais que la liste de mes fournisseurs ne soit pas rendue publique.

J'ai donc désactivé le module Liste des Fournisseurs, l'ai dégréffé de tous les hooks possibles, j'ai désactivé chacun de mes fournisseurs créés dans la rubrique Catalogue-Marques et Fournisseurs et ainsi mes clients n'ont plus accès à ces informations, dont je ne me sert qu'en BO, pour faciliter mes commandes et la gestion de mes produits.

Par contre, sur la page Plan de site (Sitemap) apparaît dans la rubrique Nos Offres un lien vers mes Fournisseurs. Ce lien renvoie vers une page www.mondomaine.fr/fr/fournisseur

Si cette page est bien vide, j'aimerais simplement qu'elle n'existe pas et faire disparaître le lien de ma page Sitemap. Ce n'est pas super grave, mais comme ce lien renvoie vers une page vide, cela ne sert à rien de l'afficher.

J'ai fouiné un peu partout, et beaucoup sur ce forum, mais je ne trouve pas où faire cela.

Il doit y avoir un truc simple, mais lequel ? :)

Merci,

Antoine

Edited by couillaler
Ai Enlevé temporairement le résolu (see edit history)
Link to comment
Share on other sites

Merci @Janett j'avais déjà vu cette option, mais hélas, elle masque aussi les marques sur la page Nos Offres du sitemap! Je craignais d'ailleurs cette réponse, car elle sous-entend que ce n'est pas possible de masquer l'un sans masquer l'autre... :(

Dommage que cette option ne soit pas scindée en deux d'ailleurs, un fournisseur et une marque n'étant pas forcément la même chose. On peut vouloir acheter un objet d'une marque, et donc il est pratique de pouvoir naviguer par marques, sans avoir à savoir de quel fournisseur (distributeur) il provient.

Y a-t-il une bidouille que l'on peut faire quelque part pour arriver à résoudre mon dilemme  ?

Merci en tout cas,

Antoine

Link to comment
Share on other sites

sitemap.tpl commentez ce bloc

    			{if $display_manufacturer_link OR $PS_DISPLAY_SUPPLIERS}
                    <li>
                        <a 
                        href="{$link->getPageLink('manufacturer')|escape:'html':'UTF-8'}" 
                        title="{l s='View a list of manufacturers'}">
                            {l s='Manufacturers'}
                        </a>
                    </li>
                {/if}

et vérifiez qu'elle n'est pas dans votre sitemap.txt généré par le module gsitemap^^

Link to comment
Share on other sites

Merci @Eolia , voici une bien belle piste.

Par contre, dans le sitemap.tpl présent dans le dossier monthème/templates/cms je ne trouve rien de tel. J'ai regardé dans d'autres fichiers du même nom, mais n'ai rien vu de différent.

{block name='page_title'}
  <h1 class="products-section-title text-center mb-4">{l s='Sitemap' d='Shop.Theme.Global'}</h1>
{/block}

{block name='page_content_container'}
  <div id="sitemap-tree" class="row sitemap">
    <div class="col-12">
      <h1 class="custom-toggle collapsed" data-toggle="collapse" data-target="#col_offers" aria-expanded="false">{$our_offers}</h1>
      <div class="collapse" id="col_offers">{include file='cms/_partials/sitemap-nested-list.tpl' links=$links.offers}</div>
    </div>
    <div class="col-12">
      <h1 class="custom-toggle collapsed" data-toggle="collapse" data-target="#col_categories" aria-expanded="false">{$categories}</h1>
      <div class="collapse" id="col_categories">{include file='cms/_partials/sitemap-nested-list.tpl' links=$links.categories}</div>
    </div>
    <div class="col-12">
      <h1 class="custom-toggle collapsed" data-toggle="collapse" data-target="#col_user_account" aria-expanded="false">{$your_account}</h1>
      <div class="collapse" id="col_user_account">{include file='cms/_partials/sitemap-nested-list.tpl' links=$links.user_account}</div>
    </div>
    <div class="col-12">
      <h1 class="custom-toggle collapsed" data-toggle="collapse" data-target="#col_pages" aria-expanded="false">{$pages}</h1>
      <div class="collapse" id="col_pages">{include file='cms/_partials/sitemap-nested-list.tpl' links=$links.pages}</div>
    </div>
  </div>
{/block}

J'ai cherché par contre avec des bribes des extraits que tu as mis, et j'ai trouvé ceci dans le fichier SitemapController.php du dossier /controllers/front

 if (Configuration::get('PS_DISPLAY_SUPPLIERS')) {
            $manufacturers = Manufacturer::getLiteManufacturersList($this->context->language->id, 'sitemap');
            $links[] = array(
                'id' => 'manufacturer-page',
                'label' => $this->trans('Brands', array(), 'Shop.Theme.Catalog'),
                'url' => $this->context->link->getPageLink('manufacturer'),
                'children' => $manufacturers,
            );

            $suppliers = Supplier::getLiteSuppliersList($this->context->language->id, 'sitemap');
            $links[] = array(
                'id' => 'supplier-page',
                'label' => $this->trans('Suppliers', array(), 'Shop.Theme.Catalog'),
                'url' => $this->context->link->getPageLink('supplier'),
                'children' => $suppliers,
            );
        }

Ça y ressemble, mais ce n'est pas exactement cela, et surtout, ce n'est pas le même fichier que celui dont tu parles ! :)

Je n'ai touché à rien pour l'instant.

Antoine.

PS Et j'ai décoché la case Fournisseurs [supplier] de l'extension Google Sitemap, qui dégage un fichier XML, pas TXT. Parlons-nous de la même chose ?

Link to comment
Share on other sites

En 1.7 il vous suffit de commenter cette partie dans le sitemap.php

Citation

            /*$manufacturers = Manufacturer::getLiteManufacturersList($this->context->language->id, 'sitemap');
            $links[] = array(
                'id' => 'manufacturer-page',
                'label' => $this->trans('Brands', array(), 'Shop.Theme.Catalog'),
                'url' => $this->context->link->getPageLink('manufacturer'),
                'children' => $manufacturers,
            );*/

 

 

  • Thanks 1
Link to comment
Share on other sites

Hello,

Super @Eolia, merci !

J'ai appliqué le commentaire sur le fichier SitemapController.php du dossier /controllers/front, sur le paragraphe concernant les fournisseurs, et pas les fabricants, mais c'est pareil, ça fonctionne très bien ! Le lien Fournisseurs a disparu de la page Plan du Site (Sitemap).

/*$suppliers = Supplier::getLiteSuppliersList($this->context->language->id, 'sitemap');
            $links[] = array(
                'id' => 'supplier-page',
                'label' => $this->trans('Suppliers', array(), 'Shop.Theme.Catalog'),
                'url' => $this->context->link->getPageLink('supplier'),
                'children' => $suppliers,
            );*/

La page mondomaine.fr/fr/fournisseur existe toujours, elle est vide, mais, comme j'ai décoché le champs fournisseurs [supplier] du module gsitemap, j'imagine que ce moteur de recherche là, au moins, ne la référence pas.

Ça ira donc bien comme ça ! ^_^

Merci encore.

Antoine

Link to comment
Share on other sites

  • couillaler changed the title to [RESOLU] [PS 1.7.5.1] Masquer fournisseurs et page Fournisseur
  • 1 year later...

Hello,

Ayant installé un nouveau PS 1.7.6.6, avec un nouveau thème, ma page fournisseur était, forcément, revenue dans mon Plan du site (Sitemap).

J'ai appliqué la technique ci-dessus en modifiant le fichier SitemapController.php, et les fournisseurs ont disparu du sitemap, super, cela fonctionne donc aussi sur PS 1.7.6.6! :)

Par contre, la page mondomaine.fr/fournisseurs, elle, apparaît, et elle n'est pas vide ! :(

J'ai cherché sur le forum comment supprimer l'affichage de cette page, ou l'afficher vide, ou la supprimer tout court, peu importe, mais je ne trouve rien, ni sur les moteurs de recherche sur internet.

J'imagine que je ne suis pas le seul à vouloir masquer mes fournisseurs, pourriez-vous me dire comment faire pour cela ? (je précise que j'ai besoin qu'ils restent actifs dans mon BO quand même! ^_^

Si besoin, je peux ouvrir un nouveau sujet plutôt que d'exhumer ce vieux message, mais je trouvais que cela avait du sens de poser la question ici, c'est un peu la suite logique de ma demande initiale.

Merci si vous avez une astuce !!!

Antoine

 

Link to comment
Share on other sites

Hello,

Merci @daddybelgium en effet, c'est une solution assez radicale et efficace, alliée à celle au-dessus qui fait sortir les fournisseurs du sitemap, ça le fait bien.

Mais cela ne suffit pas, je veux dire, la page des produits par fournisseurs reste accessible avec un lien direct du type mondomaine.fr/fournisseurs/[id]-[nom-fournisseur]

Alors c'est vrai que si un client aura du mal à trouver cette page directement en tapant l'adresse, ce n'est pas le cas des robots indexeurs des moteurs de recherche. J'ai vu par exemple que certaines pages de ce type recevaient des visites car les personnes tapaient comme mot-clef le nom du fournisseur (sûrement des personnes cherchant des infos sur ce dernier) dans le moteur de recherche, qui du coup affichait ma page à moi, entre autre, comme réponse : mondomaine.fr/fournisseurs/[id]-[nom-fournisseur] (en gras, le mot-clef saisi par les personnes dans le moteur de recherche).

C'est défini dans PS par la fameuse "route vers les fournisseurs" : supplier/{id}-{rewrite}

J'aimerais masquer ces pages-là aussi. Je n'ai pas forcément envie que la concurrence, ou simplement mes clients puissent voir où j'achète certaines produits.

Je trouve important la fonction de masquer les fournisseurs aux clients ! Si dans certains cas, ce peut être utile de les afficher, dans la majorité, je pense, nous n'avons pas forcément envie que tout le monde voit chez qui on achète les produits que l'on vend. Avis aux développeurs de Prestashop.... Une petite case à cocher du type "Invisible en Front Office" pour chacun d'eux serait un plus certain !

Le problème reste donc encore non-résolu et je reste à l'écoute de toute bonne solution !

Merci.

Antoine

@HeineFR  je ne suis pas certain de comprendre ton conseil, où appliquer cette modification ? Tu ne parles pas de l'option "Rediriger vers l'URL canonique" je pense...

Link to comment
Share on other sites

Ah oui! C'est pas bête, bloquer le truc avec le htaccess... simple mais efficace sûrement...

Par contre, c'est du du mandarin pour moi le contenu de ce fichier... tu pourrais indiquer ici la commande textuelle exacte à insérer dans ce fichier ? J'ai trouvé des ressources sur internet à ce sujet, mais je crains de faire plus de mal que de bien, comme on dit...

Link to comment
Share on other sites

On 7/26/2020 at 1:40 PM, couillaler said:

Ah oui! C'est pas bête, bloquer le truc avec le htaccess... simple mais efficace sûrement...

Par contre, c'est du du mandarin pour moi le contenu de ce fichier... tu pourrais indiquer ici la commande textuelle exacte à insérer dans ce fichier ? J'ai trouvé des ressources sur internet à ce sujet, mais je crains de faire plus de mal que de bien, comme on dit...

A la fin du fuchier .htaccess à la racine de ton shop tu rajoutes ces 2 lignes  :

RedirectMatch 301 ^/fournisseur https://www.tonurl.com
RedirectMatch 301 ^/supplier(.*) https://www.tonurl.com

Il faut tout de même éviter d'avoir des liens toujours présent car tu vas créer un lien vers une URL qui est redirigée sur la page d’accueil, ce qui est quand même à éviter.

Edited by HeineFR
Correction Redirectmatch (see edit history)
Link to comment
Share on other sites

Bonjour,

@HeineFR merci beaucoup, c'est très clair indiqué comme cela... En effet, c'est vrai que renvoyer un lien vers une page qui existe vers une autre, c'est pas terrible en terme de SEO, mais en attendant une solution plus "physique" de masquer les fournisseurs sur le Front Office, je vois pas comment faire. Je vais voir comment adapter cela à mon site multilingue.

@Janett Oui, merci, effectivement, j'avais déjà vu cette option, que tu m'avais déjà signalé auparavant (voir message ci-dessus du 26/06/19), le souci, et je l'avais déjà signalé par le passé, c'est que cette fonction devrait être scindée en deux ! Je ne veux pas masquer les marques, mais juste les fournisseurs ! Je trouve très bien que mes clients puissent choisir leur produit en fonction de la marque, et donc se rendre sur la page des marques.

Mais en effet, c'est exactement la fonction qu'il faut, tu as raison, il faudrait juste deux boutons, un pour les marques, un pour les fournisseurs! Cela répondrait à beaucoup plus de besoins qu'un seul bouton qui fait les deux en bloc !

J'imagine que le lien Gthub vers les fournisseurs renvoie vers une page que l'on pourrait bidouiller pour rendre les fournisseurs invisibles en FO (c'est sûrement là que le bouton de l'option agit ?), mais je n'ai pas assez de connaissance pour me risquer à modifier cela. Le lien Sitemap renvoie effectivement vers la partie que j'avais déjà modifié sur le fichier SitemapController.php sur les conseils d'@Eolia.

Ce qui m'étonne, c'est le peu de demandes à ce sujet, suis-je le seul à ne pas vouloir montrer mes founisseurs à mes clients ? Ou beaucoup de personnes les rendent publics sans le savoir ?

Antoine

Link to comment
Share on other sites

@couillaler Attention, on vient de me faire remarquer que sur notre site l'une de ces redirection est trop large et agit sur le back-office lorsque l'on veut sélectionner et attribuer les fournisseurs.

En effet, la requête ajax https://www.ndd.fr/adminXXXXXXX/index.php/sell/catalog/products/suppliers/refresh-product-supplier-combination-form/533 se fait aussi redirect 😵

Je corrige ça à mon taf demain et je dirait ce qui n'allait pas ;)

Link to comment
Share on other sites

  • 3 months later...

Modification pour gérer indépendamment l'autorisation d'affichage des marques de celui des fournisseurs (autant sur les pages que sur le sitemap).

Après cette modification :
- l'option "Afficher les marques et les fournisseurs" (dans "Paramètres de la boutique / Paramètres généraux") décide de l'affichage ou non des fournisseurs
- dans la table ps_configuration de la base de données, la valeur de la variable PS_DISPLAY_MANUFACTURERS décide de l'affichage ou non des marques (1=oui, 0=non)

J'espère que cela vous sera utile, car si vous êtes comme moi, je trouvais qu'afficher mes fournisseurs n'était pas vraiment une bonne idée, mais je voulais garder l'affichage des marques. Dans mon paramétrage j'ai donc "Afficher les marques et les fournisseurs" à Non pour bloquer les fournisseurs, et PS_DISPLAY_MANUFACTURERS à 1 pour afficher les marques.

 

A/ avec phpmyadmin, aller dans la table ps_configuration et créer une variable PS_DISPLAY_MANUFACTURERS. Si on lui met une valeur 1 les marques seront affichées, 0 sinon.
(vous pouvez prendre modèle sur la variable PS_DISPLAY_SUPPLIERS)

B/  dans le fichier controllers\front\listing\ManufacturerController.php :
  ligne 74 originale : if (Configuration::get('PS_DISPLAY_SUPPLIERS')) {
  remplacée par : if (Configuration::get('PS_DISPLAY_MANUFACTURERS')) {
           
C/ dans le fichier /controllers/front/SitemapController.php
  bloc original (à partir de la ligne 166): 
        if (Configuration::get('PS_DISPLAY_SUPPLIERS')) {
            $manufacturers = Manufacturer::getLiteManufacturersList($this->context->language->id, 'sitemap');
            $links[] = array(
                'id' => 'manufacturer-page',
                'label' => $this->trans('Brands', array(), 'Shop.Theme.Catalog'),
                'url' => $this->context->link->getPageLink('manufacturer'),
                'children' => $manufacturers,
            );

            $suppliers = Supplier::getLiteSuppliersList($this->context->language->id, 'sitemap');
            $links[] = array(
                'id' => 'supplier-page',
                'label' => $this->trans('Suppliers', array(), 'Shop.Theme.Catalog'),
                'url' => $this->context->link->getPageLink('supplier'),
                'children' => $suppliers,
            );
        }
  remplacé par le bloc suivant :
        if (Configuration::get('PS_DISPLAY_MANUFACTURERS')) {
            $manufacturers = Manufacturer::getLiteManufacturersList($this->context->language->id, 'sitemap');
            $links[] = array(
                'id' => 'manufacturer-page',
                'label' => $this->trans('Brands', array(), 'Shop.Theme.Catalog'),
                'url' => $this->context->link->getPageLink('manufacturer'),
                'children' => $manufacturers,
            );
        }
        if (Configuration::get('PS_DISPLAY_SUPPLIERS')) {
            $suppliers = Supplier::getLiteSuppliersList($this->context->language->id, 'sitemap');
            $links[] = array(
                'id' => 'supplier-page',
                'label' => $this->trans('Suppliers', array(), 'Shop.Theme.Catalog'),
                'url' => $this->context->link->getPageLink('supplier'),
                'children' => $suppliers,
            );
        }

Edited by jemm971 (see edit history)
Link to comment
Share on other sites

Et si l'on veut peaufiner, on peut aussi modifier le libellé du bouton "Afficher les marques et fournisseurs" pour qu'il ne soit plus ambigu :

- aller dans le menu International / Traductions, choisir traduction du Back office, langue française.

- Rechercher "Afficher les marques".

- Dans la chaine qui est trouvée, mettre à la place "Afficher les fournisseurs (marques par PS_DISPLAY_MANUFACTURERS dans table ps_configuration)".

Et voilà ! On a un nouveau libellé plus juste, avec un rappel sur comment afficher les marques.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...