Jump to content

Recommended Posts

Bonjour à tous

 

Je dois procéder à un grand nombre de redirections 301 mais je me pose une question qui semblera naive à bon nombre d'entre vous mais que je préfère poser afin de ne pas me louper.

 

Ces redirections 301 concernent des produits épuisés de ma boutique que je ne pourrais donc réapprovisionner.

 

Ma question est la suivante :

 

Est-ce-que je dois d'abord supprimer ou désactiver le produit AVANT d'opérer la redirection via le module ou cela n'a-t-il aucune importance ?

 

En d'autre termes effectuer la redirection puis après suppression/désactivation du produit  ou alors supression/désactivation du produit puis après redirection ?

 

Je vous remercie par avance des éléments de réponse que vous m'apporterez

 

Bonne journée

Share this post


Link to post
Share on other sites

Si tu penses implementer tes 301 dans le .htaccess alors peu importe, tu peux même laisser le produit actif

 

Si tu veux faire ça avec prestashop (et ça semble être le cas avec ton explicaion) alors tu ne peux pas supprimer le produit sinon tu ne pourra pas régler de redirection puisque le produit n'existe plus, donc seulement désactiver

  • Like 1

Share this post


Link to post
Share on other sites

Pas mieux que doekia : si tu veux utiliser la fonctionnalité native de PS et rediriger le produit vers un autre grâce au choix possible quand tu désactives le produit, il ne faut pas le supprimer !

Si tu fais des 301 direct dans le .htaccess, là oui tu peux virer les produits

Share this post


Link to post
Share on other sites

Bonjour Doekia et Johann

 

Je vous remercie pour vos réponses.En effet, si je supprime le produit, la redirection ne pourra être possible.Il faut donc que je les désactive

 

Je souhaite me servir d'un module à installer en back office car je ne désire pas alourdir mon .htaccess.

 

De plus je suis en 1.4.5.1, et je n'ai pas la fonctionnalité native de PS qui me permets de faire une redirection lors de la désactivation d'un produit, si j'ai bien compris les propos de Johan

 

Mais je désactive le produit avant de faire la redirection ou la redirection doit être faite avant la désactivation ?

 

Dernière chose, plutôt que de rediriger vers un autre produit, je souhaiterai faire la redirection 301 vers la catégorie par défaut du produit, cela ne créera pas de souci ?

 

Merci encore pour votre aide

Share this post


Link to post
Share on other sites

Tu te contredit ... si tu fais un ajustement avec un module ou patch sur produit , le réglage de la 301 n'intervient pas tant que le produit est actif, tu désactives ça active ton code/redirection.

 

J'opterais pour un patch vite fait compte tenu de ta version + besoin 3/4 lignes de codes au plus

Share this post


Link to post
Share on other sites

Sinon, j'ai un module qui redirige automatiquement les produits désactivés vers leur catégorie parente, mais je ne suis pas sûr qu'il marche en PS 1.4 (je testerai ce soir)

Share this post


Link to post
Share on other sites

Doekia, je ne comprends pas bien en quoi je me contredis, peux-tu m'expliquer stp ?

 

Sinon, d'après ce que tu dis, le redirection ne fonctionnera pas si le produit est encore activé ?

 

Il faut donc, si je comprends bien, que je crée la redirection 301 et qu'après je désactive le produit.

 

Concernant les quelques lignes de code, je ne suis malheureusement pas en mesure de les rédiger n'ayant aucune connaissance en la matière.

 

Johan, n'hésites à me dire si ton module fonctionnerait en 1.4.5.1 et je te remercie pour ton test

Share this post


Link to post
Share on other sites

Je sais plus ce que tu dis.
 
1/ Tu veux rediriger les produits inactifs sur la catégorie parent.
2/ Il me parait dès lors évident que les produits actifs du veux les vendre donc pas de redirection
3/ Tu écris 3 ligne de code si inactif redirect getCategoryLink($product->id_category_default);
4/ Dans ce scénario il n'y a pas de un truc avant l'autre
5/ Même si tu prends un module qui fasse ces 3 lignes de code le fonctionnement est pareil non
 
Ou c'est moi qui comprends tout de traviolle?

if(!$product->active)
   die(Tools::redirect($link->getCategoryLink($product->id_category_default)));

 
En fait 3 ligne c'est même de trop :D

Share this post


Link to post
Share on other sites

Non, je pense que c'est plutôt moi de mon côté avec mon inexpérience qui ne m'exprime pas clairement et qui me pose de fausses questions :

 

1- les produits actifs, je veux bien entendu les vendre et donc ils restent actifs en boutique

 

2- j'ai des produits que je souhaite désactivé car pas de réapprovisionnement possible et donc ils encombrent ma boutique et avoir que des produits en rupture de stock, question commercial, c'est pas le top !

 

3- je pensais donc faire une redirection 301 de ces produits en rupture de stock définitive vers la catégorie parente histoire de ne pas perdre de jus question réferencement naturel 

 

4 - peut-être, en effet que ton code me permets de faire ceci sans passer par un module de redirection mais comme je te l'ai expliqué, je n'ai aucune connaissance en codage php ou autre.

 

5- ton code que j'essaie de comprendre (c'est pas gagné !):

 

if(!$product->active)
die(Tools::redirect($link->getCategoryLink($product->id_category_default)));

 

je me trompe surement mais il ne faut pas écrire plutôt : if(!$product-> inactive)

 

Et ce code que je te remercie de m'avoir communiqué, je le place ou ? dans quel fichier ? 

 

Peut-être dans le fichier mon site\thèmes\prestashop\product.tpl ?

 

Merci en tout cas de ton aide et je la sollicite une dernière fois pour savoir ou placé ce code

 

Bonne soirée à tous

Share this post


Link to post
Share on other sites

Non rien à voir avec le tpl ... ici on parle d'un patch direct dans le coeur :blink:

Puisque tu es en version dinosaure ;)

 

controllers/ProductController.php

if (Validate::isLoadedObject($this->product) && strtoupper($_SERVER['REQUEST_METHOD']) == 'GET')
{
   if (!$product->active)
      Tools::redirectLink(self::$link->getCategoryLink($product->id_category_default));

   $canonicalURL = self::$link->getProductLink($this->product);       

Ton ajout est ici les lignes 61, 62 et 63 zut 3 lignes pour faire aéré :rolleyes:

Edited by doekia (see edit history)

Share this post


Link to post
Share on other sites

Oui et alors ?
Il va migrer dans la branche 1.4 ?
Un override écrit 1.4, en 1.5+ ne sera même pas fonctionel car override/controllers/ProductController.php n'est pas la même chose que override/controllers/front/ProductController.php.
Et en 1.5+, compte tenu des différences fondamentales du controller tel quel ça ne marchera pas et provoquera des conflits.
Je ne parle même pas des 1.6 avec la fonction partiellement implémenté
 
 

J'opterais pour un patch vite fait compte tenu de ta version + besoin 3/4 lignes de codes au plus

Share this post


Link to post
Share on other sites

 

Johan, n'hésites à me dire si ton module fonctionnerait en 1.4.5.1 et je te remercie pour ton test

 

Le module ne fonctionne pas sur PS 1.4... faudrait que je fasse quelques adaptations

Share this post


Link to post
Share on other sites

Alors ça :

De plus je suis en 1.4.5.1, ...

 

Heu oui c'est bien exactement ce que je dis, il est en version dinosaure, je l'ai parfaitement vu sinon je ne vois pas comment j'aurais mis le snippet de code avec l'exact numéro de ligne exactement comme il doit le patcher

 

Comme il ne migrera pas dans la branche 1.4 donc aucune raison de se complexifier avec une override.

Quand il migrera et bien ce sera à voir en fonction de la version - peut-etre d'ici là prestashop aura cesser d'être niais et proposera la 301 vers la catégorie parente.

Cette dernière modif  (301 vers parent en 1.6.1.4) que j'installe chez mes clients également sans override pour exactement les même raisons.

Share this post


Link to post
Share on other sites

Bonjour Doekia et Johann, et tous les autres !

 

Doekia et Johann, je vous remercie pour votre aide et vos efforts pour me guider.

 

Je vais testé cela cet après-midi, faute de temps ce matin et reviens vers vous.

 

Pour que les choses soient claires, j'aimerai comprendre la signification de ce patch :

 

1- j'installe le patch dans le fichier indiqué

 

2 - après je désactive mes produits en rupture de stock définitive

 

3 - si un client clique sur ces produit, dans la recherche google ou un lien présent sur un forum ou autre, une redirection 301 s'opérera et il sera automatiquement redirigé vers la catégorie par défaut que j'ai indiqué en créant la fiche produit

 

4 - cela évitera les erreurs 404, google ne me pénalisera pas et je ne perdrai pas le jus en terme de référencement naturel lié à ces produits désactivés

 

Sinon, je n'ai pas bien compris votre discussion concernant le patch et ma version de PS.Je suis bien en 1.4.5.1 (en mode dinosaure il est vrai, Doekia !!)

 

Peut-etre aurais-je la réponse en testant le patch 

 

Merci à vous et bonne journée à tous

Share this post


Link to post
Share on other sites

Désolé, je n'ai pas pris connaissance de vos posts de ce matin

 

Johann, tant pis pour le module, je vais utiliser le patch de Doekia

 

Sinon Doekia, je note bien que le patch ne fonctionnera si je passe, par exemple en 1.4.11 qui est la dernière maj de la 1.4, si je me rappelle bien

 

Je teste tout cela cet après midi

Share this post


Link to post
Share on other sites

Miracle si tu migrais en 1.4.11.0 le code tu le remets exactement au même endroit, même numéro de ligne tout pareil :D - je viens de vérif rien n'a changé entre ces 2 versions dans cette partie

Share this post


Link to post
Share on other sites

Doekia, je viens de tester le patch, installé dans controllers/ProductController.php à l'emplacement exact que tu m'as indiqué 

 

 

  1. if (!$product->active)
  2. Tools::redirectLink($link->getCategoryLink($product->id_category_default));

 

 

 

et j'ai cette erreur (page blanche) lorsque je clique sur un article, les pages CMS quant à elles, ne semblent pas être impactées :

 

Fatal error: Call to a member function getCategoryLink() on a non-object in /home/monsite/www/controllers/ProductController.php on line 62

 

Même erreur en insérant le premier patch que tu m'avais donné, qui est différent du premier, à savoir :

 

if(!$product->active)

die(Tools::redirect($link->getCategoryLink($product->id_category_default)));

Edited by base888 (see edit history)

Share this post


Link to post
Share on other sites

Zut mea culpa j'ai oublié un self::

    if (Validate::isLoadedObject($this->product) && strtoupper($_SERVER['REQUEST_METHOD']) == 'GET')
    {
       if (!$product->active)
          Tools::redirectLink(self::$link->getCategoryLink($product->id_category_default));
     
       $canonicalURL = self::$link->getProductLink($this->product);
Edited by doekia (see edit history)

Share this post


Link to post
Share on other sites

Bonjour Doekia

 

Merci pour ton suivi, je teste cela et revient vers toite confirmer le bon fonctionnement

 

Bonne journée

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More