Jump to content

Modifier les conditions de l'Etat d'un produit Prestashop 1.6.1.5


Recommended Posts

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.

post-1240850-0-73082400-1473770821_thumb.jpg

post-1240850-0-20291000-1473771022_thumb.jpg

Link to comment
Share on other sites

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

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

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

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 by Rapishiny (see edit history)
  • Like 1
Link to comment
Share on other sites

@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

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

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

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

Ca ne marche toujours pas et lorsque je vérifie dans la BDD une erreur affiche cela:

Erreur

Analyse statique :

2 erreurs trouvées lors de l'analyse.

  1. Une expression était attendue. (near "condition" at position 19)
  2. Mot clé non reconnu. (near "condition" at position 19)

Requête SQL : dot.gif

SELECT id_product, condition FROM ps_product_shop LIMIT 0, 25

MySQL a répondu: dot.gif

#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

Voila ce qui apparait dans vos 2 cas de réponses dans PHPMYADMIN.

 

post-1240850-0-28680900-1474018795_thumb.jpg

post-1240850-0-45554700-1474018802_thumb.jpg

 

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.

 

post-1240850-0-25909500-1474018890_thumb.jpg

Link to comment
Share on other sites

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

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

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

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

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...