Jump to content
boo6ie

[Résolu] Augmenter le nombre de caractères pour le champ "référence" d'un produit

Recommended Posts

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... post-401008-0-29550700-1348661517_thumb.jpg

 

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 by boo6ie (see edit history)

Share this post


Link to post
Share on other sites

Bonjour,

Il faut aussi augmenter la limite du champ dans la base de données.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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 by boo6ie (see edit history)

Share this post


Link to post
Share on other sites

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 !

Share this post


Link to post
Share on other sites

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 !

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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 

Share this post


Link to post
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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More