Jump to content

Sortie de la version 1.6.2.30 PhenixSuite - By @Eolia


Eolia

Recommended Posts

Info sur la version à venir:

####################################
#   v1.6.2.2 - (2023 - en cours)
####################################

- Ajustement du versionCompliancy pour les modules limités à la version 1.6.1.24
- Mise à jour du module Loyalty avec possibilité de modifier (ajout/suppression) les points depuis la fiche client
- Ajout de l'option d'affichage de la condition des produits en FO
- Correctifs de compatibilité PHP 8.2.2 (Modules)
- Ajout du paramètre d'activation du Chat (Oui/Non)
- Correctif sur les mises à jour de positions en mode multi-pages (Produits, Attributs & Caractéristiques)
- Correctif sur la génération des avoirs
- Possibilité de supprimer un avoir
- Ajout de la raison pour les avoirs (https://bofip.impots.gouv.fr/bofip/1100-PGP.html/identifiant%3DBOI-TVA-DED-40-10-20-20170405)
- Enregistrement des traductions en instantané (Plus de souci de max_input_var, en moyenne on passe de 3/4 sec à 250ms, seuls les champs modifiés sont enregistrés)
- Génération des miniatures produits à la volée (si elles n'existent pas, elles sont générées en dynamique)

  • Like 2
Link to comment
Share on other sites

Ca marche, merci !

En BO, j'ai ce message :
"
Unknown error à la ligne 61 du fichier /public_html/modules/emailgenerator/vendor/cssin/vendor/csstidy/class.csstidy.php
[8192] Methods with the same name as their class will not be constructors in a future version of PHP; csstidy has a deprecated constructor

Unknown error à la ligne 39 du fichier /public_html/modules/emailgenerator/vendor/cssin/vendor/csstidy/class.csstidy_print.php
[8192] Methods with the same name as their class will not be constructors in a future version of PHP; csstidy_print has a deprecated constructor

Unknown error à la ligne 39 du fichier /public_html/modules/emailgenerator/vendor/cssin/vendor/csstidy/class.csstidy_optimise.php
[8192] Methods with the same name as their class will not be constructors in a future version of PHP; csstidy_optimise has a deprecated constructor"

Je suis en Php 7.4.33

Edited by P i l o u (see edit history)
Link to comment
Share on other sites

Ce module n'a pas d'utilité pour vous à priori, il est là pour permettre la participation aux traductions communautaires dans l'avenir.

 

Changelog v1.6.2.3 - (2023 - en cours) :
- Mise à jour de PEAR
- Mise à jour de pclzip.lib
- Mise à jour de jQuery vers la dernière version 3.6.3 (anciennement 1.11.0)
Attention aux modules/thèmes non compatibles (Par exemple: .load, .live, .off, .complete ne sont plus autorisés)
- Correctifs sur les js admin, theme et modules suite à la mise à jour jQuery
- Correctif sur les messages de confirmation/erreur lors de retours Ajax
- Correctif sur le translation_form.tpl (typo)
- Correctif sur le ProductController.php (typo)

Edited by Eolia (see edit history)
  • Thanks 2
Link to comment
Share on other sites

Il y a 6 heures, P i l o u a dit :

Ca marche, merci !

En BO, j'ai ce message :
"
Unknown error à la ligne 61 du fichier /public_html/modules/emailgenerator/vendor/cssin/vendor/csstidy/class.csstidy.php
[8192] Methods with the same name as their class will not be constructors in a future version of PHP; csstidy has a deprecated constructor

Unknown error à la ligne 39 du fichier /public_html/modules/emailgenerator/vendor/cssin/vendor/csstidy/class.csstidy_print.php
[8192] Methods with the same name as their class will not be constructors in a future version of PHP; csstidy_print has a deprecated constructor

Unknown error à la ligne 39 du fichier /public_html/modules/emailgenerator/vendor/cssin/vendor/csstidy/class.csstidy_optimise.php
[8192] Methods with the same name as their class will not be constructors in a future version of PHP; csstidy_optimise has a deprecated constructor"

Je suis en Php 7.4.33

Ci-joint la version compat si ça vous intéresse ;) 

emailgenerator_0.8.zip

  • Like 1
Link to comment
Share on other sites

Bonsoir 

J ai essayé en local la 1.6.2.24 qui fonctionnait bien  puis j'ai refait l'essais ce we et la c'etait passé en 1.6.2.25 et la ecran blanc  et meme en mode debug pas de message !  

J'ai eu des alertes lors de la mise a jour tout comme j avais lors de la 1.6.2.24

Mais encore merci a Eolia pour le travail fournis

Link to comment
Share on other sites

Il y a 12 heures, docmusicstation a dit :

Bonsoir 

J ai essayé en local la 1.6.2.24 qui fonctionnait bien  puis j'ai refait l'essais ce we et la c'etait passé en 1.6.2.25 et la ecran blanc  et meme en mode debug pas de message !  

J'ai eu des alertes lors de la mise a jour tout comme j avais lors de la 1.6.2.24

Mais encore merci a Eolia pour le travail fournis

En BO et en FO ?

Rien dans le error.log du serveur ?

Quelles alertes avez-vous eu lors de la mise à jour ?

 

Link to comment
Share on other sites

Hello,

Merci Eolia pour les mises a jour

Je suis passé a la version 1.6.2.25 et depuis je n'ai plus le bouton ajouter suivi sur les commandes, il faut que je passe la commande en préparation pour qu'il apparaisse .

Je dois avoir un bouton désactivé quelque part mais je ne sais pas ou ?

Merci pour votre retour.

Alexandre

 

bouton suivi.jpg

Link to comment
Share on other sites

On 3/14/2023 at 10:21 AM, Eolia said:

En BO et en FO ?

Rien dans le error.log du serveur ?

Quelles alertes avez-vous eu lors de la mise à jour ?

Bonjour

J'ai refait le test de mise a jour en local.

Voila les alertes que j ai en fin de mise a jour.

Le back office est page blanche meme en mode debug !   Le front office lui est ok.

Ecran 1.jpg

ecran 2.jpg

Link to comment
Share on other sites

Le 15/03/2023 à 9:41 AM, clawz a dit :

Hello,

Merci Eolia pour les mises a jour

Je suis passé a la version 1.6.2.25 et depuis je n'ai plus le bouton ajouter suivi sur les commandes, il faut que je passe la commande en préparation pour qu'il apparaisse .

Je dois avoir un bouton désactivé quelque part mais je ne sais pas ou ?

Merci pour votre retour.

Alexandre

 

bouton suivi.jpg

Je ne vois pas de transporteur sur votre commande, il est donc compliqué d'ajouter un n° de suivi ?

Link to comment
Share on other sites

Le 16/03/2023 à 7:36 PM, docmusicstation a dit :

Bonjour

J'ai refait le test de mise a jour en local.

Voila les alertes que j ai en fin de mise a jour.

Le back office est page blanche meme en mode debug !   Le front office lui est ok.

Ecran 1.jpg

ecran 2.jpg

Votre table ps_product n'est pas conforme. (Et sans doute ps_product_shop et ps_product_attribute, ps_product_attribute_shop modifiées par PRESTASHOP en 1.6.0.12)

Le champ available_date doit être défini comme suit:

image.png.bd55d0b5059282f0c87b74585ff8c9c7.png

de type: "date" et valeur par defaut: 0000-00-00

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

21 hours ago, Eolia said:

Votre table ps_product n'est pas conforme. (Et sans doute ps_product_shop et ps_product_attribute, ps_product_attribute_shop modifiées par PRESTASHOP en 1.6.0.12)

Le champ available_date doit être défini comme suit:

image.png.bd55d0b5059282f0c87b74585ff8c9c7.png

de type: "date" et valeur par defaut: 0000-00-00

Bonjour Eolia

Le format de available date est pourtant bien de la forme 0000-00-00 dans la table ps_product  idem dans ps_product_shop  ainsi que dans les deux autres !

Link to comment
Share on other sites

Bonjour Eolia,

Merci pour cet énorme boulot!!

J'hésitai à migrer sur une 1.7 ou 1.8 mais là la question se pose plus, je reste en 1.6!!

Pas de soucis à l'installation en passant de 1.6.1.23 à 1.6.2.5, hormis quelques notices et warnings que j'ai réussi à rectifier.

Par contre, en php 7.0 tout va bien, mais dès que je passe en php 7.1 ou plus, j'ai d'autres notices en FO, et surtout je n'ai plus accès au BO avec l'erreur suivante :

Fatal error: Uncaught Error: Call to undefined function mysql_connect() in /home/dbxk8718/public_html/MAJ/classes/db/MySQL.php:55 Stack trace: #0 /home/dbxk8718/public_html/MAJ/classes/db/Db.php(323): MySQLCore->connect() #1 /home/dbxk8718/public_html/MAJ/classes/db/Db.php(243): DbCore->__construct('localhost', 'xxxxx', 'xxxxx', 'xxxxx') #2 /home/dbxk8718/public_html/MAJ/config/alias.php(117): DbCore::getInstance() #3 /home/dbxk8718/public_html/MAJ/classes/shop/Shop.php(329): pSQL('maj.lavieenrose...') #4 /home/dbxk8718/public_html/MAJ/config/config.inc.php(142): ShopCore::initialize() #5 /home/dbxk8718/public_html/MAJ/admin6709/index.php(40): require('/home/dbxk8718/...') #6 {main} thrown in /home/dbxk8718/public_html/MAJ/classes/db/MySQL.php on line 55

Mes connaissances sont trop limitées pour le coup, avez-vous peut-être une idée du problème, voir une solution ? 
Hormis évidemment celle de rester en php 7.0 😅

Cordialement,
Fred

Link to comment
Share on other sites

Bonjour,

    public static function getClass()
    {
        $class = 'MySQL';
        if (PHP_VERSION_ID >= 50200 && extension_loaded('pdo_mysql')) {
            $class = 'DbPDO';
        } elseif (extension_loaded('mysqli')) {
            $class = 'DbMySQLi';
        }

        return $class;
    }

 

Ce code dit:

Par défault on utilise MySQL (mais MySQL n'est plus dispo après 7.1)

Autrement on charge PDO si l'extension pdo est active sur votre serveur (ce qui devrait être le cas mais pas sur votre serveur apparemment)

Chez quel hébergeur êtes-vous ?

Link to comment
Share on other sites

Merci Eolia pour la mise à jour. Ca fonctionnait bien avec la 1.6.2 mais avec la mise à jour de la 1.6.2.5 j'ai une page blanche sur le BO et quand je mets le mode debug, je n'ai que le header qui apparaît. J'ai aussi une page 500 en front quand elle n'est pas en mode maintenance ? Je mets l'error log en copie si ça peut aider. Je n'ai pas vu d'erreur au moment de l'installation.

image.thumb.png.d35b3977e4b66152af99da72345ace35.png

error.log

Link to comment
Share on other sites

Il y a 10 heures, docmusicstation a dit :

Le champ available_date est bien de type date 0000-00-00 dans ps_product et ps_product_shop

Par contre je n ai pas de champ available_date dans les deux tables ps_attribute que vous m'indiquez

Table bdd.jpg

lisez bien svp.

ps_product_attribute et ps_product_attribute_shop

  • Like 1
Link to comment
Share on other sites

Il y a 12 heures, Thecoffeelovers a dit :

Merci Eolia pour la mise à jour. Ca fonctionnait bien avec la 1.6.2 mais avec la mise à jour de la 1.6.2.5 j'ai une page blanche sur le BO et quand je mets le mode debug, je n'ai que le header qui apparaît. J'ai aussi une page 500 en front quand elle n'est pas en mode maintenance ? Je mets l'error log en copie si ça peut aider. Je n'ai pas vu d'erreur au moment de l'installation.

image.thumb.png.d35b3977e4b66152af99da72345ace35.png

error.log 336.15 Ko · 0 downloads

Votre error.log montre montre pas mal d'incompatibilités à corriger au niveau de vos overrides existants et de certaines définitions de modules.

J'ai aussi l'impression que certains upgrades SQL ne se sont pas déroulés correctement.

Pouvez-vous m'envoyer un accès ftp en MP ?

  • Like 1
Link to comment
Share on other sites

Bonjour Eolia,

J'ai effectué la MAJ sur le site en production (1.6.1.23 à 1.6.2.5), aucun soucis particulier à part des erreurs 404 réglés en désactivant et réactivant les URL simplifiées.

Par contre ce matin j'ai eu un mail de Google m'indiquant 2 problèmes critiques sur le fil d'ariane :

 

Vous devez indiquer "name" ou "item.name" (dans "itemListElement")
Champ "position" manquant (dans "itemListElement")

Je précise que j'avais copié le fichier breadcrump.tpl du thème par défaut de la 1.6.2.5 sur le thème de la boutique.

J'ai essayé de placer ces éléments mais je pense que je suis juste pas très doué...

Du coup j'ai voulu remettre l'ancien fil d'ariane, mais le problème persiste.

J'ai vérifié à tout hasard si j'avais pas d'override sur le Tools, c'est pas ça non plus.

Cordialement,
Fred

Link to comment
Share on other sites

Il y a 2 heures, La vie en Rose a dit :

Bonjour Eolia,

J'ai effectué la MAJ sur le site en production (1.6.1.23 à 1.6.2.5), aucun soucis particulier à part des erreurs 404 réglés en désactivant et réactivant les URL simplifiées.

Par contre ce matin j'ai eu un mail de Google m'indiquant 2 problèmes critiques sur le fil d'ariane :

 

Vous devez indiquer "name" ou "item.name" (dans "itemListElement")
Champ "position" manquant (dans "itemListElement")

Je précise que j'avais copié le fichier breadcrump.tpl du thème par défaut de la 1.6.2.5 sur le thème de la boutique.

J'ai essayé de placer ces éléments mais je pense que je suis juste pas très doué...

Du coup j'ai voulu remettre l'ancien fil d'ariane, mais le problème persiste.

J'ai vérifié à tout hasard si j'avais pas d'override sur le Tools, c'est pas ça non plus.

Cordialement,
Fred

Remplacez title par name à la ligne 50.

Sera corrigé dans la prochaine version 1.6.2.7

Link to comment
Share on other sites

Bonjour Eolia,

Merci pour cette nouvelle version.

Quelques remarques/questions:

Le mode Maintenance permet quand même l'accès au site (avec un bandeau Maintenance dans le bas de la page).
La désactivation du mode maintenance n'enlève pas le bandeau (même après avoir vidé le cache).

J'ai du forcer l'utilisation du Jquery 1.11 pour retrouver la balise titre dans l'onglet de navigation de Firefox, sinon, j'avais www.domaine.com/123-article.html

Bonne continuation ;)

Link to comment
Share on other sites

il y a 4 minutes, P i l o u a dit :

Bonjour Eolia,

Merci pour cette nouvelle version.

Quelques remarques/questions:

Le mode Maintenance permet quand même l'accès au site (avec un bandeau Maintenance dans le bas de la page).
La désactivation du mode maintenance n'enlève pas le bandeau (même après avoir vidé le cache).

J'ai du forcer l'utilisation du Jquery 1.11 pour retrouver la balise titre dans l'onglet de navigation de Firefox, sinon, j'avais www.domaine.com/123-article.html

Bonne continuation ;)

Yep, il faut déplacer le bloc dans FrontController.php (mais il n'y a que si vous êtes connecté en BO que vous voyez le bandeau)image.png.3530e94f472ae0d6643d975fbf99d57c.png

Pour votre balise titre je pense plus à un problème de cache car il n'y a pas de rapport entre la version jquery et la balise titre de la page (qui est dans le tpl)

Link to comment
Share on other sites

il y a 10 minutes, Eolia a dit :

Yep, il faut déplacer le bloc dans FrontController.php (mais il n'y a que si vous êtes connecté en BO que vous voyez le bandeau)

Comment faire pour revenir comme c'était dans la v1.6.2.5 svp ?
J'utilise un module "Outils de maintenance" qui permet entre-autre de mettre une image en fond quand la boutique est en maintenance.

Citation

Pour votre balise titre je pense plus à un problème de cache car il n'y a pas de rapport entre la version jquery et la balise titre de la page (qui est dans le tpl)

En effet, après avoir re-vidé le cache, ça fonctionne.

Link to comment
Share on other sites

il y a 3 minutes, P i l o u a dit :

Comment faire pour revenir comme c'était dans la v1.6.2.5 svp ?
J'utilise un module "Outils de maintenance" qui permet entre-autre de mettre une image en fond quand la boutique est en maintenance.

Vous n'avez pas compris.

Vos client verront toujours votre image de maintenance, le bandeau n'est visible que pour les employés ce qui leur permet de pouvoir continuer à voir la boutique même quand elle est en mode maintenance.

Le bandeau est là pour ne pas oublier que vous êtes en  maintenance.

  • Like 1
Link to comment
Share on other sites

Il y a 15 heures, Eolia a dit :

Remplacez title par name à la ligne 50.

Sera corrigé dans la prochaine version 1.6.2.7

Bonjour Eolia,

Merci pour la réponse ultra rapide, mais je n'arrive pas à valider la correction sur Google. J'ai supprimé les caches pour être sûr.

Sinon, serait-ce une bonne idée d'inclure la modif suivante dans une future version ? Je l'ai mise en place elle est fonctionnelle et perso je pense qu'elle devrait être nativement intégrée, mais ça n'engage que moi.

Merci pour la dernière version, à ce rythme vous allez bientôt être à court de numéro, 1.7 étant déjà pris 😅

Cordialement,
Fred

Link to comment
Share on other sites

Génial merci!!

Sinon un autre soucis, je sais pas si je suis le seul dans ce cas, mais quand j'active le webp pour les images, j'ai des erreurs du type :

GET https://https//testing.lavieenrose57.fr/9193-thickbox_default/inhalateur-pour-poppers-aluminium-or.webp net::ERR_NAME_NOT_RESOLVED

Y'a un https// en trop, cela peut-il venir du .htaccess ?

Cordialement,
Fred

Link to comment
Share on other sites

Bonjour Eolia, suite à la mise à jour, en backoffice on ne retrouve pas les choix du client concernant la personnalisation d'un produit. j'ai pourtant mis à jour les modèles indiqués (product, blockcart, order-detail...)

EDIT : Finalement ça apparait, surement un souci de cache lors des premiers tests 🙂

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

Par contre, les images originales sont-elles également générées en webp ?

Mon module génère une galerie d'image avec zoom qui s'appuie sur les formats originaux (pour plus de détails dans les zoom). Hors l'image ne s'affiche pas lorsque je configure le module pour qu'il prenne l'image originale. Tous les autres formats passent bien.

Cordialement

Edited by La vie en Rose (see edit history)
Link to comment
Share on other sites

il y a 1 minute, La vie en Rose a dit :

Par contre, les images originales sont-elles également générées en webp ?

Mon module génère une galerie d'image avec zoom qui s'appuie sur les formats originaux (pour plus de détails dans les zoom). Hors l'image ne s'affiche pas lorsque je configure le module pour qu'il prenne l'image originale. Tous les autres formats passent bien.

Cordialement

Non, l'image originale n'est pas regénérée en webp vu que celle-ci n'est jamais utilisée dans le code du coeur.

Si votre module cherche l'image en jpg il va la trouver.

Link to comment
Share on other sites

Il y a 4 heures, Fab20620 a dit :

Bonjour Eolia, suite à la mise à jour, en backoffice on ne retrouve pas les choix du client concernant la personnalisation d'un produit. j'ai pourtant mis à jour les modèles indiqués (product, blockcart, order-detail...)

EDIT : Finalement ça apparait, surement un souci de cache lors des premiers tests 🙂

Surtout que l'affichage en BO ne concerne pas les modifications du thème, le code est intégré ;)

image.png.ae4849bbe7230e139b6704cce4ebb4b8.png

Link to comment
Share on other sites

Bonjour,

Pour ma part j'ai un souci avec le module de paiement Stripe. Je reçois bien les commandes en BO mais pas les emails quand elles sont réglées, ni les infos connexes comme l'heure du retrait ou le nom du point relais.

Par contre aucun soucis quand c'est un autre mode de règlement.

De plus, les clients arrivent sur une page blanche en guise de confirmation de commande.

Le module posant problème est "Paiement Stripe avec remboursement (SCA-Ready)". Dans les logs j'ai l'erreur suivante:

----  Property PrestaStripeTransaction->currency_iso_code is empty

J'ai posé la question au développeur mais apparemment c'est une erreur très spécifique, et comme ce n'est pas une version Prestashop "officielle", pas sûr qu'il veuille ou puisse y remédier...

Du coup par simplicité j'ai voulu installé le module officiel de Stripe, mais page blanche en BO dès que je télécharge l'archive (via le BO et FTP), et impossible donc de l'installer. J'ai également contacté le développeur qui m'oriente du coup sur Stripe pour ouvrir un ticket chez eux.

Quelqu'un a-t-il rencontré le même soucis ?

Cordialement,
Fred

 

Link to comment
Share on other sites

Il y a 2 heures, Fab20620 a dit :

Toujours un souci avec la personnalisation qui ne veut pas fonctionner. Dans quelle direction je peux chercher pour tenter de corriger ça ? (le site tourne désormais sous la dernière version 1.6.2.6)

 

Ce n'était pas un pb de cache donc ?

Pas d'overrides sur l'admin concernant les commandes (en php ou tpl) ?

Link to comment
Share on other sites

Il y a 1 heure, La vie en Rose a dit :

Bonjour,

Pour ma part j'ai un souci avec le module de paiement Stripe. Je reçois bien les commandes en BO mais pas les emails quand elles sont réglées, ni les infos connexes comme l'heure du retrait ou le nom du point relais.

Par contre aucun soucis quand c'est un autre mode de règlement.

De plus, les clients arrivent sur une page blanche en guise de confirmation de commande.

Le module posant problème est "Paiement Stripe avec remboursement (SCA-Ready)". Dans les logs j'ai l'erreur suivante:

----  Property PrestaStripeTransaction->currency_iso_code is empty

J'ai posé la question au développeur mais apparemment c'est une erreur très spécifique, et comme ce n'est pas une version Prestashop "officielle", pas sûr qu'il veuille ou puisse y remédier...

Du coup par simplicité j'ai voulu installé le module officiel de Stripe, mais page blanche en BO dès que je télécharge l'archive (via le BO et FTP), et impossible donc de l'installer. J'ai également contacté le développeur qui m'oriente du coup sur Stripe pour ouvrir un ticket chez eux.

Quelqu'un a-t-il rencontré le même soucis ?

Cordialement,
Fred

 

Non mais lol...

Ils sont toujours aussi bons chez 202ecommerce:

PrestaShop] Fatal error in module file :/var/www/clients/client5/web28/web/modules/stripe_official/classes/StripeWebhook.php:
Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given in /var/www/clients/client5/web28/web/modules/stripe_official/classes/StripeWebhook.php:83 Stack trace: #0 /var/www/clients/client5/web28/web/modules/stripe_official/classes/actions/ConfigurationActions.php(240): StripeWebhook::countWebhooksList() #1 [internal function]: ConfigurationActions->registerWebhookSignature() #2 /var/www/clients/client5/web28/web/modules/stripe_official/vendor/totpsclasslib/src/Actions/ActionsHandler.php(154): call_user_func_array() #3 /var/www/clients/client5/web28/web/modules/stripe_official/stripe_official.php(896): Stripe_officialClasslib\Actions\ActionsHandler->process() #4 /var/www/clients/client5/web28/web/controllers/admin/AdminModulesController.php(894): Stripe_official->getContent() #5 /var/www/clients/client5/web28/web/controllers/admin/AdminModulesController.php(1143): AdminModulesControllerCore->postProcessCallback() #6 /var/www/clients/client5/web28/web/classes/controller/Controller.php(191): AdminModulesControllerCore->postProcess() #7 /var/www/clients/client5/web28/web/classes/Dispatcher.php(367): ControllerCore->run() #8 /var/www/clients/client5/web28/web/admin735kwefqu/index.php(74): DispatcherCore->dispatch() #9 {main} thrown

Module pas compatible PHP >= 7.2

Vous pouvez m'envoyer vos clés de test que je puisse tester le module ?

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

Oh génial!!!

Pas pu répondre avant mais encore une fois quelle rapidité!!

C'est fou quand on y pense, que vous arriviez à corriger ça et pas les développeurs pour leurs propres modules!..

Donc ça peut fonctionner, mais... comment je fais ? 😅

Cordialement,
Fred

Link to comment
Share on other sites

O

12 hours ago, Eolia said:

Envoyez-moi un accès ftp en MP si vous voulez que j'investigue ;) 

Le souci vient du fait que dans la table "order detail" le champ "product_customization_id" est ststématiquement enregistré avec la valeur "0" alors que dans la table customization, l'id est correcte. Par exemple pour ma dernière commande test, j'ai l'id 807 dans customization et dans order detail produst_customization_id=0. Si je mets 807 au lieu de 0, je retrouve mon info en BO.

 

Link to comment
Share on other sites

Vous êtes certain de ne pas avoir d'override sur classes/Order, classes/orderDetail, classes/Cart controllers/front/OrderController, controllers/front/CartController ou classes/PaymentModule ?

Dans paymentModule:

$order_detail->createList($order, $this->context->cart, $id_order_state, $order->product_list, 0, true, $package_list[$id_address][$id_package]['id_warehouse']);

Dans OrderDetail:

        foreach ($product_list as $product) {
            $this->create($order, $cart, $product, $id_order_state, $id_order_invoice, $use_taxes, $id_warehouse);
        }

...

	$this->product_customization_id = $product['id_customization'] ? (int)$product['id_customization'] : 0;

 

C'est la fonction Order::getProducts() qui récupère ces id.

    public function getProducts($products = false, $selected_products = false, $selected_qty = false)
    {
        if (!$products) {
            $products = $this->getProductsDetail();
        }

        $customized_datas = Product::getAllCustomizedDatas($this->id_cart);

        $result_array = array();
        foreach ($products as $row) {
            $row['id_product_attribute'] = isset($row['product_attribute_id']) ? $row['product_attribute_id'] : 0;
            $row['id_customization'] = isset($row['product_customization_id']) ? $row['product_customization_id'] : 0;
            // Change qty if selected
            if ($selected_qty) {
                $row['product_quantity'] = 0;
                foreach ($selected_products as $key => $id_product) {
                    if ($row['id_order_detail'] == $id_product) {
                        $row['product_quantity'] = (int)$selected_qty[$key];
                    }
                }
                if (!$row['product_quantity']) {
                    continue;
                }
            }

            $this->setProductImageInformations($row);
            $this->setProductCurrentStock($row);

            // Backward compatibility 1.4 -> 1.5
            $this->setProductPrices($row);

            $this->setProductCustomizedDatas($row, $customized_datas);

            // Add information for virtual product
            if ($row['download_hash'] && !empty($row['download_hash'])) {
                $row['filename'] = ProductDownload::getFilenameFromProduct((int)$row['product_id'], (int)$row['product_attribute_id']);
                // Get the display filename
                $row['display_filename'] = ProductDownload::getDisplayFilenameFromProduct((int)$row['product_id'], (int)$row['product_attribute_id']);
            }

            $row['id_address_delivery'] = $this->id_address_delivery;

            /* Stock product */
            $result_array[(int)$row['id_order_detail']] = $row;
        }

        if ($customized_datas) {
            Product::addCustomizationPrice($result_array, $customized_datas);
        }

        return $result_array;
    }

 

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

2 hours ago, Eolia said:

Vous êtes certain de ne pas avoir d'override sur classes/Order, classes/orderDetail, classes/Cart controllers/front/OrderController, controllers/front/CartController ou classes/PaymentModule ?

 

Oui, il n'y a rien dans les dossiers cités (de cette liste je n'ai que classes/order mais le dossier contient juste un fichier index.php)

Le souci n'est pas la lecture de l'info, mais plutôt son écriture en BDD. Dans la table order_details, le champ product_customization_id est toujours à 0.

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

Bonjour Eolia, un immense merci pour ce partage essentiel, et pour la la somme de travail que cela doit représenter. 

Je viens de passer en preprod de 1.6.1.24 à 1.6.2.6. Une migration impeccable, mais j'ai des premières questions/ remarques.

1. Pour info donc, j'avais une erreur 500 sur la page BO des modules, que j'ai corrigé.

Après debug c'était à cause du  module Bloc CMS d'information client.
Plus précisément cela venait de modules\blockcmsinfo\upgrade, fichier install-10.0.0.php, il manquait le préfixe dans la requête :

$exists = Db::getInstance()->execute('SHOW COLUMNS FROM ps_info` LIKE "id_shop"');

corrigé par : 
$exists = Db::getInstance()->execute('SHOW COLUMNS FROM `'._DB_PREFIX_.'info` LIKE "id_shop"');

2. En parlant des modules, je ne retrouve pas le module Paypal habituel :

Mais un module PayPal v12 - par PrestaShop - Eolia.

Comment savoir du coup s'il est à jour / ou quand je dois le mettre à jour ? (cf alerte sécurité Paypal d'aujourd'hui)
En l'occurrence sur mon site en prod je suis en : PayPal v3.17.0 - par 202-ecommerce

3. Sur la page de personnalisation des produits en BO :

Tous mes champs de personnalisation (texte) ne s'affichent pas. Il manque systématiquement le dernier, que j'en ai 3 ou 10. Ils s'affichent bien en front, mais il manque systématiquement le dernier en Back.
Exemple j'ai 4 champs "texte" en personnalisation produit, j'en ai bien 4 en base (customization_field et customization_field_lang sont OK avec des valeurs dans toutes les colonnes) et 4 en front, mais que 3 en back.

Je ne sais pas où aller pour déboguer cela ? Un rapport avec {$display_text_labels} de customization.tpl de [admin]\themes\default\template\controller\products et si oui où le corriger ?

4. Module Cookies

J'ai vu passer "Intégration en natif du consentement des cookies", mais je ne trouve pas le module, c'est bête de ma part certainement, pouvez-vous m'aider à le trouver pour le tester et le configurer ?

EDIT : j'ai finalement trouvé, dans Préférences\Clients. 

5. Version de PHP

J'ajoute une question de dernière minute ! Est-ce que la 1.6.2.6 est compatible avec des versions antérieures de PHP ? Je suis actuellement en PHP 7.1, j'attends d'avoir validé ma preprod pour pousser la nouvelle version en prod et ugrader le PHP en 8.2 (c'est bien la bonne version d'ailleurs ?).

 

ENCORE MERCI MERCI MERCI !

 

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

il y a 50 minutes, Sda33 a dit :

Après debug c'était à cause du  module Bloc CMS d'information client.

Merci pour votre retour, ce sera corrigé dans le prochain zip ;)

 

il y a 50 minutes, Sda33 a dit :

2. En parlant des modules, je ne retrouve pas le module Paypal habituel :

La version 12 n'a pas la faille de sécurité. C'est le code d'origine d'il y a 7 ans avec ajout d'options sur le forçage des monnaies et mode debug.

Il n'y a pas non plus les options inutiles de login avec Paypal ou braintree.

Il est simple et fonctionnel.

il y a 55 minutes, Sda33 a dit :

3. Sur la page de personnalisation des produits en BO :

Tous mes champs de personnalisation (texte) ne s'affichent pas. Il manque systématiquement le dernier, que j'en ai 3 ou 10. Ils s'affichent bien en front, mais il manque systématiquement le dernier en Back.

Je vais regarder cela, en contrôlant mes commandes test je vois bien toutes les lignes en BO mais je n'ai pas testé avec plus de 3 champs.

 

il y a 56 minutes, Sda33 a dit :

4. Module Cookies

Ce n'est pas un module mais un script, il est activable depuis la page Préférences => Clients (en bas de page)

image.thumb.png.6bcec842e991b70727ef3b037b13c3d4.png

il y a 58 minutes, Sda33 a dit :

5. Version de PHP

PhenixSuite est compatible de PHP 5.4 à 8.2.2 pour l'instant. Je ne veux pas casser la rétro-compatibilité.

Link to comment
Share on other sites

il y a une heure, Sda33 a dit :

Merci pour toutes ces réponses rapides :) Je continue mon exploration, et mes ajustements (j'avais pas mal travaillé mon thème), j'adore cette version !

Bon, je viens de tester:

image.thumb.png.68125d42798de833a02a7431a3d853ee.png

et dans la commande en BO j'ai bien les 6 customs:

image.thumb.png.c3b5f84f776431f6c0f5e5fec553b703.png

le tpl concerné est: admin//themes/default/template/controllers/orders/_customized_data.tpl et le code boucle sur toutes les customs:

	{foreach $product['customizedDatas'] as $customizationPerAddress}
		{foreach $customizationPerAddress as $customizationId => $customization}
		{if $customizationId == $product['product_customization_id']}
			<tr class="customized customized-{$product['id_order_detail']|intval}">
				<td colspan="3">
				<input type="hidden" class="edit_product_id_order_detail" value="{$product['id_order_detail']|intval}" />
					<div class="form-horizontal">
						{foreach $customization.datas as $type => $datas}
							{if ($type == Product::CUSTOMIZE_FILE)}
								{foreach from=$datas item=data}
									<div class="form-group">
										<span class="col-lg-4 control-label"><strong>{if $data['name']}{$data['name']}{else}{l s='Picture #'}{$data@iteration}{/if}</strong></span>
										<div class="col-lg-8">
											<a href="displayImage.php?img={$data['value']}&amp;name={$order->id|intval}-file{$data@iteration}" class="_blank">
												<img class="img-thumbnail" src="{$smarty.const._THEME_PROD_PIC_DIR_}{$data['value']}_small" alt=""/>
											</a>
										</div>
									</div>
								{/foreach}
							{elseif ($type == Product::CUSTOMIZE_TEXTFIELD)}
								{foreach from=$datas item=data}
									<div class="form-group">
										<span class="col-lg-4 control-label"><strong>{if $data['name']}{l s='%s' sprintf=$data['name']}{else}{l s='Text #%s' sprintf=$data@iteration}{/if}</strong></span>
										<div class="col-lg-8">
											<p class="form-control-static">{$data['value']}</p>
										</div>
									</div>
								{/foreach}
							{/if}
						{/foreach}
					</div>
				</td>
				<td></td>
				<td class="productQuantity text-center">
					<span class="product_quantity_show{if (int)$customization['quantity'] > 1} red bold{/if}">{$customization['quantity']}</span>
					{if $can_edit}
					<span class="product_quantity_edit" style="display:none;">
						<input type="text" name="product_quantity[{$customizationId|intval}]" class="edit_product_quantity" value="{$customization['quantity']|htmlentities}" size="2" />
					</span>
					{/if}
				</td>
				{if $display_warehouse}<td>&nbsp;</td>{/if}
				{if ($order->hasBeenPaid())}
				<td class="text-center">
					{if !empty($product['amount_refund'])}
					{l s='%s (%s refund)' sprintf=[$customization['quantity_refunded'], $product['amount_refund']]}
					{/if}
					<input type="hidden" value="{$product['quantity_refundable']}" class="partialRefundProductQuantity" />
					<input type="hidden" value="{(Tools::ps_round($product_price, 2) * ($product['product_quantity'] - $product['customizationQuantityTotal']))}" class="partialRefundProductAmount" />
				</td>
				{/if}
				{if ($order->hasBeenDelivered())}<td class="text-center">{$customization['quantity_returned']}</td>{/if}
				<td class="text-center"></td>
				<td class="cancelCheck standard_refund_fields current-edit" style="display:none">
					<input type="hidden" name="totalQtyReturn" id="totalQtyReturn" value="{$customization['quantity_returned']|intval}" />
					<input type="hidden" name="totalQty" id="totalQty" value="{$customization['quantity']|intval}" />
					<input type="hidden" name="productName" id="productName" value="{$product['product_name']}" />
					{if ((!$order->hasBeenDelivered() OR Configuration::get('PS_ORDER_RETURN')) AND (int)($customization['quantity_returned']) < (int)($customization['quantity']))}
						<input type="checkbox" name="id_customization[{$customizationId|intval}]" id="id_customization[{$customizationId|intval}]" value="{$product['id_order_detail']|intval}" onchange="setCancelQuantity(this, {$customizationId|intval}, {$customization['quantity'] - $product['customizationQuantityTotal'] - $product['product_quantity_reinjected']})" {if ($product['product_quantity_return'] + $product['product_quantity_refunded'] >= $product['product_quantity'])}disabled="disabled" {/if}/>
					{else}
					--
				{/if}
				</td>
				<td class="cancelQuantity standard_refund_fields current-edit" style="display:none">
				{if ($customization['quantity_returned'] + $customization['quantity_refunded'] >= $customization['quantity'])}
					<input type="hidden" name="cancelCustomizationQuantity[{$customizationId|intval}]" value="0" />
				{elseif (!$order->hasBeenDelivered() OR Configuration::get('PS_ORDER_RETURN'))}
					<input type="text" id="cancelQuantity_{$customizationId|intval}" name="cancelCustomizationQuantity[{$customizationId|intval}]" size="2" onclick="selectCheckbox(this);" value="" />0/{$customization['quantity']-$customization['quantity_refunded']}
				{/if}
				</td>
				<td class="partial_refund_fields current-edit" colspan="2" style="display:none; width: 250px;">
					{if $product['quantity_refundable'] > 0}
					{if ($order->getTaxCalculationMethod() == $smarty.const.PS_TAX_EXC)}
						{assign var='amount_refundable' value=$product['amount_refundable']}
					{else}
						{assign var='amount_refundable' value=$product['amount_refundable_tax_incl']}
					{/if}
					<div class="form-group">
						<div class="{if $product['amount_refundable'] > 0}col-lg-4{else}col-lg-12{/if}">
							<label class="control-label">
								{l s='Quantity:'}
							</label>
							<div class="input-group">
								<input onchange="checkPartialRefundProductQuantity(this)" type="text" name="partialRefundProductQuantity[{$product['id_order_detail']|intval}]" value="{if ($customization['quantity']-$customization['quantity_refunded']) >0}1{else}0{/if}" />
								<div class="input-group-addon">/ {$product['quantity_refundable']}</div>
							</div>
						</div>
						<div class="{if $product['quantity_refundable'] > 0}col-lg-8{else}col-lg-12{/if}">
							<label class="control-label">
								<span class="title_box ">{l s='Amount:'}</span>
								<small class="text-muted">({$smarty.capture.TaxMethod})</small>
							</label>
							<div class="input-group">
								{if $currency->format % 2}<div class="input-group-addon">{$currency->sign}</div>{/if}
								<input onchange="checkPartialRefundProductAmount(this)" type="text" name="partialRefundProduct[{$product['id_order_detail']|intval}]" />
								{if !($currency->format % 2)}<div class="input-group-addon">{$currency->sign}</div>{/if}
							</div>
							<p class="help-block"><i class="icon-warning-sign"></i> {l s='(Max %s %s)' sprintf=[Tools::displayPrice(Tools::ps_round($amount_refundable, 2), $currency->id), $smarty.capture.TaxMethod]}</p>
						</div>
					</div>
					{/if}
				</td>
				{if ($can_edit && !$order->hasBeenDelivered())}
					<td class="edit_product_fields" colspan="2" style="display:none"></td>
					<td class="product_action" style="text-align:right"></td>
				{/if}
			</tr>
		{/if}	
		{/foreach}
	{/foreach}

 

Link to comment
Share on other sites

De mon côté, j'ai bien les infos dans toutes les tables (customization, customization_field, Customized_data...) sauf que le lien ne peut pas se faire vu que la colonne product_customization_id n'enregistre pas la valeur permettant de récupérer les infos. Saurais tu depuis quelle fonction cette valeur est supposée s'inscrire dans cette colonne ?

Capture d’écran 2023-04-02 à 18.29.15.png

Link to comment
Share on other sites