NeroAdvents Posted July 27, 2022 Share Posted July 27, 2022 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 1 Link to comment Share on other sites More sharing options...
Ali Samie Posted July 27, 2022 Share Posted July 27, 2022 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 moi aussi j'attends une solution Link to comment Share on other sites More sharing options...
NeroAdvents Posted July 27, 2022 Author Share Posted July 27, 2022 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 More sharing options...
hydromel2008 Posted July 27, 2022 Share Posted July 27, 2022 (edited) 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 July 27, 2022 by hydromel2008 (see edit history) Link to comment Share on other sites More sharing options...
NeroAdvents Posted July 27, 2022 Author Share Posted July 27, 2022 (edited) 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 July 27, 2022 by NeroAdvents la sauvegarde des informations du produit est déjà géré (see edit history) Link to comment Share on other sites More sharing options...
Mediacom87 Posted July 27, 2022 Share Posted July 27, 2022 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 More sharing options...
NeroAdvents Posted July 28, 2022 Author Share Posted July 28, 2022 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 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