Jump to content

Problème de configuration des champs personnalisés sur ma page produit en backoffice


Recommended Posts

Bonjour,

Actuellement sur la version 1.7.5.1 de PrestaShop, je rencontre un problème avec la sauvegarde des champs personnalisés sur la page d'un produit en backoffice.

En effet, j'ai pu ajouté 2 champs textes sur la page de ce produit, les champs sont sauvegardés dans la bdd mais les champs customizable et text_fields de l'objet Product sont égales à 0.

Quand je regarde dans la méthode processUpdate du controller AdminProductsController, les seules tab qui sont sousmis sont Shipping et Association (pas Customization).

Est-ce que quelqu'un a déjà eu affaire à ce genre de problème ? Si oui, avez-vous une solution à me proposer ?

Merci d'avance

personnalisation.png

  • Like 1
Link to comment
Share on other sites

3 minutes ago, NeroAdvents said:

Bonjour,

Actuellement sur la version 1.7.5.1 de PrestaShop, je rencontre un problème avec la sauvegarde des champs personnalisés sur la page d'un produit en backoffice.

En effet, j'ai pu ajouté 2 champs textes sur la page de ce produit, les champs sont sauvegardés dans la bdd mais les champs customizable et text_fields de l'objet Product sont égales à 0.

Quand je regarde dans la méthode processUpdate du controller AdminProductsController, les seules tab qui sont sousmis sont Shipping et Association (pas Customization).

Est-ce que quelqu'un a déjà eu affaire à ce genre de problème ? Si oui, avez-vous une solution à me proposer ?

Merci d'avance

personnalisation.png

moi aussi j'attends une solution

Link to comment
Share on other sites

Update:

J'ai regardé dans la méthode processProductCustomization du fichier PrestaShop/Adapter/Product/AdminProductWrapper.php, et je ne comprend pas pourquoi la sauvegarde des informations de personnalisation du produit ne se sauvegarde pas.

Les informations passées à l'appel Db::getInstance()->execute() sont les suivantes :

customizable = 2

uploadable_files = 0

text_fields = 2

Résultat en bdd :

customizable = 0

uploadable_files = 0

text_fields = 0

Je continue de chercher une solution, mais je suis à l'écoute de vos solutions :)

Link to comment
Share on other sites

1 hour ago, stifler97 said:

moi aussi j'attends une solution

 

Est-ce que vous utilisez le hook actionAdminProductsControllerSaveAfter?

Si oui, voici comment j'm'y prendrais.

public function hookActionAdminProductsControllerSaveAfter(&$params)
{
	if (!isset($_REQUEST['form']['id_product']))
		return;
	// Faire un petit dump et examiner où pourraient se trouver tes champs
	dump($_REQUEST); // Tu devrais y retrouver "formulaire personnalisé" tout dépendant comment tu l'as intégré, il peut être dans un formbuilder ou bien simplement des champs à la racine de la $_REQUEST .. 
	die(); // Parce que c'est moins chiant à débugger sans toute la pollution visuelle du backend. 	
	// Exemple : mon formbuilder name est MODULE_POUET_POUET donc, j'utilise $formData = $_REQUEST['MODULE_POUET_POUET']; pour faire le traitement...
	

}

edit: ponctuation..

Edited by hydromel2008 (see edit history)
Link to comment
Share on other sites

Bonjour @hydromel2008,

Merci pour votre réponse.

J'ai appliqué un petit correctif pour l'instant au niveau de la méthode processProductCustomization du fichier AdminProductWrapper.php :

        //update product count fields labels
        /* Core - Do not work */
        // Db::getInstance()->execute('UPDATE `' . _DB_PREFIX_ . 'product` SET `customizable` = ' . $productCustomizableValue . ', `uploadable_files` = ' . (int) $countFieldFile . ', `text_fields` = ' . (int) $countFieldText . ' WHERE `id_product` = ' . (int) $product->id);

        /* Do not work */
        // Db::getInstance(_PS_USE_SQL_SLAVE_)->update(
        //    'product',
        //    array(
        //        'customizable' => $productCustomizableValue,
        //        'uploadable_files' => $countFieldFile,
        //        'text_fields' => $countFieldText
        //    ),
        //    'id_product = ' . $product->id);

        /* Does work */
        $product->customizable = (int)$productCustomizableValue;
        $product->uploadable_files = (int)$countFieldFile;
        $product->text_fields = (int)$countFieldText;

Au moins ça fonctionne, mais je ne sais pas si cela causera des problèmes à l'avenir ou non.

Si il y a mieux à faire, je suis tout ouie :)

Edited by NeroAdvents
la sauvegarde des informations du produit est déjà géré (see edit history)
Link to comment
Share on other sites

il y a 37 minutes, NeroAdvents a dit :

Au moins ça fonctionne, mais je ne sais pas si cela causera des problèmes à l'avenir ou non.

Si il y a mieux à faire, je suis tout ouie :)

Comparez le code que vous avez mis en place avec les correctifs qui purent être appliqués sur les dernières versions de PrestaShop.

Link to comment
Share on other sites

20 hours ago, Mediacom87 said:

Comparez le code que vous avez mis en place avec les correctifs qui purent être appliqués sur les dernières versions de PrestaShop.

Je garde ce correctif en attendant de pouvoir faire la mise à jour de ma boutique vers une version plus récente de PrestaShop.

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