boo6ie Posted September 26, 2012 Share Posted September 26, 2012 (edited) Bonjour, Je me heurte à un problème qui avait déjà été évoqué et qui, apparemment, reste impossible à résoudre : pouvoir changer dynamiquement les caractéristiques d'une déclinaison d'un produit. Cela reste donc impossible puisqu'une déclinaison n'est pas considéré comme un produit à part entière... Donc impossible de renseigner le champ "caractéristique" pour les déclinaisons, donc celui-ci reste figé. J'ai donc cherché un moyen d'insérer deux informations que j'ai besoin de faire apparaitre relatives à certaines déclinaisons. Il me falait donc trouver un champ dynamique. J'ai donc choisi le champ "référence" que l'on retrouve dans les déclinaisons produit et qui change dynamiquement. Malheuresement, le champ est limité à 32 caractère et une erreur survient dans le back-office au delà. J'ai essayé de changé la valeur de la variable "supplier_reference" dans la classe "/classes/Product.php" en la passant à 64 mais rien n'y fais, j'ai toujours le message d'alerte et me retrouve limité... Je vous joins une image du champ que je veux agrandir. "Référence : 250296 - carte de 81 pictos -". J'aimerai pouvoir ajouter d'autres mots derrière... Si celà reste également impossible, avez-vous une idée pour pouvoir ajouter des informations qui change dynamiquement par rapport aux déclinaisons du produit ? Pour info, ce sujet avait été évoqué mais est resté également sans réponses : http://www.prestasho...au-declinaison/ Merci & bonne journée ! Matthieu Edited September 26, 2012 by boo6ie (see edit history) Link to comment Share on other sites More sharing options...
Hedrad Posted September 26, 2012 Share Posted September 26, 2012 Bonjour, Il faut aussi augmenter la limite du champ dans la base de données. Link to comment Share on other sites More sharing options...
boo6ie Posted September 26, 2012 Author Share Posted September 26, 2012 Merci pour ta réponse Alors j'ai bien modifié, dans la structure de la table "ps_product", le champ "supplier_reference" que j'ai mis en varchar(64) au lieu de 32. Mais celà n'a rien changé. Toujours le message d'alerte lorsque je test : le champ référence est trop long (32 caractères maximum). Je ne comprend pas... Link to comment Share on other sites More sharing options...
boo6ie Posted September 26, 2012 Author Share Posted September 26, 2012 (edited) J'ai d'ailleurs testé sur le champ "reference" et "supplier_reference". Je les ai tous deux mis en varchar 64. Dans classes/product.php j'ai modifié cette ligne : protected $fieldsSize = array('reference' => 64, 'supplier_reference' => 64, 'location' => 64, 'ean13' => 13, 'upc' => 12, 'unity' => 10); Rien y fait. Toujours limiter dans le back-office... Edited September 26, 2012 by boo6ie (see edit history) Link to comment Share on other sites More sharing options...
boo6ie Posted September 26, 2012 Author Share Posted September 26, 2012 Bon c'est réglé ça fonctionne ! Merci beaucoup pour votre aide Link to comment Share on other sites More sharing options...
jmaumene Posted September 26, 2012 Share Posted September 26, 2012 Peux tu mettre le sujet en résolu, et nous donner la solution ? 1 Link to comment Share on other sites More sharing options...
boo6ie Posted September 26, 2012 Author Share Posted September 26, 2012 En faite c'était de mon côté, sur la bdd, qu'il y'avait un problème depuis le début. Mais la manipulation est la suivante : - Modifier la limite du champ "reference" (qui correspond au champ de la référence du produit donc) qui se trouve dans la table ps_product. Passez le paramètre varchar(32) en varchar(64). Actualisez la table. - Modifiez (ligne 204) la ligne dans /classes/product.php : protected $fieldsSize = array('reference' => 32, 'supplier_reference' => 32, 'location' => 64, 'ean13' => 13, 'upc' => 12, 'unity' => 10); Passez la valeur 'reference' à 64. Même manipulation, par exemple, pour la référence fournisseur. Dans la BDD 'supplier_reference' en varchar(64) et dans la classe product.php 'supplier_reference' => 64. Merci ! Link to comment Share on other sites More sharing options...
boo6ie Posted September 26, 2012 Author Share Posted September 26, 2012 Petite info en plus, puisque j'ai été également dû changer ça : Pour avoir le même résultat sur la référence des déclinaisons cette fois-ci, ça se passe dans /classes/combinaisons.php et c'est dans "ps_product_attribute" sur la BDD, champ "reference". Voilou ! Link to comment Share on other sites More sharing options...
typiac Posted March 26, 2013 Share Posted March 26, 2013 Hummm, j'ai le même problème pour le champ référence (d'ailleurs, je pense qu'on va être de plus en plus nombreux puisqu'avec les nouveaux algo google, il faut vraiment tout regrouper pour éviter le duplicate content) et en changeant les champ de la base et des fichiers combinaison.php et product.php ça ne change rien, à cela près qu'il n'y a plus le message d'erreur (mais les ref n'apparaissent pas dans la fiche produit). Link to comment Share on other sites More sharing options...
typiac Posted March 26, 2013 Share Posted March 26, 2013 En fait, je viens de comprendre: une fois toutes les références rentrées, il faut attribuer une référence par déclinaison, la totalité des références n'étant regroupée dans le Back-office pour le formidable E-marchand que je suis! Merci Boob6ie pour ton retour, ça m'a bien aidé! Juste une petite question: quid des MAJ prestashop: Ca ne risque pas de nuire à la mise à jour d'avoir touché à la base et aux fichiers dans le dossier class? Link to comment Share on other sites More sharing options...
Pepitoww Posted March 26, 2013 Share Posted March 26, 2013 Bonjour, pour éviter tout problème de mise à jour, faites vos modifications dans le dossier override, c'est à dire trouvez la classe correspondante et rajoutez-y vos modifications. Cordialement Link to comment Share on other sites More sharing options...
spip93 Posted April 24, 2017 Share Posted April 24, 2017 La manipulation est la suivante : - Modifier la limite du champ "reference" (qui correspond au champ de la référence du produit donc) qui se trouve dans la table ps_product. Passez le paramètre varchar(32) en varchar(64). Actualisez la table. - Modifiez (ligne 204) la ligne dans /classes/product.php : protected $fieldsSize = array('reference' => 32, 'supplier_reference' => 32, 'location' => 64, 'ean13' => 13, 'upc' => 12, 'unity' => 10);Passez la valeur 'reference' à 64. Même manipulation, par exemple, pour la référence fournisseur. Dans la BDD 'supplier_reference' en varchar(64) et dans la classe product.php 'supplier_reference' => 64. Pour ceux qui chercheraient pour la version 1.6(.1.6) de Prestashop, c'est bien dans classes/product.php, mais à la ligne 271, plus la ligne 204. Avec ça, il faut chercher le code suivant : 'reference' => array('type' => self::TYPE_STRING, 'validate' => 'isReference', 'size' => 32), et donc remplacer 32 par 64. Pour "supplier_reference", c'est la ligne suivante qu'il faut modifier. Sinon, dans la BDD, c'est bien dans la table ps_product qu'il faut passer le paramètre varchar(32) en varchar(64) , ça, ça n'a pas changé. Link to comment Share on other sites More sharing options...
Dagr859 Posted June 14, 2018 Share Posted June 14, 2018 Bonjour, J'ai suivi vos indications concernant les modif sur les références fournisseur (Pour modifier la longueur des références fournisseurs sur chaque déclinaison). Nous avons besoin de références de 85 , voir 100 caractères. J'ai modifié la BDD dans ps_product en passant en varchar(100) sur supplier-reference , puis dans ps_product_attribute en varchar(100) sur supplier_reference Ensuite dans classes/product.php , classes/combination.php et aussi classes/ProductSupplier.php en modifiant : supplier_reference' => array('type' => self::TYPE_STRING, 'size' =>100), Rien n'y fait, toujours un message d'erreur avec une limitation du nombre de caractères à 64. Est-ce que 100 c'est trop ? ou est-ce que j'ai oublié de modifier quelque chose ? Merci d'avance à tous 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