12 Juil 2018

Erreur 500 adresse client Prestashop 1.7

Sur un Prestashop 1.7.3 j’ai rencontré un problème assez embêtant. Lorsqu’un client voulait enregistrer une adresse de livraison ou de facturation, le site affichait une erreur 500. Voici comment résoudre ce problème assez facilement.

Problèmes rencontrés dans le compte client

Pour ma part c’était lors d’une création ou modification d’une adresse quand on est sur son compte client dans Prestashop.
Cela concerne l’adresse de livraison ou bien de facturation.

Cette solution va vous permettre (normalement) de corriger aussi une erreur qui peut arriver lors de l’enregistrement d’une adresse dans le tunnel d’achat.

Si lors de la sauvegarde d’une adresse sur Prestashop vous avez une page blanche avec erreur 500, la réponse à votre problème risque fort d’être ci-dessous.

Correction de l’erreur 500

J’ai corrigé mon problème sur 1.7.3 mais je sais que cela fonctionne aussi sur Prestashop 1.7.2.

Vous devez modifier le fichier CustomerAddressPersister.php dans : classes\form\.
Remplacez la fonction save(Address $address, $token) à la ligne 67 par celle-ci :

 public function save(Address $address, $token)
{
if (!$this->authorizeChange($address, $token)) {
return false;
}

$address->id_customer = $this->customer->id;

if ($address->isUsed()) {
$old_address = new Address($address->id);
$address->id = $address->id_address = null;

if ($old_address->id) {
$old_address->delete();
}

return $address->save();
}

return $address->save();
}