Reseaux Posted October 15, 2015 Share Posted October 15, 2015 Bonjour, J'ai réussi à ajouter un champ supplémentaire en suivant le tuto de Pauline http://www.paulineghiazza.fr/ajouter-un-champ-dans-le-backoffice-prestashop-1-5 Je suis sous Presta 1.6Aujourd'hui je voudrais pouvoir afficher ce champ sur ma page "product-list" et sur ma page d'accueil à la presentation des produits. Comment faire pour insérer ce nouveau champs dans product-list.tpl?{$product->pointsforts} n’affiche rien… Malgré tout lorsque j'éxamine mon élément, celui trouve bien <div class="pointsforts">{$product->pointsforts}</div> mais ne retranscrit pas le {$product->pointsforts}... Merci infiniment pour votre aide Link to comment Share on other sites More sharing options...
Neza Posted October 16, 2015 Share Posted October 16, 2015 Bonjour, Le problème est certainement lié au fait que la nouvelle valeur n'est pas lue dans la base de donnée et donc que la variable {$product->pointsforts} n'est pas alimentée. Neza. Link to comment Share on other sites More sharing options...
2mdee Posted October 19, 2015 Share Posted October 19, 2015 Bonjour, je rencontre le même problème, je voudrai avoir la solution pour ajouter avec succès un champ supplèmentaire à la fiche produit, je suis tombé sur le tuto indiqué ci-dessus et un autre, je cherche également dans les forums anglophones. Si vous avez eu solution à votre problème merci de me dire. MERCI D'AVANCE ! Link to comment Share on other sites More sharing options...
Reseaux Posted October 20, 2015 Author Share Posted October 20, 2015 J'ai finalement réussi, Au lieu d'appeler mon nouveau champs comme ceci: {$product->pointsforts}, je l'ai remplacer par {$product.pointsforts}. Link to comment Share on other sites More sharing options...
2mdee Posted October 21, 2015 Share Posted October 21, 2015 Merci pour ta réponse, mis à part celà tu as suivi à la lettre le tuto de http://www.paulineghiazza.fr/ajouter-un-champ-dans-le-backoffice-prestashop-1-5/ ? Peux-tu égaleement m'indiquer la table que tu as du modifier en base de données. Est-ce : Table: pre9018_cart_product Merci pour toute réponse. Car je dois également modifier la table client si tu peux me préciser la table à toucher ce serait cool. J'attends ta réponse, juste pour savoir si le tuto est bon, si je dois remplacer toutes les occurences de {$product->pointsforts} par {$product.pointsforts}. Merci d'avance. Link to comment Share on other sites More sharing options...
Ikompagwec Posted October 21, 2015 Share Posted October 21, 2015 Bonjour, I ) Ajout du champ dans la base de donnéesRendez-vous dans votre base de données et ajoutez un champ « pointsforts » de type « Text » dans la table PREFIX_product_lang. A priori je dirai cette table là Bonne journée ! Link to comment Share on other sites More sharing options...
2mdee Posted October 21, 2015 Share Posted October 21, 2015 Bonjour, je vois la table pre9018_cart_product dans ma base de donnée je vois pas la table dont tu parles par contre cette table compte 7 attributs (id_cart,id_product,id_address_delivery,id_shop,id_product_attribute,quantity,date_add). C'est bien cette table que tu as modifiée? Aides moi juste pour cet exemple je me débrouillerai pour les clients. Merci encore. Link to comment Share on other sites More sharing options...
Ikompagwec Posted October 21, 2015 Share Posted October 21, 2015 Bonsoir, Ta table cart_product est juste mais ne concerne pas cette partie là, elle est liée au panier (cart en anglais). Quelle version de Prestashop utilises-tu ? Tu ne possèdes pas de table product_lang ? Si c'est effectivement le cas, tu devrais avoir un ÉNORME souci au niveau des produits. Peut-être as-tu un problème de compréhension plus global de la base de données ? Est-ce que le nom de tes tables commencent toujours de la même manière ? Par "pre9018" par exemple (puisque devant ta table cart_product c'est le cas) ? Si c'est bien cela, la table que tu recherches est "pre9018_product_lang". Link to comment Share on other sites More sharing options...
2mdee Posted October 21, 2015 Share Posted October 21, 2015 Merci IkompagwecJ'utilise la version 1.6.1.1 de PRESTASHOP installé depuis le serveur d'OVH, pour les produits y a aucun souci car j'ai eu à enregistrer des produits et ils s'affichent bien, j'ai vu mon erreur (quel con je suis) ,je ne déroulais pas la liste des tables.J'ai bien vu la table de produits dont tu parles et elle posséde 12 attributs. Je veyx juste savoir si ce tuto suffit à ajouter mon champ : http://www.paulineghiazza.fr/ajouter-un-champ-dans-le-backoffice-prestashop-1-5/ (en tenant en compte du post de Oser Reso, je ferai les modifications pour la table client tout seul car j'ai des foreign key à mettre en place et des champs à ajouter. Merci de m'avoir éclairer et j'attends ta réponse sur le tuto. Link to comment Share on other sites More sharing options...
2mdee Posted October 22, 2015 Share Posted October 22, 2015 Please help ! je dois livrer mon site samedi. Taches restantes : 1) Ajouter un champ à Produits 2) Ajouter un champ à Client ( genre celui qui l'a fait connaitre notre site, juste une adresse email). Toute aide est la bienvenue ! Merci. Link to comment Share on other sites More sharing options...
Ikompagwec Posted October 22, 2015 Share Posted October 22, 2015 (edited) Bonjour, Ce tutoriel doit effectivement bien marcher pour ta version.(en prenant compte des conseils d'Oser Reso) Pour ton champ Client, l'information doit apparaître dans le BO ou également à l'inscription ? (C'est le client qui rentre l'information ?) Tu peux regarder ici, je n'ai pas testé mais ça pourrait t'aider. http://www.actiaweb.com/activ/ajout-champ-cr%C3%A9ation-de-compte-prestashop.html https://www.prestashop.com/forums/topic/57590-tutorial-devforever-ajouter-un-champ-obligatoire-au-formulaire-d%E2%80%99inscription/ Edited October 22, 2015 by Ikompagwec (see edit history) Link to comment Share on other sites More sharing options...
2mdee Posted October 22, 2015 Share Posted October 22, 2015 Merci pour ta réponse. Pour le client, l'information doit aussi apparaitre dans les deux cas, il doit préciser son parrain en entrant l'adresse email du concerné, qui est également client, là y a un foreign à mettre en place, je me débrouillerai. Moi je trouve le tuto que j'ai indiqué trop minimaliste pour gérer tout , un si petit bout de code gèrant un CRUD (CREATE, READ, UPDATE ,DELETE) ????? tu trouves pas? Le champ pour les produit est un champ points, chaque produit est associé à une cote,le parrain bénéficie d'une part des cotes du produits (qu'il pourra échanger dans le magasin). Je dois coder au plus tard cette nuit à fond non stop jusqu'à l'achèvement, c'est pour ça je veux recueillir le maximum de bonnes infos. Merci si tu peux me guider. Link to comment Share on other sites More sharing options...
Ikompagwec Posted October 22, 2015 Share Posted October 22, 2015 Pour les produits, ce tutoriel suffit, on ne créé qu'un champ d'un produit, et non pas une nouvelle entité Produit. Il faudra en revanche que tu mettes ton champ en entier et non pas en chaine de caractères comme c'est le cas dans le tutoriel. Pour cela, tu peux t'inspirer des autres champs existants déjà sur les produits (voir la classe Product). Pour les clients les liens que je t'ai donné m'avait l'air de pouvoir bien te guider. Désolé si je ne t'aide pas plus, je n'ai pas forcément le temps pour l'instant. Link to comment Share on other sites More sharing options...
2mdee Posted October 22, 2015 Share Posted October 22, 2015 Merci j'avais déjà commencé, mais quand je suis tombé sur ce post disant que ça marchait pas je me suis arrêté, j'ai bien mis le champs en INT en m'inspirant des autres champs. ça va devoir aller, à moi de jouer ! Bonne journée et merci beaucoup ! Link to comment Share on other sites More sharing options...
2mdee Posted October 25, 2015 Share Posted October 25, 2015 Salut à tous ! Je livre mon site demain, merci encore pour votre aide, j'ai tout mis en place et je crois que c'est bon. Là je veux une requête imbriquée en SQL , en fait j'ai un système de parrainage, l'idée est que chaque produit est coté en points (Valeur en euros), dès que le client valide sa commande tous les points de son panier sont partagés entre le parrain (un rang plus haut) et ceux qui font partie de la chaine de son parrain, un système de chainage. Si vous avez un code similaire sous la main merci de me le filer et me dire où le mettre . En vous remerciant d'avance. J'adapterai tout code. Link to comment Share on other sites More sharing options...
2mdee Posted October 26, 2015 Share Posted October 26, 2015 Salut je suis entrain de tester l'ajout de nouveaux produits avec mon champ points qui est un int. J'ai une erreur à l'ajout car il prend le point comme un array, est-ce-que ça vient de la définition du champ dans la classe Product? Merci pour toute réponse. Link to comment Share on other sites More sharing options...
2mdee Posted October 26, 2015 Share Posted October 26, 2015 Dans informqtions.tpl j'ai ce code : <div class="form-group"> <label class="control-label col-lg-3 required" for="points"> <span class="label-tooltip" data-toggle="tooltip" title="{l s='La valeur en entier du produit, cette valeur sera redistribuée à la chaine.'}"> {$bullet_common_field} {l s='Points'} </span> </label> <div class="col-lg-1"> <input type="text" id="points" name="points" value="{$product->points}" /> </div> </div> Quand j'enregistre j'ai une erreur. Link to comment Share on other sites More sharing options...
Ikompagwec Posted October 26, 2015 Share Posted October 26, 2015 Bonjour, A priori je dirai que ton code est juste dans le .tpl, donc regarde plutôt du côté de la classe. Sans avoir l'erreur sous les yeux, je ne pourrai pas t'en dire plus. Si tu veux que je jette un oeil à ton code de la classe quand je le pourrai, tu peux le poster ici aussi. Link to comment Share on other sites More sharing options...
2mdee Posted October 26, 2015 Share Posted October 26, 2015 Voici ma classe Product : <?php class Product extends ProductCore{ public $points; public function __construct($id_product = null, $full = false, $id_lang = null, $id_shop = null, Context $context = null) { Product::$definition['fields']['points'] = array('type' => self::TYPE_INT, 'multilang' => true, 'validate' => 'isUnsignedInt'); parent::__construct($id_product, $full, $id_lang, $id_shop, $context); } }?> Link to comment Share on other sites More sharing options...
2mdee Posted October 27, 2015 Share Posted October 27, 2015 J'ai juste cette erreur : Une erreur s'est produite pendant la création de l'objet. product Link to comment Share on other sites More sharing options...
2mdee Posted October 27, 2015 Share Posted October 27, 2015 En m'inspirant du champ Nom du produit j'ai modifié le champ Points : <div class="form-group"> <div class="col-lg-1"><span class="pull-right">{include file="controllers/products/multishop/checkbox.tpl" field="points" type="default" multilang="true"}</span></div> <label class="control-label col-lg-2 required" for="points_{$id_lang}"> <span class="label-tooltip" data-toggle="tooltip" title="{l s='La valeur en points du produit.'} {l s='Invalid characters:'} <>;=#{}"> {l s='Points'} </span> </label> <div class="col-lg-5"> {include file="controllers/products/input_text_lang.tpl" languages=$languages input_class="{$class_input_ajax}{if !$product->id || Configuration::get('PS_FORCE_FRIENDLY_PRODUCT')}copy2friendlyUrl{/if} updateCurrentText" input_value=$product->points input_name="points" required=true } </div> </div> Le problème est surement ailleurs. Pourtant la classe Product m'a l'air bien, je pense que le souci est que je lui dis à aucun moment de le mettre en base de données, j'ai regardé le code du Product par défaut , j'ai pensé surcharger la fonction update pour mettre à jour mon champ points ????? J'ai raison n'est ce pas? C'est bien beau de voir le champ Points lors de la saisie mais faut le stocker quelque part. Link to comment Share on other sites More sharing options...
2mdee Posted October 27, 2015 Share Posted October 27, 2015 J'ai réglé mon problème,je me demande bien où j'avais créé le champ en base de données mais pas dans la bonne table, j'ai juste activé le mode DEBUB à true, puis j'ai vu l'erreur. Merci ! Link to comment Share on other sites More sharing options...
2mdee Posted October 27, 2015 Share Posted October 27, 2015 Le problème que j'ai maintenant c'est qu'il met mon champ à zéro !!!!!! grrrrrrrr ! Link to comment Share on other sites More sharing options...
Ikompagwec Posted October 27, 2015 Share Posted October 27, 2015 Bonjour Je n'ai vu aucune erreur précédemment, ni dans ton .tpl, ni dans ta classe. As-tu penseéà suivre ces recommandations ? Çà ne fonctionne pas ? Solution 1En cas de problème, vérifiez que la compilation est bien désactivée. Pour cela, rendez-vous dans Paramètres avancés > Performances et modifiez les options suivantes : Cache des templates : Forcer la compilation à chaque appel Cache : Non (X) Pour les versions 1.5.6, cliquez aussi sur le bouton « Effacer le cache de Smarty et le cache de l’Autoload ». Une fois cela fait, réessayez. Cela devra fonctionner. Si tout est bon, pensez cependant à re-modifier ces informations et de les remettre sur : Cache des templates : Ne jamais recompiler les fichiers de templates Cache : Oui Sans quoi, votre site va se mettre à ramer horriblement. Solution 2De plus, si vous venez de créer les fichiers overridés spécifiquement pour ce tuto, il est impératif de vider le cacher de l’autoload. Pour ce faire, vous pouvez : supprimer le fichier class_index.php dans le dossier /cache en 1.5.5+, aller dans Préférences > Performances et en cliquant sur « Vider le cache » dans la toolbar Si tu définis ton champ dans la classe, tu n'as pas besoin de modifier l'update. Link to comment Share on other sites More sharing options...
Ikompagwec Posted October 27, 2015 Share Posted October 27, 2015 (edited) Excuse moi, je n'avais pas vu tes réponses d'avant Je me souviens avoir eu des problèmes de champs qui prennait une valeur 0 mais je ne sais plus quelle était mon erreur. Je pense que ça veut juste dire qu'il ne récupère pas la valeur de ton champ et mets la valeur par défaut. Pour ma part j'avais créé il y a quelques temps, j'avais fait comme cela: <div class="form-group"> <label class="control-label col-lg-3 " for="points"> <span class="label-tooltip" data-toggle="tooltip" title="{l s='Points.'}"> {$bullet_common_field} {l s='Points'} </span> </label> <div class="col-lg-3"> <input maxlength="13" type="text" id="points" name="points" value="{$product->points|htmlentitiesUTF8}" /> </div> </div> Et dans ma classe /** @var integer */ public $points; public function __construct($id_product = null, $full = false, $id_lang = null, $id_shop = null, Context $context = null) { self::$definition['fields']['points'] = array('type' => self::TYPE_INT, 'validate' => 'isInt', 'size' => '13'); parent::__construct($id_product, $full, $id_lang, $id_shop, $context); } A priori c'est exactement ce que tu as fait. La seule différence est la version de Prestashop (je suis en 1.6.0.5) mais je doute qu'il y ait eu des changements à ce sujet. Edited October 27, 2015 by Ikompagwec (see edit history) Link to comment Share on other sites More sharing options...
2mdee Posted October 27, 2015 Share Posted October 27, 2015 Le nombre tapé est bien enregistré en base de données , ça j'ai vérifié, mais lorsque je veux modifier le produit j'ai des trucs bizarres, il me dit "Array" sur ce champ ????? HELP !!!!!!! Link to comment Share on other sites More sharing options...
Ikompagwec Posted October 27, 2015 Share Posted October 27, 2015 Donc la valeur du champ est bien enregistrée mais l'affichage met "0" quoi qu'il arrive, c'est bien ça? Pourrais-tu donner l'erreur exacte "Array" ? Et dans quelles circonstances tu as cette erreur ? Link to comment Share on other sites More sharing options...
2mdee Posted October 27, 2015 Share Posted October 27, 2015 (edited) Le champ Points est bien en entier dans la base de données, quand je clique sur modifier,sur le champ je vois juste "Array" ? C'est bizarre !!!! Là il met plus de 0, juste Array ! Edited October 27, 2015 by 2mdee (see edit history) Link to comment Share on other sites More sharing options...
2mdee Posted October 27, 2015 Share Posted October 27, 2015 C'est bon j'ai réussi enfin ! Merci ! Link to comment Share on other sites More sharing options...
Ikompagwec Posted October 27, 2015 Share Posted October 27, 2015 Heureux de l'apprendre Peut-être pourrais-tu partager la solution pour les prochaines qui rencontreront ce même problème ? Bonne continuation ! Link to comment Share on other sites More sharing options...
2mdee Posted October 27, 2015 Share Posted October 27, 2015 Prestashop 1.6.1.1 Classe Produit : <?php class Product extends ProductCore{ public $points; public function __construct($id_product = null, $full = false, $id_lang = null, $id_shop = null, Context $context = null) { self::$definition['fields']['points'] = array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'); parent::__construct($id_product, $full, $id_lang, $id_shop, $context); } }?> Dans informations.tpl, le champ concernant mon champ points (entier),je me suis inspiré du champ reference : <div class="form-group"> <label class="control-label col-lg-3 required" for="points"> <span class="label-tooltip" data-toggle="tooltip" title="{l s='La valeur en entier du produit, cette valeur sera redistribuée à la chaine.'}"> {$bullet_common_field} {l s='Points'} </span> </label> <div class="col-lg-3"> <input maxlength="6" type="text" id="points" name="points" value="{$product->points|htmlentitiesUTF8}" /> </div> </div> Le code était là depuis le début mais j'ai touché à la classe en ne laissant que ce qui est présent dans le array et par magie ça a marché ! Merci pour tout ! Link to comment Share on other sites More sharing options...
Reseaux Posted November 13, 2015 Author Share Posted November 13, 2015 (edited) Bonjour, Tout marchait vraiment bien lorsque j'ai ajouter le champs supplémentaire. J'ai une multiboutique avec une boutique public et une boutique pro. Mais depuis quelques jours, sur la boutique pro. j'ai quelques champs quand ont sautés. Il sont toujours présents mais ce que j'ai saisi ne s'affiche pas. Ce qui est étonnant c'est que c'est le même produits, avec la même fiche produit et que sur l'espace public le champs et la saisie s'affiche bien. Edited December 1, 2015 by Oser Reso (see edit history) Link to comment Share on other sites More sharing options...
Reseaux Posted November 17, 2015 Author Share Posted November 17, 2015 (edited) Bonjour, Tout marchait vraiment bien lorsque j'ai ajouter le champs supplémentaire. J'ai une multiboutique avec une boutique public et une boutique pro. Mais depuis quelques jours, sur la boutique pro. j'ai quelques champs quand ont sautés. Il sont toujours présents mais ce que j'ai saisi ne s'affiche pas. Ce qui est étonnant c'est que c'est le même produits, avec la même fiche produit et que sur l'espace public le champs et la saisie s'affiche bien. J'ai trouvé la solution, Il suffit d'ajouter ‘shop’ => true dans la classe pour que le champs soit actif à 100% en multinboutique. Edited December 1, 2015 by Oser Reso (see edit history) Link to comment Share on other sites More sharing options...
Reseaux Posted November 24, 2015 Author Share Posted November 24, 2015 (edited) Bonjour, Tout marchait vraiment bien lorsque j'ai ajouter le champs supplémentaire. J'ai une multiboutique avec une boutique public et une boutique pro. Mais depuis quelques jours, sur la boutique pro. j'ai quelques champs quand ont sautés. Il sont toujours présents mais ce que j'ai saisi ne s'affiche pas. Ce qui est étonnant c'est que c'est le même produits, avec la même fiche produit et que sur l'espace public le champs et la saisie s'affiche bien. Finalement j'ai toujours le problème malgré que j'ai ajouter la balise ‘shop’ => true... Quelqu'un aurait une solution ? Edited December 1, 2015 by Oser Reso (see edit history) Link to comment Share on other sites More sharing options...
Reseaux Posted December 22, 2015 Author Share Posted December 22, 2015 Up si quelqu'un peut m'aider :/ 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