base888 Posted March 23, 2016 Share Posted March 23, 2016 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 Link to comment Share on other sites More sharing options...
doekia Posted March 23, 2016 Share Posted March 23, 2016 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 1 Link to comment Share on other sites More sharing options...
Johann Posted March 23, 2016 Share Posted March 23, 2016 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 Link to comment Share on other sites More sharing options...
base888 Posted March 23, 2016 Author Share Posted March 23, 2016 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 Link to comment Share on other sites More sharing options...
doekia Posted March 23, 2016 Share Posted March 23, 2016 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 Link to comment Share on other sites More sharing options...
Johann Posted March 23, 2016 Share Posted March 23, 2016 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) Link to comment Share on other sites More sharing options...
base888 Posted March 23, 2016 Author Share Posted March 23, 2016 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 Link to comment Share on other sites More sharing options...
doekia Posted March 23, 2016 Share Posted March 23, 2016 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 redirection3/ 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'autre5/ 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 Link to comment Share on other sites More sharing options...
base888 Posted March 23, 2016 Author Share Posted March 23, 2016 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 Link to comment Share on other sites More sharing options...
doekia Posted March 23, 2016 Share Posted March 23, 2016 (edited) Non rien à voir avec le tpl ... ici on parle d'un patch direct dans le coeur 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é Edited March 24, 2016 by doekia (see edit history) Link to comment Share on other sites More sharing options...
Johann Posted March 23, 2016 Share Posted March 23, 2016 L'override existait déjà en PS 1.4 !!! Link to comment Share on other sites More sharing options...
doekia Posted March 24, 2016 Share Posted March 24, 2016 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 Link to comment Share on other sites More sharing options...
Johann Posted March 24, 2016 Share Posted March 24, 2016 Alors ça : De plus je suis en 1.4.5.1, ... Link to comment Share on other sites More sharing options...
Johann Posted March 24, 2016 Share Posted March 24, 2016 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 Link to comment Share on other sites More sharing options...
doekia Posted March 24, 2016 Share Posted March 24, 2016 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. Link to comment Share on other sites More sharing options...
base888 Posted March 24, 2016 Author Share Posted March 24, 2016 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 Link to comment Share on other sites More sharing options...
base888 Posted March 24, 2016 Author Share Posted March 24, 2016 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 Link to comment Share on other sites More sharing options...
doekia Posted March 24, 2016 Share Posted March 24, 2016 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 - je viens de vérif rien n'a changé entre ces 2 versions dans cette partie Link to comment Share on other sites More sharing options...
base888 Posted March 24, 2016 Author Share Posted March 24, 2016 (edited) Doekia, je viens de tester le patch, installé dans controllers/ProductController.php à l'emplacement exact que tu m'as indiqué : if (!$product->active) 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 March 24, 2016 by base888 (see edit history) Link to comment Share on other sites More sharing options...
doekia Posted March 24, 2016 Share Posted March 24, 2016 (edited) 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 March 24, 2016 by doekia (see edit history) Link to comment Share on other sites More sharing options...
base888 Posted March 25, 2016 Author Share Posted March 25, 2016 Bonjour Doekia Merci pour ton suivi, je teste cela et revient vers toite confirmer le bon fonctionnement Bonne journée Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now