Redirection url sous PrestaShop

Intégration, PrestaShop

Certaines boutiques sous PrestaShop contiennent seulement un ou peu de produits et il n’est donc pas nécessaire d’afficher une page d’accueil. Comment faire cela ?

Rediriger la page d’accueil vers une page catégorie

C’est simple, rapide et efficace, voici un très court tuto pour créer une redirection de la page d’accueil de votre PrestaShop vers une page catégorie :

  1. créer le fichier www/override/controllers/front/IndexController.php
  2. écrire dans ce fichier en remplaçant id_category=3 avec l’id de la catégorie ciblée :

class IndexControllerCore extends FrontController {
public function initContent()
{
Tools::redirect('index.php?id_category=3&controller=category');
}
}

[Edit du 29/05/2018] : dans le but d’éviter 2 redirections 301, il est possible de coller directement l’url de la catégorie qui a l’id 3 – qui est dans mon cas “https://www.monsite.fr/3-vetements”. On a ainsi le code suivant :
class IndexControllerCore extends FrontController {
public function initContent()
{
Tools::redirect('https://www.monsite.fr/3-vetements');
}
}
  1. sauvegarder
  2. supprimer le fichier www/cache/class_index.php

Avec cet override pour PrestaShop, vos clients arriveront directement sur la page catégorie.
 

Module PrestaShop de redirection d’url

[edit du 13/07/2018] Mon ami Olivier Clémence a développé un module de redirection pour PrestaShop qui permet de gérer vos redirections au sein de votre boutique via le back office de PrestaShop directement.
Ce module PrestaShop va vous permettre de créer et gérer simplement vos redirections pour éviter les erreurs 404.
 

6 commentaires sur “Redirection url sous PrestaShop

  1. Bonjour
    je suis sous presta 1.7.6.8 et je voudrais mettre en page d’accueil la page de connexion: le client doit être logué pour avoir accès à la boutique. La solution la plus simple pour moi était de rediriger automatiquement la page d’accueil vers la page de connexion. Mais votre code ne marche pas, c’est toujours la page d’accueil qui apparaît. Pour l’instant, je travail en local.

    Voici mon code :

    <?php

    class IndexControllerCore extends FrontController {
    public function initContent()
    {
    Tools::redirect('index.php?controller=authentication?back=my-account');

    }

    }

    Pourriez-vous me dire ce que je fais d'incorrect svp ?

  2. Bonjour Arnaud,
    Il vaudrait mieux faire un lien directement vers l’url réécrite obtenue grâce à : Link::getCategoryLink($category).
    Sinon il va avoir deux redirections 301 avec le code que tu indiques.
    Au plaisir,
    Yann

    1. Bonjour Smart Plugs,
      Merci pour le commentaire et en effet le code était perfectible, j’ai mis à jour l’article 😉

  3. Bonjour
    J’ai disposé d’un prestadhop 1.7.3 et j’aimerai que m’expliquer comment remplacer /index.php sur mon url par le nom de l’article ou catégorie sur lequel j’ai affiché.
    Merci

    1. Bonjour Niang,
      Il faut activer les urls réécrites via les paramètres > seo & urls.
      En revanche, il se peut dans certains cas que vous ayez à configurer votre serveur aussi.
      A bientôt 🙂

Laisser un avis

Consultez les autres articles