ngibert Posted September 13, 2016 Share Posted September 13, 2016 Bonjour, Je suis un nouvel utilisateur prestashop, je réalise pour ma jeune entreprise un site catalogue. Certains produits seront en exclusivité promo Web et pourront être acheté directement via le site et les autres seront simplement consultables sur le site. Pour l'heure mon site est en local avec Xamp Je me vois face à un problème qui me rend FOU depuis 4 jours ! Pour précisez je suis débutant sans notion de développement mais curieux et j'ai pu pas mal avancé grâce aux différents éléments postés par la communauté prestashop. Je souhaiterais modifier les éléments présents dans la bannière Etat du produit. Ne vendant que des produits neuf cet onglet n'a aucun intérêt pour mes clients. Je souhaiterais cependant le modifier afin d'y intégrer les choix: 1 Semaine hors rupture de stock, 2 Semaines hors ruptures de stock, etc... Comme vous pourrez le voir en PJ, j'ai modifié le mot Etat par délai. Pour la suite, j'ai effectué la démarche du lien suivant sur les différents fichiés nommés hors module ebay qui ne m'interesse pas étant donné que je ne l'ai pas. http://www.prestamod.fr/blog/2014/11/ajouter-des-etats-aux-produits-dans-le-module-ebay/ Tout est ok en back office j'ai bien les différents choix qui s'offrent à moi mais sur le front office rien n'apparaît. Pour le fichier Product.tpl, j'ai rentré les lignes suivantes trouvées sur le forum {if !$product->is_virtual && $product->condition} <p id="product_condition"> <label>{l s='Condition:'} </label> {if $product->condition == '1 Semaine hors rupture de stock'} <link itemprop="itemCondition" href="https://schema.org/NewCondition"/> <span class="editable">{l s='1 Semaine hors rupture de stock'}</span> {elseif $product->condition == '2 Semaines hors rupture de stock'} <link itemprop="itemCondition" href="https://schema.org/UsedCondition"/> <span class="editable">{l s='2 Semaines hors rupture de stock'}</span> {elseif $product->condition == '3 Semaines hors rupture de stock'} <link itemprop="itemCondition" href="https://schema.org/RefurbishedCondition"/> <span class="editable">{l s='3 Semaines hors rupture de stock'}</span> {elseif $product->condition == '4-5 Semaines à réception de commande'} <link itemprop="itemCondition" href="https://schema.org/RefurbishedCondition"/> <span class="editable">{l s='4-5 Semaines à réception de commande'}</span> {elseif $product->condition == 'Nous consulter'} <link itemprop="itemCondition" href="https://schema.org/RefurbishedCondition"/> <span class="editable">{l s='Nous consulter'}</span> </p> Mais rien n'y change. Merci pour votre compréhension et votre aide. Link to comment Share on other sites More sharing options...
Arnaud_69 Posted September 14, 2016 Share Posted September 14, 2016 Bonjour, Si tu n'as pas de notion de développement, comment vas tu vérifier la condition qui est : {if !$product->is_virtual && $product->condition} Cette condition conditionne l'affichage ! Ces variables dans le tpl sont traitées dans le controlleur, donc copier un code dans un module et le rapatrier dans un autre, ça ne générera pas forcément d'erreur, juste qu'il n'y aura pas d'affichage ! Voilà, ça me semble donc normal. Link to comment Share on other sites More sharing options...
ngibert Posted September 14, 2016 Author Share Posted September 14, 2016 Je suis désolé tout cela est un peu flou pour moi. J'ai pu voir des fiches articles de produits réalisés sous prestashop dans lesquelles la condition Etat était remplacé par Prix et les conditions Neuf Occasion Reconditionné remplacées par Départ Usine, Franco de port ... Dans mon cas il s'agit exactement de ce que je veux réaliser seulement avec les conditions 1 Semaine hors rupture de stock, 2 Semaines... Pouvez vous me guider sur les fichiers et ligne a modifier pour réaliser cela, Merci d'avance. Link to comment Share on other sites More sharing options...
Arnaud_69 Posted September 14, 2016 Share Posted September 14, 2016 Ces notions n'ont rien à voir entre elles ! Et ce remplacement a du être fait après une étude. Honnêtement, et je ne vais pas prêcher pour ma paroisse, je crois qu'il faudrait contacter un dev pour une presta ponctuelle. Modifier du code dans le core (le coeur du système), ça se fait, même très bien, mais avec une étude, une illustration concrète de tout ce qui est souhaité, et pas qu'une demande sur un forum. Link to comment Share on other sites More sharing options...
ngibert Posted September 14, 2016 Author Share Posted September 14, 2016 Merci pour ceux qui auront envie de me rendre une réponse claire et non de contourner celle-ci avec de belle phrase. Link to comment Share on other sites More sharing options...
Arnaud_69 Posted September 14, 2016 Share Posted September 14, 2016 Réponse claire alors : Tu vas dans le code, tu changes les phrases à traduire du template, tu vas dans le contrôleur et tu modifies les requêtes. Bon courage ! 1 Link to comment Share on other sites More sharing options...
ngibert Posted September 14, 2016 Author Share Posted September 14, 2016 Mais pouvez vous me sortir la ligne de code en question afin de pouvoir modifier cela. Merci Link to comment Share on other sites More sharing options...
Rapishiny Posted September 14, 2016 Share Posted September 14, 2016 (edited) Bonjour, Le truc c'est que ce n'est surement pas une seule ligne de code à modifier justement. Il faut avoir une bonne connaissance du fonctionnement de prestashop au niveau du code. De plus ça prends du temps, ce n'est pas quelque chose qui peut forcément se régler via un forum. Quand Arnaud_69 vous dit de demander une prestation à un développeur c'est pour une bonne raison, ce n'est pas pour "contourner" la réponse. Edited September 14, 2016 by Rapishiny (see edit history) 1 Link to comment Share on other sites More sharing options...
erouvier29 Posted September 15, 2016 Share Posted September 15, 2016 @ngibert, vous n'en êtes pas loin me semble-t-il... D'abord il vous manque un {/if} à la fin de vos tests (avant </p>). Ensuite, quand vous avez modifié les valeurs possibles de product->condition dans votre BDD, vous avez mis quoi? Inspectez les tables ps_product et ps_product_shop, ou ajoutez {debug} dans product.tpl et rechargez la page Ensuite corrigez éventuellement vos tests en conséquence. Link to comment Share on other sites More sharing options...
Arnaud_69 Posted September 15, 2016 Share Posted September 15, 2016 @ngibert, vous n'en êtes pas loin me semble-t-il... D'abord il vous manque un {/if} à la fin de vos tests (avant </p>). ... Non ! Après Link to comment Share on other sites More sharing options...
erouvier29 Posted September 15, 2016 Share Posted September 15, 2016 Il en manque effectivement un après, mais je suppose que le code a été copié/collé en s'arrêtant au </p> Et il en manque bien un avant, pour terminer le dernier {elseif...} 1 Link to comment Share on other sites More sharing options...
Arnaud_69 Posted September 15, 2016 Share Posted September 15, 2016 Il en manque effectivement un après, mais je suppose que le code a été copié/collé en s'arrêtant au </p> Et il en manque bien un avant, pour terminer le dernier {elseif...} Autant pour moi ! Link to comment Share on other sites More sharing options...
Arnaud_69 Posted September 15, 2016 Share Posted September 15, 2016 lol @okom3pom : http://www.larousse.fr/dictionnaires/francais/conditionner/18021 (avec prestashop on conditionne les commandes certes, mais il y a d'autres sens à ce joli verbe...) J'ai conseillé à ngibert d'aller chercher un prestataire, c'est la meilleure solution. Je le vois assez mal utiliser un override ou quoi que ce soit, sachant qu'il a dit : " je suis débutant sans notion de développement " Y'a pas de requêtes dans les controllers ? Ah bon ! Ben oui, c'est vrai, elles sont dans le modèle, sauf qu'on en a aussi dans le crontroller qui est censé normalement ne gérer que les requêtes utilisateurs, avec les couches Model et Vue,... Mais bon, c'est du détail ! Ce qu'il faut retenir, c'est qu'il se fasse aider par un prestataire (et je ne suis pas prestataire !). Link to comment Share on other sites More sharing options...
erouvier29 Posted September 15, 2016 Share Posted September 15, 2016 Ça va lui faire bizarre à ngibert quand il va se reconnecter et voir tout ça! J'ai peur qu'il en oublie la question posée ce matin, dont la réponse pourrait permettre de le débloquer... Link to comment Share on other sites More sharing options...
ngibert Posted September 15, 2016 Author Share Posted September 15, 2016 Merci à tous pour votre compréhension et votre aide. Pour ne pas faire n'importe quoi à chaque manipulation si cela n'avançais pas j'annulais mes sauvegardes. Mais en vérifiant mes lignes avec vos codes il manque en effet ce {/if} avant </p> dans product.tpl Concernant les modifications que j'ai apporté à la colonne condition des dossiers ps_product et ps_product_shop sont les suivantes: J'ai saisi directement celles-ci sur SQL lors de l'affichage de ma BDD prestashop_ei ALTER TABLE `ps_product` CHANGE `condition` `condition` ENUM( '1 Semaine hors rupture de stock', '2 Semaines hors rupture de stock', '3 Semaines hors rupture de stock', '4-5 Semaines à réception de commande', 'Nous consulter' ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '1 Semaine hors rupture de stock' ALTER TABLE `ps_product_shop` CHANGE `condition` `condition` ENUM( '1 Semaine hors rupture de stock', '2 Semaines hors rupture de stock', '3 Semaines hors rupture de stock', '4-5 Semaines à réception de commande', 'Nous consulter' ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '1 Semaine hors rupture de stock' Est-ce juste? Demain matin je suis au bureau, je vais reprendre la démarche intégrale en essayant de rajouter le {/if} oublié, mais pensez vous que cela suffira à mettre en oeuvre dans le front office la visibilité de ces conditions? Merci encore pour vos réponses. La décision de travailler avec Prestashop ne sait pas faite sur un coup de tête, je mettais bien renseigné auparavant, et la communauté représentait l'atout principal de cet outil de travail, et les discussions du forum m'ont permis de pas mal avancer. Je comprend néanmoins que cela ne soit pas du goût de certain développeur de voir des novices créer leur site par eux même. Mais après avoir consulté 2 prestataires pour la création de mon site internet les coûts annoncés ne permettait pas à ma jeune entreprise de pouvoir envisager un site à l'image de ce que je souhaite développer. Link to comment Share on other sites More sharing options...
erouvier29 Posted September 16, 2016 Share Posted September 16, 2016 Ce sera peut-être suffisant en effet. Je viens de refaire votre manip (avec le {/if}) à partir d'une boutique vierge et ça fonctionne, le delai est bien affiché sur la fiche produit. Si ça ne marche toujours pas chez vous, vérifiez en BDD que les délais que vous avez déclarés depuis le BO sont bien enregistrés: SELECT id_product, condition FROM ps_product_shop Link to comment Share on other sites More sharing options...
ngibert Posted September 16, 2016 Author Share Posted September 16, 2016 Ca ne marche toujours pas et lorsque je vérifie dans la BDD une erreur affiche cela: ErreurAnalyse statique : 2 erreurs trouvées lors de l'analyse. Une expression était attendue. (near "condition" at position 19) Mot clé non reconnu. (near "condition" at position 19) Requête SQL : SELECT id_product, condition FROM ps_product_shop LIMIT 0, 25 MySQL a répondu: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'condition FROM ps_product_shop LIMIT 0, 25' at line 1 Que faut-il faire dans ce cas la? Link to comment Share on other sites More sharing options...
erouvier29 Posted September 16, 2016 Share Posted September 16, 2016 (edited) Oh pardon, condition doit être un mot clé SQL: SELECT id_product, `condition` FROM ps_product_shop EDIT: TOO LATE ;-) Edited September 16, 2016 by erouvier29 (see edit history) Link to comment Share on other sites More sharing options...
ngibert Posted September 16, 2016 Author Share Posted September 16, 2016 Voila ce qui apparait dans vos 2 cas de réponses dans PHPMYADMIN. Concernant le BO tout est ok j'ai le choix des conditions mais pour le front c'est toujours comme visuel si joint même après le {/if}. J'ai dupliqué le thème par défaut lors de la création de mon thème, est ce que cela peut venir de la? Je ne verrais pas pourquoi mais là je suis vraiment perdu. Link to comment Share on other sites More sharing options...
ngibert Posted September 16, 2016 Author Share Posted September 16, 2016 Je viens même d'essayer avec le thème par défaut voir si cela changeais quelque chose et non même cas de figure. Link to comment Share on other sites More sharing options...
erouvier29 Posted September 16, 2016 Share Posted September 16, 2016 Ce fameux diable a-t-il l'id 8 ou 11 (BO > Catalogue > Produits)? Le délai n'est defini que pour ces deux produits. Que se passe-t-il si dans product.tpl vous remplacez le bloc par: {if !$product->is_virtual && $product->condition} <p id="product_condition"> <label>{l s='Condition:'} </label> $product->condition </p> {/if} Link to comment Share on other sites More sharing options...
ngibert Posted September 16, 2016 Author Share Posted September 16, 2016 Oui lors de l'envoi de ces visuels, le délai n'était défini que pour ces 2 produits. Lorsque je remplace le bloc par votre écriture rien non plus. Toujours pareil. J'ai essayé en remettant le thème par défaut et sa fait pareil. Sauf que j'ai découvert que lorsque l'on remet le thème initialement modifié les modules se reparamètre et donc j'ai du reprendre la mise en page de ceux-ci (énervé) Je ne vois vraiment pas ou est le problème si pour vous cela fonctionne. J'ai repris une énième fois les écritures pour vérifier une éventuelle erreur et je ne vois rien. Link to comment Share on other sites More sharing options...
erouvier29 Posted September 16, 2016 Share Posted September 16, 2016 Ajoutez {debug} dans votre .tpl, cherchez "$product" dans la fenêtre qui s'ouvrira après rechargement de la page, et vérifiez le contenu de la propriété "condition". Link to comment Share on other sites More sharing options...
ngibert Posted September 16, 2016 Author Share Posted September 16, 2016 Oula, une fois de plus je me rends compte que c'est pas facile de tout comprendre, comment faut -il ajouter {debug} a mon .tpl en ajoutant une ligne d'écriture à la 1ere ligne du fichier? Par ce que si c'est cela, ça ne change toujours rien... Et oui je regarde les bons articles. Faudrait-il modifier d'autres fichiers du thème ou autre pour ne pas interposer avec d'autres conditions? Link to comment Share on other sites More sharing options...
erouvier29 Posted September 16, 2016 Share Posted September 16, 2016 Est-ce bien le bon tpl que vous éditez? /themes/default-bootstrap/product.tpl ou /themes/xxx/product.tpl en fonction du thème actuellement activé sur la boutique Link to comment Share on other sites More sharing options...
ngibert Posted September 16, 2016 Author Share Posted September 16, 2016 Oui je modifie bien le fichier /themes/xxx/product.tpl Link to comment Share on other sites More sharing options...
ngibert Posted September 19, 2016 Author Share Posted September 19, 2016 La solution était en faite toute bête, il suffit après avoir effectué la démarche détaillée précédemment d'aller vider le cache de votre BO. Sur le BO aller dans paramètre avancé ==> performance ==> vider le cache Merci pour votre aide tout de même. 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