bobby4722 Posted April 5, 2023 Share Posted April 5, 2023 16 hours ago, Fab20620 said: Bonjour bobby4722, je profite de votre réponse pour savoir si vous pouvez tester sur votre boutique test, l'ajout d'un produit avec 2 tailles distinctes par exemple + une personnalisation, et voir si vous retrouvez la personnalisation dans la commande en backoffice. Merci d'avance. Bonjour, Un exemple pour m'aider à vous aider ? car mes produits n'utilisent pas de personnalisation et les tailles sont définis d'avance Link to comment Share on other sites More sharing options...
bobby4722 Posted April 5, 2023 Share Posted April 5, 2023 14 hours ago, Eolia said: Que'est-ce que vous appeler "Voir" ? Moi, j'ai "Afficher" et les menus apparaissent bien: Oui oui "afficher" pardon. J'ai mis ca sur le profil "stagiaire" Link to comment Share on other sites More sharing options...
Fab20620 Posted April 5, 2023 Share Posted April 5, 2023 2 minutes ago, bobby4722 said: Bonjour, Un exemple pour m'aider à vous aider ? car mes produits n'utilisent pas de personnalisation et les tailles sont définis d'avance Merci bobby4722, sur un produit qui existe avec un choix de taille ou de couleurs, dans l'onglet "personnalisation" il suffit d'ajouter un texte permettant de personnaliser le produit puis de commander ce produit afin de vérifier si les infos de personnalisation sont visibles dans la commande en backoffice. Je suis en train d'installer un prestashop tout neuf pour aussi effectuer ce test. Sur la boutique où je rencontre le problème, ça ne marche pas même si je suis en mode debug et theme par défaut (surcharges désactivées aussi pour être sûr). Link to comment Share on other sites More sharing options...
bobby4722 Posted April 5, 2023 Share Posted April 5, 2023 13 minutes ago, Fab20620 said: Merci bobby4722, sur un produit qui existe avec un choix de taille ou de couleurs, dans l'onglet "personnalisation" il suffit d'ajouter un texte permettant de personnaliser le produit puis de commander ce produit afin de vérifier si les infos de personnalisation sont visibles dans la commande en backoffice. Je suis en train d'installer un prestashop tout neuf pour aussi effectuer ce test. Sur la boutique où je rencontre le problème, ça ne marche pas même si je suis en mode debug et theme par défaut (surcharges désactivées aussi pour être sûr). Bon alors...Merci au moins cela me permet de tester d'autre façon de mettre en vente J'ai pas vraiment compris le fait de renseigner ces 2 lignes pour la personnalisation mais je l'ai fait en pensant que c'était 2 personnalisation distinctes mains non. J'ai tout rentrer en FO, ok. Non ensuite soucis ! - J'ai utilisé le paiement par chèque -> Le mode de paiement n'apparait pas dans le PDF de la proforma. - Pas d'indication sur la personalisation ni sur son tarif en BO + sur la proforma. Link to comment Share on other sites More sharing options...
Fab20620 Posted April 5, 2023 Share Posted April 5, 2023 6 minutes ago, bobby4722 said: Bon alors...Merci au moins cela me permet de tester d'autre façon de mettre en vente J'ai pas vraiment compris le fait de renseigner ces 2 lignes pour la personnalisation mais je l'ai fait en pensant que c'était 2 personnalisation distinctes mains non. J'ai tout rentrer en FO, ok. Non ensuite soucis ! - J'ai utilisé le paiement par chèque -> Le mode de paiement n'apparait pas dans le PDF de la proforma. - Pas d'indication sur la personalisation ni sur son tarif en BO + sur la proforma. Donc cela confirme que le souci ne vient pas de mon installation mais d'un souci quand il y a une personnalisation sur des produits avec déclinaisons, merci beaucoup d'avoir pris le temps de réaliser ce test. 1 Link to comment Share on other sites More sharing options...
bobby4722 Posted April 5, 2023 Share Posted April 5, 2023 6 minutes ago, Fab20620 said: Donc cela confirme que le souci ne vient pas de mon installation mais d'un souci quand il y a une personnalisation sur des produits avec déclinaisons, merci beaucoup d'avoir pris le temps de réaliser ce test. Avec grand plaisir, on est ici pour s'entre aider c'est ce qui fait la force (de départ) de Prestashop Link to comment Share on other sites More sharing options...
La vie en Rose Posted April 5, 2023 Share Posted April 5, 2023 Il y a 6 heures, La vie en Rose a dit : Et en tant que superadmin (comme avec n'importe quel profil), je ne peux plus créer de nouvelle commande dans le module WK Fournisseur. Problème de commande fournisseur résolu, c'était propre au module et le développeur a fait des modifs dans le dossier controllers/admin du module lui-même. Link to comment Share on other sites More sharing options...
La vie en Rose Posted April 6, 2023 Share Posted April 6, 2023 Bonsoir, Je rencontre une petite incohérence sur les tarifs dégressifs : - j'ai toute une gamme de produits avec remise sur quantité. En principe, les remises s'appliquent par quantité sur un produit et par produit. Hors, les remises s'appliquent simplement sur les quantités. Donc pour un panier avec en quantité 1 d'un produit et en quantité 1 d'un second produit (les deux produits possédants des remises sur quantité), les 2 produits en question auront leurs remises comme s'il y en avait 2. Pas très clair, faut un exemple : Dans le panier, il y a : - une robe à 35€ - un jean à 20€ La robe a une remise sur quantité à partir de 2 unités de 10€ Le jean a une remise sur quantité à partir de 2 unités de 2€ Résultat : - la robe passe à 35-10 soit 25€, alors qu'il n'y qu'une robe dans le panier - le jean passe à 20-2 soit 18€, alors qu'il n'y qu'un jean dans le panier Quelqu'un pourrait-il confirmer ce fonctionnement ? J'ai aussi un autre petit problème, en voulant dupliquer un produit en BO depuis la liste produit, j'ai effectué une recherche sur un nom pour sortir le produit que je souhaitais dupliquer. Page blanche avec erreur 500 au bout de quelques minutes de moulinette, et du coup je n'ai plus accès à la liste de produit (la recherche étant encore dans le filtre). Comment faire pour réinitialiser les champs de recherche pour avoir à nouveau accès à la liste des produits ? Cordialement, Fred Link to comment Share on other sites More sharing options...
bobby4722 Posted April 7, 2023 Share Posted April 7, 2023 14 hours ago, La vie en Rose said: Bonsoir, Je rencontre une petite incohérence sur les tarifs dégressifs : - j'ai toute une gamme de produits avec remise sur quantité. En principe, les remises s'appliquent par quantité sur un produit et par produit. Hors, les remises s'appliquent simplement sur les quantités. Donc pour un panier avec en quantité 1 d'un produit et en quantité 1 d'un second produit (les deux produits possédants des remises sur quantité), les 2 produits en question auront leurs remises comme s'il y en avait 2. Pas très clair, faut un exemple : Dans le panier, il y a : - une robe à 35€ - un jean à 20€ La robe a une remise sur quantité à partir de 2 unités de 10€ Le jean a une remise sur quantité à partir de 2 unités de 2€ Résultat : - la robe passe à 35-10 soit 25€, alors qu'il n'y qu'une robe dans le panier - le jean passe à 20-2 soit 18€, alors qu'il n'y qu'un jean dans le panier Quelqu'un pourrait-il confirmer ce fonctionnement ? J'ai aussi un autre petit problème, en voulant dupliquer un produit en BO depuis la liste produit, j'ai effectué une recherche sur un nom pour sortir le produit que je souhaitais dupliquer. Page blanche avec erreur 500 au bout de quelques minutes de moulinette, et du coup je n'ai plus accès à la liste de produit (la recherche étant encore dans le filtre). Comment faire pour réinitialiser les champs de recherche pour avoir à nouveau accès à la liste des produits ? Cordialement, Fred Bonjour, Pour répondre à la seconde partie car les fonctionnalités de la première je ne les utilisent pas: J'ai dupliqué un produit, fait des recherches par nom, référence et catégorie et cela fonctionne sans soucis. Bonne journée. Link to comment Share on other sites More sharing options...
La vie en Rose Posted April 8, 2023 Share Posted April 8, 2023 Le 07/04/2023 à 9:41 AM, bobby4722 a dit : Bonjour, Pour répondre à la seconde partie car les fonctionnalités de la première je ne les utilisent pas: J'ai dupliqué un produit, fait des recherches par nom, référence et catégorie et cela fonctionne sans soucis. Bonne journée. Merci d'avoir testé chez vous. J'avais dupliqué d'autres produits un peu plus tôt dans la journée avec la même méthode sans soucis, peut-être un terme trop générique pour le coup... En tout cas, si ça arrive à quelqu'un, pour avoir à nouveau accès à la liste, il suffit de supprimer les cookies du navigateur. Cordialement, Fred Link to comment Share on other sites More sharing options...
docmusicstation Posted April 8, 2023 Share Posted April 8, 2023 (edited) Bonjour a tous J'ai un probleme avec ma 1.6.2.6 Installée sur le serveur OVH m'indique un surcroit d'acces BDD. J'ai du repasser en 1.6.1.25 Je teste ma config en local avec le schema suivant : repertoire Backup pointe vers BDD1 en version 1.6.1.25 repertoire Backup2 pointe vers BDD en version 1.6.2.6 Quand je demande une sauvegarde dans ma 1.6.2.6 il m'en genere deux ! (une venant de BDD et une venant de BDD1) La 1.6.2.6 accede aux deux bases de données ! alors que mes fichiers de config sont correctement paramétrés. quand je demande une sauvegarde dans ma 1.6.1.25 il m'en genere une seule (ce qui est normal) J'avais le meme schema d'install sur le serveur OVH un en prod et un en secours. Edited April 8, 2023 by docmusicstation (see edit history) Link to comment Share on other sites More sharing options...
La vie en Rose Posted April 8, 2023 Share Posted April 8, 2023 Très bizarre ça, je ne suis pas expert, mais à tout hasard (ça n'a pas forcément à voir), vous avez changé sur le backup 2 l'url en SEO pour bien les différencier ? Et les deux BDD ont-elles des noms distincts ? Après, vaut mieux faire une sauvegarde de la BDD par phpMyAdmin. Cordialement, Fred Link to comment Share on other sites More sharing options...
docmusicstation Posted April 8, 2023 Share Posted April 8, 2023 2 hours ago, La vie en Rose said: Très bizarre ça, je ne suis pas expert, mais à tout hasard (ça n'a pas forcément à voir), vous avez changé sur le backup 2 l'url en SEO pour bien les différencier ? Et les deux BDD ont-elles des noms distincts ? Après, vaut mieux faire une sauvegarde de la BDD par phpMyAdmin. Cordialement, Fred Bsr oui url est bien differente et les deux BDD ont un nom different a un chiffre pret Denis Link to comment Share on other sites More sharing options...
Eolia Posted April 10, 2023 Author Share Posted April 10, 2023 La version 1.6.2.7 est sortie #################################### # Changelog v1.6.2.7 - (2023-04-10) #################################### - Correctif des micro-données pour le fil d'ariane depuis Tools.php(Le breadcrumb.tpl de votre thème sera à remplacer par celui par défaut) - Correctif dans OrderHistory.php pour la génération du order_conf_product_list.tpl (Produits customs) - Correctif sur certains sujet d'emails non traduisibles - Correctif d'affichage du product-list dans les commandes en BO et dans le mail de confirmation de commande - Correctif dans Wharehouse.php - Ajout du paramètre non-configurable pour les meta des controleurs de type module ($locked_controllers) - Reprise du thème par défaut pour mise à jour dynamique des prix des produits avec custom - Correctif sur le mail de confirmation de commande (contenu du product-list) - Correctif sur le form.tpl de création de commande en BO (Compatibilité JQuery 3) - Mise en conformité PHP8 du module StripeOfficial - Correctif sur Tab.php (en cas de droits non superadmin) - Amélioration du filtrage sur les caractéristiques multiples déjà sélectionnées (BO) - Correctif sur l'affichage des customs dans le cas de produits avec déclinaisons - Prise en compte des prix dégressifs pour les customs en FO (pour le thème par défaut) - Correctif sur la pagination des pages des catégories CMS (BO) - Ajout de la possibilité de valider les points manuellement dans le module fidélité (Loyalty) 2 2 Link to comment Share on other sites More sharing options...
Fab20620 Posted April 10, 2023 Share Posted April 10, 2023 2 hours ago, Eolia said: La version 1.6.2.7 est sortie Merci 👏💪 1 Link to comment Share on other sites More sharing options...
Sda33 Posted April 11, 2023 Share Posted April 11, 2023 (edited) Un très grand merci pour cette nouvelle version Eolia, qui règle une grosse partie de mes problèmes et me permet d'avancer ! 😀🥳 Produits personnalisés > Je n'ai plus les "warning" en FO dans le panier, ni en BO détail d'une commande > Tout est OK maintenant. Merci ! (l'erreur était : Undefined index: customizationQuantityTotal" (idem pour customizationQuantityRefunded et customizationQuantityReturned)) Je rencontre en BO les problèmes suivants : 1) Affichage du détail des commandes passées avant la 1.6.2.7 : les produits personnalisés remontent bien dans le détail des commandes, mais pas la personnalisation associée (ils remontent comme des produits classiques qui n'auraient pas de personnalisation) Pour une commande que je passe après la mise à jour en 1.6.2.7, tout est ok. 2) Toujours le même problème sur l'édition d'une fiche produit, onglet "Personnalisation", le dernier champ "text" n'apparaît pas à l'écran et je ne peux donc pas l'éditer. Pour memo j'essaie de déboguer et je cherche où est généré {$display_text_labels} que l'on a ligne 119 de customization.tpl dans [admin]/themes/default/template/controllers/products, parce qu'il oublie une ligne pourtant présente en BDD. Je ne sais pas si le fait que je sois toujours en PHP 7 peut être un bout d'explication ? Edited April 11, 2023 by Sda33 (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted April 11, 2023 Author Share Posted April 11, 2023 (edited) Il y a 2 heures, Sda33 a dit : 1) Affichage du détail des commandes passées avant la 1.6.2.7 : les produits personnalisés remontent bien dans le détail des commandes, mais pas la personnalisation associée (ils remontent comme des produits classiques qui n'auraient pas de personnalisation) Pour les commandes passées avant, si l'id_customization n'a pas été rempli il est impossible que le CMS les invente. Pas d'autre solution que de les remplir dans la bdd à la mano Il y a 2 heures, Sda33 a dit : 2) Toujours le même problème sur l'édition d'une fiche produit, onglet "Personnalisation", le dernier champ "text" n'apparaît pas à l'écran et je ne peux donc pas l'éditer. Pour memo j'essaie de déboguer et je cherche où est généré {$display_text_labels} que l'on a ligne 119 de customization.tpl dans [admin]/themes/default/template/controllers/products, parce qu'il oublie une ligne pourtant présente en BDD. Votre problème est quand même très particulier et je n'ai pas de piste simple. Je soupçonne un js externe (module chargé dans le backofficeheader ?) Pour info cette partie est générée depuis l'AdminProductController.php, ligne 4293 'display_text_labels' => $this->_displayLabelFields($obj, $labels, $this->_languages, Configuration::get('PS_LANG_DEFAULT'), Product::CUSTOMIZE_TEXTFIELD), protected function _displayLabelFields(&$obj, &$labels, $languages, $default_language, $type) { $content = ''; $type = (int)($type); $labelGenerated = array(Product::CUSTOMIZE_FILE => (isset($labels[Product::CUSTOMIZE_FILE]) ? count($labels[Product::CUSTOMIZE_FILE]) : 0), Product::CUSTOMIZE_TEXTFIELD => (isset($labels[Product::CUSTOMIZE_TEXTFIELD]) ? count($labels[Product::CUSTOMIZE_TEXTFIELD]) : 0)); $fieldIds = $this->_getCustomizationFieldIds($labels, $labelGenerated, $obj); if (isset($labels[$type])) { foreach ($labels[$type] as $id_customization_field => $label) { $content .= $this->_displayLabelField($label, $languages, $default_language, $type, $fieldIds, (int)$id_customization_field); } } return $content; } protected function _getCustomizationFieldIds($labels, $alreadyGenerated, $obj) { $customizableFieldIds = array(); if (isset($labels[Product::CUSTOMIZE_FILE])) { foreach ($labels[Product::CUSTOMIZE_FILE] as $id_customization_field => $label) { $customizableFieldIds[] = 'label_'.Product::CUSTOMIZE_FILE.'_'.(int)($id_customization_field); } } if (isset($labels[Product::CUSTOMIZE_TEXTFIELD])) { foreach ($labels[Product::CUSTOMIZE_TEXTFIELD] as $id_customization_field => $label) { $customizableFieldIds[] = 'label_'.Product::CUSTOMIZE_TEXTFIELD.'_'.(int)($id_customization_field); } } $j = 0; for ($i = $alreadyGenerated[Product::CUSTOMIZE_FILE]; $i < (int)($this->getFieldValue($obj, 'uploadable_files')); $i++) { $customizableFieldIds[] = 'newLabel_'.Product::CUSTOMIZE_FILE.'_'.$j++; } $j = 0; for ($i = $alreadyGenerated[Product::CUSTOMIZE_TEXTFIELD]; $i < (int)($this->getFieldValue($obj, 'text_fields')); $i++) { $customizableFieldIds[] = 'newLabel_'.Product::CUSTOMIZE_TEXTFIELD.'_'.$j++; } return implode('¤', $customizableFieldIds); } Depuis Product.php: public function getCustomizationFields($id_lang = false, $id_shop = null) { if (!Customization::isFeatureActive()) { return false; } if (Shop::isFeatureActive() && !$id_shop) { $id_shop = (int)Context::getContext()->shop->id; } if (!$result = Db::getInstance()->executeS(' SELECT cf.`id_customization_field`, cf.`type`, cf.`required`, cf.`price`, cfl.`name`, cfl.`id_lang` FROM `'._DB_PREFIX_.'customization_field` cf NATURAL JOIN `'._DB_PREFIX_.'customization_field_lang` cfl WHERE cf.`id_product` = '.(int)$this->id.($id_lang ? ' AND cfl.`id_lang` = '.(int)$id_lang : ''). ($id_shop ? ' AND cfl.`id_shop` = '.$id_shop : '').' ORDER BY cf.`id_customization_field`')) { return false; } // Add taxes for display if (is_object(Context::getContext()->cart) && Context::getContext()->cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')} != null) { $id_address = Context::getContext()->cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')}; $address = Address::initialize((int)$id_address, true); } else { $address = Address::initialize(); } $tax_calculator = TaxManagerFactory::getManager($address, $this->id_tax_rules_group)->getTaxCalculator(); foreach ($result as &$row) { $row['price_wt'] = $tax_calculator->addTaxes($row['price']); } if ($id_lang) { return $result; } $customization_fields = array(); foreach ($result as $row) { $customization_fields[(int)$row['type']][(int)$row['id_customization_field']][(int)$row['id_lang']] = $row; } return $customization_fields; } Edited April 11, 2023 by Eolia (see edit history) Link to comment Share on other sites More sharing options...
Sda33 Posted April 11, 2023 Share Posted April 11, 2023 (edited) 19 minutes ago, Eolia said: Pour les commandes passées avant, si l'id_customization n'a pas été rempli il est impossible que le CMS les invente. Pas d'autre solution que de les remplir dans la bdd à la mano Oui c'est exactement ça, je viens justement de mettre le doigt dessus. Le nouveau champ "product_customization_id" de la table order_detail est NULL pour ces produits, je vais pouvoir faire une requête pour le remplir a posteriori, pas de souci. 19 minutes ago, Eolia said: Votre problème est quand même très particulier et je n'ai pas de piste simple. Je soupçonne un js externe (module chargé dans le backofficeheader ?) Pour info cette partie est générée depuis l'AdminProductController.php, ligne 4293 Merci beaucoup je vais regarder en détail, je vous tiens au courant ! 🧐 Et oui c'est très curieux, j'ai l'impression d'être la seule dans ce cas. Je le reproduits pourtant sur 2 sites différents, dont un sans aucun autre produit actif et qui n'a d'ailleurs jamais accueilli de produits avec perso ni même déclinaison. Idem même après avoir désactivé toutes les surcharges et modules. C'est pourquoi je pensais que cela pouvait venir du PHP que je ne veux pas upgrader avant d'avoir touché au 3è et dernier shop... je cherche Juste une réponse complémentaire, dans hook BackOfficeHeader je n'ai que : - Configurateur de thème - Paypal - Payline Edited April 11, 2023 by Sda33 (see edit history) Link to comment Share on other sites More sharing options...
Fab20620 Posted April 11, 2023 Share Posted April 11, 2023 2 hours ago, Sda33 said: 2) Toujours le même problème sur l'édition d'une fiche produit, onglet "Personnalisation", le dernier champ "text" n'apparaît pas à l'écran et je ne peux donc pas l'éditer. J'ai aussi ce souci pour les produits dont les champs de personnalisation étaient existants. Par exemple si sur un produit j'ai 2 champs (nom et prénom), en front on voit bien les 2 et tout marche bien mais en back sur la fiche produit, seul le champ "nom" apparait. Link to comment Share on other sites More sharing options...
Sda33 Posted April 11, 2023 Share Posted April 11, 2023 1 minute ago, Fab20620 said: J'ai aussi ce souci pour les produits dont les champs de personnalisation étaient existants. Par exemple si sur un produit j'ai 2 champs (nom et prénom), en front on voit bien les 2 et tout marche bien mais en back sur la fiche produit, seul le champ "nom" apparait. Oui c'est exactement cela sur les produits existants. Et sur les nouveaux, si je demande à ajouter 2 champs de perso, je n'en ai qu'un qui s'affiche, en gros j'ai toujours un champ manquant, et c'est toujours le dernier de la liste. Link to comment Share on other sites More sharing options...
Sda33 Posted April 11, 2023 Share Posted April 11, 2023 1 hour ago, Sda33 said: 1 hour ago, Eolia said: Votre problème est quand même très particulier et je n'ai pas de piste simple. Je soupçonne un js externe (module chargé dans le backofficeheader ?) Pour info cette partie est générée depuis l'AdminProductController.php, ligne 4293 Merci beaucoup je vais regarder en détail, je vous tiens au courant ! 🧐 J'avance un peu, je suis sur un produit avec 3 champs en BDD, 3 champs bien visibles en FO, seulement 2 visibles en BO. Les champs ont les id 158, 159 et 160. Le 160 ne s'affiche pas en BO. La requête getCustomizationFields de Product.php me renvoie bien les 3 champs (cf capture d'écran). Mais la fonction _getCustomizationFieldIds($labels, $alreadyGenerated, $obj) ne me retourne que les deux premiers. Voir capture d'écran, j'affiche le return implode('¤', $customizableFieldIds); En remontant un peu (ligne 4249), je sais que j'ai un problème sur AdminProductsController dans la function _displayLabelFields(...) En effet la phrase Product::CUSTOMIZE_TEXTFIELD => (isset($labels[Product::CUSTOMIZE_TEXTFIELD]) ? count($labels[Product::CUSTOMIZE_TEXTFIELD]) : 0) me retourne 2 au lieu de 3 (enfin il me semble qu'il devrait retourner 3) A suivre mais si vous avez des pistes... ou si je fais fausse route n'hésitez pas aussi à me le dire. Link to comment Share on other sites More sharing options...
Sda33 Posted April 11, 2023 Share Posted April 11, 2023 (edited) [RÉSOLU : J'AI MIGRÉ MySQL, version 8.0 pour remplacer 5.7, tout OK] Pour memo le problème résolu : Rebonjour, je suis désolée, j'ai aussi un problème pour entrer dans le détail (clic sur "Afficher") d'une Caractéristique. MySql n'a pas l'air d'aimer la fonction ROW_NUMBER et malgré mes recherches je n'ai pas réussi à la faire fonctionner même au plus simplement dans mon éditeur SQL. Version MySQL : 5.7 (dois-je migrer en MySQL 8.0 ? si oui y a-t-il des précautions à prendre ?) Version PHP : 7.1 (qui fait tourner mon site en prod, en attendant de valider sur la preprod le nouveau prestashop) Version Prestashop : 1.6.2.7 (mais je n'avais pas ce problème avec la 1.6.2.6) Edited April 11, 2023 by Sda33 réponse trouvée (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted April 11, 2023 Author Share Posted April 11, 2023 il y a 6 minutes, Sda33 a dit : Rebonjour, je suis désolée, j'ai aussi un problème pour entrer dans le détail (clic sur "Afficher") d'une Caractéristique. MySql n'a pas l'air d'aimer la fonction ROW_NUMBER et malgré mes recherches je n'ai pas réussi à la faire fonctionner même au plus simplement dans mon éditeur SQL. Version MySQL : 5.7 (dois-je migrer en MySQL 8.0 ? si oui y a-t-il des précautions à prendre ?) Version PHP : 7.1 (qui fait tourner mon site en prod, en attendant de valider sur la preprod le nouveau prestashop) Version Prestashop : 1.6.2.7 (mais je n'avais pas ce problème avec la 1.6.2.6) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(ORDER BY fvl.value) AS i FROM `ps_feature_value_lang' at line 3 Merci. Ce code n'a pas changé entre la 26 et la 27. par contre il est appelé si la caractéristique n'a pas de filtre défini (ordre alpha ou numérique) MariaDB autorise cette fonction depuis la 10.2 et MySQL depuis la 8. Il n'y a pas de risque pour Presta à passer en MySQL8 1 Link to comment Share on other sites More sharing options...
La vie en Rose Posted April 11, 2023 Share Posted April 11, 2023 Bonjour, Génial merci pour cette mise à jour! Je ne l'ai pas encore installé en prod, mais je viens de me rendre compte d'un souci, qui serait lié à la version de Jquery, à moins que ce ne soit mon thème qui fait des siennes. En Front Office, lorsqu'on a des accessoires sur une fiche produit, ces derniers s'affichent mais le clic ne fonctionne pas, aussi bien pour aller sur la fiche accessoire que l'ajout au panier de l'accessoire. En passant à Jquery 1.11.0, ce soucis disparaît et tout fonctionne. J'ai ce problème sur la v1.2.5, v1.2.6 et v1.2.7 Quelqu'un pourrait confirmer la chose ? Cordialement, Fred Link to comment Share on other sites More sharing options...
Sda33 Posted April 11, 2023 Share Posted April 11, 2023 16 minutes ago, La vie en Rose said: En passant à Jquery 1.11.0, ce soucis disparaît et tout fonctionne. J'ai ce problème sur la v1.2.5, v1.2.6 et v1.2.7 Quelqu'un pourrait confirmer la chose ? Bonsoir, de mon côté je n'ai pas de problème sur les accessoires (produits liés) ni pour l'ajout au panier, ni pour le clic fiche produit. Sauf erreur je suis en 3.6.3. Link to comment Share on other sites More sharing options...
La vie en Rose Posted April 11, 2023 Share Posted April 11, 2023 il y a 9 minutes, Sda33 a dit : Bonsoir, de mon côté je n'ai pas de problème sur les accessoires (produits liés) ni pour l'ajout au panier, ni pour le clic fiche produit. Sauf erreur je suis en 3.6.3. Merci pour le retour, je vais tester avec le thème de base et en fonction voir pour récupérer tout ça sur mon thème. Link to comment Share on other sites More sharing options...
bobby4722 Posted April 11, 2023 Share Posted April 11, 2023 20 hours ago, Eolia said: La version 1.6.2.7 est sortie #################################### # Changelog v1.6.2.7 - (2023-04-10) #################################### - Correctif des micro-données pour le fil d'ariane depuis Tools.php(Le breadcrumb.tpl de votre thème sera à remplacer par celui par défaut) - Correctif dans OrderHistory.php pour la génération du order_conf_product_list.tpl (Produits customs) - Correctif sur certains sujet d'emails non traduisibles - Correctif d'affichage du product-list dans les commandes en BO et dans le mail de confirmation de commande - Correctif dans Wharehouse.php - Ajout du paramètre non-configurable pour les meta des controleurs de type module ($locked_controllers) - Reprise du thème par défaut pour mise à jour dynamique des prix des produits avec custom - Correctif sur le mail de confirmation de commande (contenu du product-list) - Correctif sur le form.tpl de création de commande en BO (Compatibilité JQuery 3) - Mise en conformité PHP8 du module StripeOfficial - Correctif sur Tab.php (en cas de droits non superadmin) - Amélioration du filtrage sur les caractéristiques multiples déjà sélectionnées (BO) - Correctif sur l'affichage des customs dans le cas de produits avec déclinaisons - Prise en compte des prix dégressifs pour les customs en FO (pour le thème par défaut) - Correctif sur la pagination des pages des catégories CMS (BO) - Ajout de la possibilité de valider les points manuellement dans le module fidélité (Loyalty) Bonjour @Eolia et merci pour cette mise à jour Je viens de tester sur la version de test installée et je pensais que les caractéristique avaient étés augmentés pour accepter + de 255 caractères. Est-ce que prochainement ce sera ok ? Question également tant que nous n'avons pas encore migré vers la 1.6.2.7 (il faudrait se le caler ) est-ce que cela changera quelque chose sur ma vieille 1.6.1.26 de passer de MySQL 5.7 à la 8 ? Cela fonctionne sur les deux ? Link to comment Share on other sites More sharing options...
Eolia Posted April 11, 2023 Author Share Posted April 11, 2023 il y a 4 minutes, La vie en Rose a dit : Merci pour le retour, je vais tester avec le thème de base et en fonction voir pour récupérer tout ça sur mon thème. certaines fonctions (dépréciées depuis jQuery 1.7 https://api.jquery.com/category/deprecated/deprecated-1.7/ ) sont à présent interdites dans JQuery 3 comme .live() qui doit être remplacé par .on() $('#mon_ancre').live('click', function() { devient $(document).on('click', '#mon_ancre', function() { Link to comment Share on other sites More sharing options...
Eolia Posted April 11, 2023 Author Share Posted April 11, 2023 il y a 3 minutes, bobby4722 a dit : Bonjour @Eolia et merci pour cette mise à jour Je viens de tester sur la version de test installée et je pensais que les caractéristique avaient étés augmentés pour accepter + de 255 caractères. Est-ce que prochainement ce sera ok ? Question également tant que nous n'avons pas encore migré vers la 1.6.2.7 (il faudrait se le caler ) est-ce que cela changera quelque chose sur ma vieille 1.6.1.26 de passer de MySQL 5.7 à la 8 ? Cela fonctionne sur les deux ? Les valeurs de caractéristiques sont passées en type TEXT (65 535 caractères). Vous voulez la même chose pour les caractéristiques aussi ? Link to comment Share on other sites More sharing options...
La vie en Rose Posted April 11, 2023 Share Posted April 11, 2023 il y a 13 minutes, Eolia a dit : certaines fonctions (dépréciées depuis jQuery 1.7 https://api.jquery.com/category/deprecated/deprecated-1.7/ ) sont à présent interdites dans JQuery 3 comme .live() qui doit être remplacé par .on() $('#mon_ancre').live('click', function() { devient $(document).on('click', '#mon_ancre', function() { Ah oui en plus je l'avais lu un peu plus haut dans les messages, merci!!! Je vais modifier ça! Bonne soirée, Fred Link to comment Share on other sites More sharing options...
bobby4722 Posted April 11, 2023 Share Posted April 11, 2023 9 minutes ago, Eolia said: Les valeurs de caractéristiques sont passées en type TEXT (65 535 caractères). Vous voulez la même chose pour les caractéristiques aussi ? Oups alors je ne sais pas si on parle bien de la même chose mais j'ai essayé de créer une valeur de caractéristique qui ferait plus de 255 caractères, le système n'a pas été d'accord 😅 Link to comment Share on other sites More sharing options...
Eolia Posted April 11, 2023 Author Share Posted April 11, 2023 il y a 3 minutes, bobby4722 a dit : Oups alors je ne sais pas si on parle bien de la même chose mais j'ai essayé de créer une valeur de caractéristique qui ferait plus de 255 caractères, le système n'a pas été d'accord 😅 Ok, c'est un oubli de ma part. La taille a été modifiée dans la bdd mais j'ai oublié de supprimer sa restriction dans /classes/FeatureValue.php il faut enlever : , 'size' => 255 ce qui devient: 'value' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'required' => true), 1 Link to comment Share on other sites More sharing options...
La vie en Rose Posted April 12, 2023 Share Posted April 12, 2023 Il y a 16 heures, Eolia a dit : certaines fonctions (dépréciées depuis jQuery 1.7 https://api.jquery.com/category/deprecated/deprecated-1.7/ ) sont à présent interdites dans JQuery 3 comme .live() qui doit être remplacé par .on() $('#mon_ancre').live('click', function() { devient $(document).on('click', '#mon_ancre', function() { Bonjour, Je viens de vérifier le product.js du thème et tout est en ordre, mais en testant sur différents appareils/navigateurs, il semble que ce soit uniquement avec Vivaldi et Brave que le clic ne fonctionne pas. Sinon Chrome/Firefox/Edge/Safari/Opera c'est bon. C'était juste à titre d'info, j'imagine qu'une prochaine mise à jour de ces navigateurs réglera ça, le soucis ne venant pas de presta. Cordialement, Fred Link to comment Share on other sites More sharing options...
docmusicstation Posted April 12, 2023 Share Posted April 12, 2023 On 4/11/2023 at 4:39 PM, Eolia said: Ce code n'a pas changé entre la 26 et la 27. par contre il est appelé si la caractéristique n'a pas de filtre défini (ordre alpha ou numérique) MariaDB autorise cette fonction depuis la 10.2 et MySQL depuis la 8. Il n'y a pas de risque pour Presta à passer en MySQL8 Attention en msql8 pour les produits avec declinaison : En msql8 j'ai des produits avec declinaison et les quantités son inversées entre BO et FO ! BO 3 rouges 1 jaune alors qu'en FO j ai 3 jaunes et 1 rouge C'est le seul soucis que j ai pu remarquer en mysql8 sur presta 1.6 Link to comment Share on other sites More sharing options...
Eolia Posted April 13, 2023 Author Share Posted April 13, 2023 Il y a 14 heures, docmusicstation a dit : Attention en msql8 pour les produits avec declinaison : En msql8 j'ai des produits avec declinaison et les quantités son inversées entre BO et FO ! BO 3 rouges 1 jaune alors qu'en FO j ai 3 jaunes et 1 rouge C'est le seul soucis que j ai pu remarquer en mysql8 sur presta 1.6 Aucun module n'est rattaché à la gestion des déclinaisons sur votre site ? Link to comment Share on other sites More sharing options...
docmusicstation Posted April 13, 2023 Share Posted April 13, 2023 6 hours ago, Eolia said: Aucun module n'est rattaché à la gestion des déclinaisons sur votre site ? Je pense que non Je n ai pas de module specifique pour les declinaisons. Link to comment Share on other sites More sharing options...
bobby4722 Posted April 14, 2023 Share Posted April 14, 2023 Bonjour @Eolia Est-ce qu'il est possible ou est-ce qu'il sera possible sur une future version de changer l'ordre des produits dans les suggestion "accessoires" et "dans la même catégorie" par certains critères comme l'id produit, ou la pertinence du choix des client vis à vis des produits connexes ou autres... Merci et très bon weekend Link to comment Share on other sites More sharing options...
Eolia Posted April 14, 2023 Author Share Posted April 14, 2023 Accessoires, ça dépend du core donc oui, on peut envisager la chose mais il faudrait être plus explicite sur les critères de tri/ordre. Dans la même catégorie, c'est un module donc ce n'est pas ma priorité. 1 Link to comment Share on other sites More sharing options...
bobby4722 Posted April 17, 2023 Share Posted April 17, 2023 On 4/14/2023 at 9:43 PM, Eolia said: Accessoires, ça dépend du core donc oui, on peut envisager la chose mais il faudrait être plus explicite sur les critères de tri/ordre. Dans la même catégorie, c'est un module donc ce n'est pas ma priorité. Bonjour Pour "Dans la même catégorie" je ne savais pas et je vais donc voir ce qu'il est possible de faire si un réglage est disponible. Le soucis c'est que pour les deux exemples ici, les propositions de produits sont du plus vieux ID au plus récent (gauche vers la droite). Ce qu'il serait cool serait par exemple de pouvoir trier les id produits différemment, ou aléatoirement par exemple, ou tout autre idées qui viendrait à ceux que cela puisse intéresser pour fonction Merci et bonne journée. Link to comment Share on other sites More sharing options...
Eolia Posted April 17, 2023 Author Share Posted April 17, 2023 Le module productcategory utilise une fonction qui essaye de "placer" les produits proches autour avec une position intermédiaire mais le résultat n'est pas concluant^^ // Get infos $category_products = $category->getProducts($this->context->language->id, 1, 100); /* 100 products max. */ $nb_category_products = (int)count($category_products); $middle_position = 0; // Remove current product from the list if (is_array($category_products) && count($category_products)) { foreach ($category_products as $key => $category_product) { if ($category_product['id_product'] == $id_product) { unset($category_products[$key]); break; } } $taxes = Product::getTaxCalculationMethod(); if (Configuration::get('PRODUCTSCATEGORY_DISPLAY_PRICE')) { foreach ($category_products as $key => $category_product) { if ($category_product['id_product'] != $id_product) { if ($taxes == 0 || $taxes == 2) { $category_products[$key]['displayed_price'] = Product::getPriceStatic( (int)$category_product['id_product'], true, null, 2 ); } elseif ($taxes == 1) { $category_products[$key]['displayed_price'] = Product::getPriceStatic( (int)$category_product['id_product'], false, null, 2 ); } } } } // Get positions $middle_position = (int)round($nb_category_products / 2, 0); $product_position = $this->getCurrentProduct($category_products, (int)$id_product); // Flip middle product with current product if ($product_position) { $tmp = $category_products[$middle_position - 1]; $category_products[$middle_position - 1] = $category_products[$product_position]; $category_products[$product_position] = $tmp; } // If products tab higher than 30, slice it if ($nb_category_products > 30) { $category_products = array_slice($category_products, $middle_position - 15, 30, true); $middle_position = 15; } } Link to comment Share on other sites More sharing options...
bobby4722 Posted April 17, 2023 Share Posted April 17, 2023 29 minutes ago, Eolia said: Le module productcategory utilise une fonction qui essaye de "placer" les produits proches autour avec une position intermédiaire mais le résultat n'est pas concluant^^ // Get infos $category_products = $category->getProducts($this->context->language->id, 1, 100); /* 100 products max. */ $nb_category_products = (int)count($category_products); $middle_position = 0; // Remove current product from the list if (is_array($category_products) && count($category_products)) { foreach ($category_products as $key => $category_product) { if ($category_product['id_product'] == $id_product) { unset($category_products[$key]); break; } } $taxes = Product::getTaxCalculationMethod(); if (Configuration::get('PRODUCTSCATEGORY_DISPLAY_PRICE')) { foreach ($category_products as $key => $category_product) { if ($category_product['id_product'] != $id_product) { if ($taxes == 0 || $taxes == 2) { $category_products[$key]['displayed_price'] = Product::getPriceStatic( (int)$category_product['id_product'], true, null, 2 ); } elseif ($taxes == 1) { $category_products[$key]['displayed_price'] = Product::getPriceStatic( (int)$category_product['id_product'], false, null, 2 ); } } } } // Get positions $middle_position = (int)round($nb_category_products / 2, 0); $product_position = $this->getCurrentProduct($category_products, (int)$id_product); // Flip middle product with current product if ($product_position) { $tmp = $category_products[$middle_position - 1]; $category_products[$middle_position - 1] = $category_products[$product_position]; $category_products[$product_position] = $tmp; } // If products tab higher than 30, slice it if ($nb_category_products > 30) { $category_products = array_slice($category_products, $middle_position - 15, 30, true); $middle_position = 15; } } Merci je vais regarder pour les accessoires Pour les catégories dans le réglage du module j'ai trouvé 3 réglages mais c'est un peu confus et cela n'a pas fonctionné (je n'ai pas vu de changement). Finalement je ne pense pas que cela y touche. Link to comment Share on other sites More sharing options...
Sda33 Posted April 21, 2023 Share Posted April 21, 2023 Bonjour @Eolia, une question rapide... Est-ce possible qu'il y ait une différence entre : - Une migration 1.6.1.24 vers 1.6.2.6 PUIS 1.6.2.7 - Une migration 1.6.1.24 vers 1.6.2.7 ? Le premier cas correspond à ma preprod, qui était une copie conforme de la prod, et tout s'était relativement bien passé. Le second cas correspond à ma prod, sur laquelle j'ai maintenant des problèmes que je n'avais pas eus sur la migration sur la preprod, par exemple : - FO : fiches produits avec champs personnalisés = le prix ne s'affiche pas (il s'affiche une demi-seconde puis se transforme en "NaN,00€ TTC") - FO : je me connecte pour passer commande, j'ai sans arrêt l'erreur en rouge "Numéro de téléphone invalide. Vous devez ajouter un numéro de téléphone au moins pour cette adresse". Je n'ai pas le problème sur ma preprod elle aussi en 1.6.2.7 (mais je constate qu'en preprod aussi mon numéro de téléphone a été transformé en +33). >> En fait mon numéro de téléphone se retrouve automatiquement préfixé "+33" et cela semble poser problème, ce qui n'est pas normal. Je remets un 06 classique depuis le BO, qui est à nouveau transforme en +33 en FO (je ne sais pas à quel moment de la navigation) et pose problème. - FO : pour l'affichage des modes de règlement, sur le module Paypal j'ai les erreurs : Notice: Undefined index: use_paypal_in_context Notice: Trying to get property of non-object Sur le fichier : in /(...)/cache/smarty/compile/50/f5/fa/50f5fa9795da6ee6d4c511209d7c7c9094d4f362_0.file.express_checkout_payment.tpl.php Lignes 30 et 87 ligne.30 <?php if ($_smarty_tpl->tpl_vars['use_paypal_in_context']->value) {?> ligne.87 <?php if ($_smarty_tpl->tpl_vars['use_paypal_in_context']->value) {?> J'ai bien sûr vidé le cache Prestashop (depuis le BO + FP), et mon cache navigateur. Ces erreurs-là je ne les avais pas quand j'ai migré ma preprod en 1.6.2.6 puis fait la mise à jour 1.6.2.7, d'où ma question initiale. Ai-je fait quelque chose de travers ? Merci. Link to comment Share on other sites More sharing options...
Eolia Posted April 21, 2023 Author Share Posted April 21, 2023 Non, normalement pas de différences car le processus d'update passe par toutes les étapes de version. il y a 43 minutes, Sda33 a dit : - FO : fiches produits avec champs personnalisés = le prix ne s'affiche pas (il s'affiche une demi-seconde puis se transforme en "NaN,00€ TTC") Mettez à jour le fichier product.js de votre thème et cart-summary.js (les originaux sont dispos dans le thème default-bootstrap) il y a 45 minutes, Sda33 a dit : En fait mon numéro de téléphone se retrouve automatiquement préfixé "+33" et cela semble poser problème, ce qui n'est pas normal. Je remets un 06 classique depuis le BO, qui est à nouveau transforme en +33 en FO Les n° de téléphones sont normalisés depuis la version 1.6.1.29 (voir le changelog https://eoliashop.com/prestashop-new ) il y a 47 minutes, Sda33 a dit : - FO : pour l'affichage des modes de règlement, sur le module Paypal j'ai les erreurs : Notice: Undefined index: use_paypal_in_context Notice: Trying to get property of non-object Si le module Paypal s'est bien mis à jour dans le répertoire / module cette variable n'existe plus dans /modules/paypal/views/templates/hook/express_checkout_payment.tpl par contre il existe peut-être toujours l'ancienne version dans le répertoire /modules/paypal/ de votre thème. Link to comment Share on other sites More sharing options...
Sda33 Posted April 21, 2023 Share Posted April 21, 2023 Merci pour votre réponse. 10 minutes ago, Eolia said: Les n° de téléphones sont normalisés depuis la version 1.6.1.29 (voir le changelog https://eoliashop.com/prestashop-new ) Oui et c'est très bien mais en remontant l'erreur j'ai corrigé \tools\PhoneFormat en modifiant pour FR la valeur du max_length à 10 au lieu de 9. Ca a résolu mon problème. Mon téléphone était bien formaté à la base, un 06... transformé en +336... par le FO, tout correct. 20 minutes ago, Eolia said: Mettez à jour le fichier product.js de votre thème et cart-summary.js (les originaux sont dispos dans le thème default-bootstrap) Merci ! Je l'avais fait pour product.js mais pas pour cart-summary.js, je suis désolée + question subsidiaire : comment désactive-t-on l'option du verrouillage du panier ? J'ai bien vu que c'était une mise à jour 1.6.1.28 mais si j'ai bien compris elle doit s'activer une fois le mode de paiement choisi ("Blocage également du panier lors du choix de méthode de paiement (Anti-fraude)"). Mais je suis allée jusqu'à l'étape de paiement, sans en choisir un, puis j'ai voulu poursuivre ma navigation pour compléter mon panier, et je découvre que ne peux plus rien ajouter. C'est certainement une bonne option pour certains, mais je ne souhaite pas la mettre en place sur ma boutique, je ne la trouve pas facile à comprendre pour un client. Merci Link to comment Share on other sites More sharing options...
Eolia Posted April 21, 2023 Author Share Posted April 21, 2023 (edited) il y a 17 minutes, Sda33 a dit : Oui et c'est très bien mais en remontant l'erreur j'ai corrigé \tools\PhoneFormat en modifiant pour FR la valeur du max_length à 10 au lieu de 9. Ca a résolu mon problème. Mon téléphone était bien formaté à la base, un 06... transformé en +336... par le FO, tout correct. Pas logique. Le code supprime le 1er 0, il ne doit donc rester que 9 chiffres. il y a 17 minutes, Sda33 a dit : Mais je suis allée jusqu'à l'étape de paiement, sans en choisir un, puis j'ai voulu poursuivre ma navigation pour compléter mon panier, et je découvre que ne peux plus rien ajouter. C'est certainement une bonne option pour certains, mais je ne souhaite pas la mettre en place sur ma boutique, je ne la trouve pas facile à comprendre pour un client. Pas possible... $(document).on('click', '#HOOK_PAYMENT', function(e) { $.ajax({ type: 'POST', headers: { "cache-control": "no-cache" }, url: 'index.php?rand=' + new Date().getTime(), async: true, cache: false, dataType : "json", data: 'controller=cart&ajax=true&action=initiatePayment&token=' + static_token }); }); le blocage ne se déclenche qu'au clic dans la partie paiement Edited April 21, 2023 by Eolia (see edit history) Link to comment Share on other sites More sharing options...
Sda33 Posted April 21, 2023 Share Posted April 21, 2023 1 hour ago, Eolia said: 2 hours ago, Sda33 said: Oui et c'est très bien mais en remontant l'erreur j'ai corrigé \tools\PhoneFormat en modifiant pour FR la valeur du max_length à 10 au lieu de 9. Ca a résolu mon problème. Mon téléphone était bien formaté à la base, un 06... transformé en +336... par le FO, tout correct. Pas logique. Le code supprime le 1er 0, il ne doit donc rester que 9 chiffres. Bon du coup j'ai remis le max_length à 9. Je débogue la fonction isValidTelephoneNumber de la classe Tools, et je vois où est le problème. $phone_number = intval(preg_replace('/[^0-9]/', '', $phone_number)); le intval déborde et me renvoie 2147483647, "je" dois être en 32bits, d'où forcément le problème lié. Cela peut-il être un problème de version de PHP, que je n'ai pas encore passé en 8+ ? Je ne dois pas être la seule à avoir le problème, si ? Link to comment Share on other sites More sharing options...
Eolia Posted April 21, 2023 Author Share Posted April 21, 2023 il y a 4 minutes, Sda33 a dit : Bon du coup j'ai remis le max_length à 9. Je débogue la fonction isValidTelephoneNumber de la classe Tools, et je vois où est le problème. $phone_number = intval(preg_replace('/[^0-9]/', '', $phone_number)); le intval déborde et me renvoie 2147483647, "je" dois être en 32bits, d'où forcément le problème lié. Cela peut-il être un problème de version de PHP, que je n'ai pas encore passé en 8+ ? Je ne dois pas être la seule à avoir le problème, si ? Vous pouvez tester avec $phone_number = strlen(preg_replace('/[^0-9]/', '', $phone_number)); et me dire si c'est ok ? Link to comment Share on other sites More sharing options...
Sda33 Posted April 21, 2023 Share Posted April 21, 2023 7 minutes ago, Eolia said: ous pouvez tester avec $phone_number = strlen(preg_replace('/[^0-9]/', '', $phone_number)); et me dire si c'est ok ? Merci. Avec strlen il me retourne la taille de la chaîne, soit 11, et ça ne fonctionne pas. Mais avec strval oui ça marche, ça règle ce problème. Si je peux laisser comme ça parce que vous pensez que cela n'aura pas d'incidence ailleurs, alors je me penche sur les autres soucis. (pour Paypal vous aviez raison, c'était un fichier dans le "module\paypal" de mon thème, que j'ai corrigé du coup) Link to comment Share on other sites More sharing options...
Eolia Posted April 21, 2023 Author Share Posted April 21, 2023 Je pige pas. Comment ça 11 ? Votre n° est 02147483647 au départ ? Ce n'est pas un n° français ça... Link to comment Share on other sites More sharing options...
Sda33 Posted April 21, 2023 Share Posted April 21, 2023 25 minutes ago, Eolia said: Je pige pas. Comment ça 11 ? Votre n° est 02147483647 au départ ? Ce n'est pas un n° français ça... Non. Mon numéro est du type 0612345678. Le front le transforme immédiatement en +33612345678, quoi que je fasse. La fonction isValidTelephoneNumber prévoit un preg_replace('/[^0-9]/', '', $phone_number) qui nous donne 33612345678. Ce qui fait 11 caractères. Le intval dessus ne fonctionnant pas (puisqu'il déborde), je garde strval, et ça fonctionne. Link to comment Share on other sites More sharing options...
Eolia Posted April 21, 2023 Author Share Posted April 21, 2023 il y a 9 minutes, Sda33 a dit : Ce qui fait 11 caractères. Le intval dessus ne fonctionnant pas (puisqu'il déborde), je garde strval, et ça fonctionne. Toujours pas logique. if(strlen($phone_number) > $format['max_length']) $phone_number = substr($phone_number, strlen($country_code)); 1er contrôle, si le n° est plus long que le format du pays on tente de lui supprimer l'indicatif du pays (ici: 33) 33612345678 moins le 33 donne 612345678 ce qui fait bien 9 caractères. Link to comment Share on other sites More sharing options...
Sda33 Posted April 21, 2023 Share Posted April 21, 2023 8 minutes ago, Eolia said: Toujours pas logique. if(strlen($phone_number) > $format['max_length']) $phone_number = substr($phone_number, strlen($country_code)); 1er contrôle, si le n° est plus long que le format du pays on tente de lui supprimer l'indicatif du pays (ici: 33) 33612345678 moins le 33 donne 612345678 ce qui fait bien 9 caractères. Je suis désolée Eolia, mais le intval est avant ce test... Link to comment Share on other sites More sharing options...
Eolia Posted April 21, 2023 Author Share Posted April 21, 2023 Oui mais ça ne change rien. intval() ne fait que caster en INT. https://onlinephp.io/c/4c0cb Link to comment Share on other sites More sharing options...
Sda33 Posted April 21, 2023 Share Posted April 21, 2023 🙂 Oui bien sûr sauf que 33612345678 est trop grand pour le intval chez moi, et il renvoie donc la valeur max qui est 2147483647. C'est la raison pour laquelle je posais au début la question : 2 hours ago, Sda33 said: le intval déborde et me renvoie 2147483647, "je" dois être en 32bits, d'où forcément le problème lié. Cela peut-il être un problème de version de PHP, que je n'ai pas encore passé en 8+ ? Link to comment Share on other sites More sharing options...
Eolia Posted April 21, 2023 Author Share Posted April 21, 2023 Vous êtes en local ou chez un hébergeur ? Link to comment Share on other sites More sharing options...
Sda33 Posted April 21, 2023 Share Posted April 21, 2023 4 minutes ago, Eolia said: Vous êtes en local ou chez un hébergeur ? Je suis chez OVH. Link to comment Share on other sites More sharing options...
Eolia Posted April 21, 2023 Author Share Posted April 21, 2023 Ok, utilisez floatval() alors Link to comment Share on other sites More sharing options...
Sda33 Posted April 23, 2023 Share Posted April 23, 2023 On 4/21/2023 at 3:52 PM, Eolia said: Ok, utilisez floatval() alors Oui cela fonctionnait avec strval, c'est bon aussi avec floatval, je vais garder celui-là, merci. Je reviens vers vous pour un problème en BO, sur l'affichage du détail des commandes passées avant la migration et qui comportaient des produits personnalisés. J'ai un bug de type : [8] Undefined index: customizationQuantityTotal [8] Undefined index: customizationQuantityRefunded [8] Undefined index: customizationQuantityReturned [8] Undefined index: customizationQuantityTotal Même bug d'ailleurs sur le détail des paniers faits avant la migration, avec également : [8] Undefined index: total_customization_wt J'ai vu qu'en FO comme pour la génération des factures on s'affranchissait de ces variables et cela fonctionne bien. J'avais travaillé sur la mise à jour de mes tables order_detail et cart_product pour récupérer les id_customization associés, mais cela ne peut pas fonctionner dans le cas où on a une quantité >1 d'un même produit même déclinaison mais personnalisations différentes parce que cela obligerait à ajouter des lignes dans les tables order_detail et cart_product : Ancien système : 1 ligne avec quantity 2 par exemple et id_customization 0 ou NULL, puis le système va chercher la personnalisation Nouveau système : 2 lignes avec quantity 1 chacune + id_customization associé Donc je pense qu'il doit y avoir quelque chose à faire dans la classe Product.php, ou en BO sur les controllers correspondants... D'autres personnes ont-elles le même souci que moi ? J'ai remonté le post je n'ai pas trouvé... Merci. Link to comment Share on other sites More sharing options...
Eolia Posted April 23, 2023 Author Share Posted April 23, 2023 Le nouveau système comporte effectivement une ligne par personnalisation car les prix sont spécifiques à chaque perso. Ce que vous décrivez n'est pas un bug mais une notice/warning que vous ne voyez que parce que vous avez le debug activé. Link to comment Share on other sites More sharing options...
Sda33 Posted April 23, 2023 Share Posted April 23, 2023 9 minutes ago, Eolia said: Ce que vous décrivez n'est pas un bug mais une notice/warning que vous ne voyez que parce que vous avez le debug activé. Oui absolument, mais même sans voir le warning je n'ai pas le détail de la personnalisation faite par le client, il ne se charge pas sous les produits. C'est souvent utile. J'ai la possibilité de la retrouver en affichant la facture, donc ce n'est pas bloquant, juste un peu gênant. Link to comment Share on other sites More sharing options...
Sda33 Posted April 23, 2023 Share Posted April 23, 2023 (edited) @Eolia Eurêka ! Je viens de trouver où était le problème de l'affichage des champs de personnalisation en Back Office, fiche produit. Pour rappel, le bug était : quel que soit le nombre de champs de personnalisation pour ce produit en base de données, l'interface n'affichait jamais le dernier de la liste. On 4/11/2023 at 12:16 PM, Sda33 said: J'avance un peu, je suis sur un produit avec 3 champs en BDD, 3 champs bien visibles en FO, seulement 2 visibles en BO. Les champs ont les id 158, 159 et 160. Le 160 ne s'affiche pas en BO. La requête getCustomizationFields de Product.php me renvoie bien les 3 champs (cf capture d'écran). Mais la fonction _getCustomizationFieldIds($labels, $alreadyGenerated, $obj) ne me retourne que les deux premiers. Voir capture d'écran, j'affiche le return implode('¤', $customizableFieldIds); En remontant un peu (ligne 4249), je sais que j'ai un problème sur AdminProductsController dans la function _displayLabelFields(...) Bien donc depuis je suis remontée sur la classe Product.php. Le problème vient de la fonction getCustomizationFields(), et plus particulièrement du foreach en fin de fonction. Pour un produit avec 4 champs de personnalisation texte (3 seulement s'affichaient) : Avant foreach, mon $result comprend bien 4 lignes, une pour chaque id Dans le foreach, toujours 4 lignes, mais la dernière ligne était un duplicata de l'une des 3 autres, écrasant systématiquement les valeurs de la dernière donc. (premier passage du foreach, la 4è ligne de l'array est la copie de la première, deuxième passage c'est une copie de la 2è, etc) L'utilisation du "$row" comme nom de variable pour cette boucle est à l'origine du problème La correction, j'ai renommé la variable, donc : J'ai remplacé foreach ($result as $row) Par foreach ($result as $myrow) (et bien entendu adapté la phrase du dessous) J'espère que cela pourra aider ceux qui avaient le même problème que moi à cet endroit. Edited April 23, 2023 by Sda33 (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted April 23, 2023 Author Share Posted April 23, 2023 il y a 2 minutes, Sda33 a dit : @Eolia Eurêka ! Je viens de trouver où était le problème de l'affichage des champs de personnalisation en Back Office, fiche produit. Bien vu En fait le problème vient d'au-dessus où $row est passé par référence et non supprimé après la boucle. Il manquait un unset($row); à la ligne 5007. la correction est effective pour la 1.6.2.8 Link to comment Share on other sites More sharing options...
Eolia Posted April 23, 2023 Author Share Posted April 23, 2023 En cours pour la 28: Ca vous intéresse ? (tri et choix des colonnes) 1 Link to comment Share on other sites More sharing options...
Sda33 Posted April 24, 2023 Share Posted April 24, 2023 12 hours ago, Eolia said: En cours pour la 28: Ca vous intéresse ? (tri et choix des colonnes) Ah oui, pouvoir choisir les colonnes surtout c'est très utile 🙂 Et si ça pouvait se faire sur d'autres listes, comme celles qui listent les commandes et les clients, ce serait vraiment pratique ! J'apprécie déjà beaucoup tout ce que vous avez fait qui aide au confort de travail en BO : les notes sur les commandes, la colonne du transporteur sur la liste des commandes, l'enregistrement flottant sur les traductions, la cartographie sur les adresses, et j'en passe... ---------------------- Puisqu'on en est à construire une liste de souhaits, ce serait intéressant aussi de travailler sur les Etats des commandes. J'aimerais pouvoir choisir les "Etats des commandes" que je retrouve dans la liste disponible quand j'édite une commande et que je dois modifier son état. Idéalement : - Espace "Etat de commandes" : case à cocher "sélection de mise à jour manuelle" - Page de détail d'une commande, la liste déroulante "Mettre à jour l'état" ne comprend que les items sélectionnés Mine de rien cela pourrait être un vrai gain de temps au quotidien, les modules de paiement + nos différents développements ont tendance à ajouter des états "techniques" qui encombrent la liste et font perdre du temps quand on passe la commande en préparation et qu'il faut retrouver l'état dans une liste trop longue, avec parfois des états similaires pouvant porter à confusion. ---------------------- Je suis aussi de retour avec mes questions sur le format des numéros de téléphone, je suis un peu gênée par le "forçage" en fonction du pays. J'ai plusieurs de mes clients frontaliers qui peuvent avoir un numéro en Suisse ou au Luxembourg alors qu'ils se font livrer sur une adresse en France ou en Belgique. Les sites de Mondial Relay ou de La Poste autorisent cela. Donc par exemple : y a-t-il la possibilité de ne pas écraser un préfixe téléphonique s'il a déjà été entré ? Je veux dire, un téléphone au bon format mais pas pour le pays de l'adresse. Exemple : je renseigne une adresse de livraison en France, mais sur (au moins) l'un des numéros de téléphone je précise +41XXX, alors le système ne remplacerait pas le +41. Merci. Link to comment Share on other sites More sharing options...
Sda33 Posted April 24, 2023 Share Posted April 24, 2023 Et pardon juste une question subsidiaire. Je cherche, mais peut-être avez-vous une réponse, c'est un problème sur les mails. Les mails de mon thème ne sont plus pris en compte. Au lieu de charger les modèles de \themes\montheme\mails\fr, le système envoie ceux de la racine \mails\fr... ? Link to comment Share on other sites More sharing options...
Eolia Posted April 24, 2023 Author Share Posted April 24, 2023 Il y a 9 heures, Sda33 a dit : Et pardon juste une question subsidiaire. Je cherche, mais peut-être avez-vous une réponse, c'est un problème sur les mails. Les mails de mon thème ne sont plus pris en compte. Au lieu de charger les modèles de \themes\montheme\mails\fr, le système envoie ceux de la racine \mails\fr... ? Yep, il y a une coquille ligne 262 de Mail.php (un file_exists( ) en trop) à remplacer par : elseif(file_exists($theme_path.'mails/'.$iso_template.'.html')) { 1 Link to comment Share on other sites
Recommended Posts