Jump to content

Bug après la migration 1.6 vers 1.7.8.5 - Argument 2 passed must be of the type string - $orderMessage['private']


Anthony Tran

Recommended Posts

Bonjour,

Suite à la migration d'un prestashop de dernière version 1.6 vers la 1.7.8.5, je me retrouve (parfois) à avoir une erreur sur une commande. Ce n'est pas récurrent mais ça arrive de temps à autre (1 commande sur 5). J'ai un message vide qui se créer également dans l'onglet SAV.

J'ai tenté de reproduire le bug mais je n'y arrive pas.

Type error: Argument 2 passed to PrestaShop\PrestaShop\Core\Domain\Order\QueryResult\OrderMessageForViewing::__construct() must be of the type string, null given, called in /--privatefolder--/src/Adapter/Order/QueryHandler/GetOrderForViewingHandler.php on line 691
in src/Core/Domain/Order/QueryResult/OrderMessageForViewing.php (line 91)

public function __construct(
        int $messageId,
        string $message,
        OrderMessageDateForViewing $messageDate,
        int $employeeId,
        bool $isCurrentEmployeesMessage,
OrderMessageForViewing->__construct(0, null, object(OrderMessageDateForViewing), 0, false, null, null, '--PRENOM--', '--NOM--', false) in src/Adapter/Order/QueryHandler/GetOrderForViewingHandler.php (line 691)

				$isCurrentEmployeesMessage,
                $orderMessage['efirstname'],
                $orderMessage['elastname'],
                $orderMessage['cfirstname'],
                $orderMessage['clastname'],
                (bool)$orderMessage['private']

Problème lié à la ligne : $orderMessage['private'], donc lié au message.

 

Je vous donne le maximum d'information que j'ai constater :

  • l'erreur affecte seulement la commande en question lorsque je veux accéder au détail complet (lorsque l'on clique sur la commande). Sur le slide down aucun problème.
  • Le client a écrit un message. Au niveau de l'horodatage, son message est avant le message vide suivi du message de validation de paiement (message automatique envoyé en privé). On parle en millième de secondes.
  • Un message vide est créer dans l'onglet SAV et celui-ci est lié à la commande/client

 

Solution provisoire trouvé qui enlève cette erreur :

  • J'ai créer une ligne manuellement sur la BDD dans la table customer_message avec l'id du message vide qui est affiché dans le back office à l'onglet SAV. Avec ça, je n'ai plus l'erreur
  • Je supprime directement le message vide dans l'ongle SAV.

 

J'ai fait énormément de recherche sans trouver de solution.

Beaucoup de solution sont lié à des adresses vides, etc.. j'ai tenté cette approche en mettant également à jour ma BDD mais rien n'y fait j'ai toujours ce problème.

Ces topics sont identique à mon problème :

 

 

Link to comment
Share on other sites

  • 5 months later...
  • 1 year later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...