Jump to content

Erreur back-office "Trying to access array offset on value of type null"


Recommended Posts

Bonjour,

Sur un site ayant été migré de 1.6 vers 1.7 nous rencontrons l'erreur suivante sur le back-office lors de l'ouverture d'une commande : "Trying to access array offset on value of type null".

Voyez la capture d'écran ci-dessous:Screenshot 2024-07-17 at 21.10.50.png

J'ai vérifié que les pays étaient tous bel et bien renseigné, le profil client de la personne en questions avec ses deux adresses, tout est en ordre, aucun champ n'est manquant ou mal renseigné.

Quelques informations concernant le magasin en ligne :

  • Version de PrestaShop : 1.7.8.11
  • Version de PHP : 7.4.33
  • Version de MySQL : 11.2.4-MariaDB-deb12
  • Moteur MySQL : InnoDB

Aucun fichier modifié, thème enfant basé sur "classic".

Surcharges utilisées :

  • classes/Cart.php
  • controllers/front/CmsController.php

Avez-vous une idée de vers où regarder ?
Merci d'avance pour votre aide !

Edited by Mathilde B.
typo (see edit history)
Link to comment
Share on other sites

Bonjour,

J'ai l'impression que la commande n'a pas de langue associée.

Il faudrait vérifier que la ligne associée dans la table ps_orders a bien une valeur pour la colonne id_lang et que cette langue est bien activée dans le BO.

Si ce n'est pas le cas, il faut activer la langue ou modifier l'id_lang dans la table.

Pour éviter tout problème avec d'autres commandes déjà passées, il faudrait faire une modification au global sur cette table:

UPDATE ps_orders SET id_lang={un id_lang fonctionnel} WHERE id_lang IS NULL or id_lang=0 (ou l'id_lang qui n'est pas activé)

Link to comment
Share on other sites

Posted (edited)

Bonjour,

J'ai vérifié et une seule langue est installée sur le site : français, avec l'ID nº2.

J'ai donc lancé la commande "UPDATE ps_orders SET id_lang=2 WHERE id_lang IS NULL or id_lang=0;" et malheureusement le résultat est le suivant :

Query OK, 0 rows affected (0.003 sec)
Rows matched: 0  Changed: 0  Warnings: 0

En essayant d'accéder à la commande en question, le même problème se pose toujours.

Merci tout de même pour votre aide et la piste.

Edited by Mathilde B.
formatting (see edit history)
Link to comment
Share on other sites

Bonjour,

Est-ce que la table ps_country_lang contient bien une valeur pour l'id_lang 2 ? 

C'est relié à l'adresse de facturation, il faudrait:

- Regarder les addresses liées au client : SELECT * FROM ps_address WHERE id_customer=[id du client]

- Regarder pour l'id_country des addresses si le pays a une valeur pour l'id_lang 2 dans la table ps_country_lang

Link to comment
Share on other sites

Create an account or sign in to comment

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

Create an account

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

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...