Jump to content

[Résolu] Générer Secure Key Dans La Table Ps_Costumer Suite À Migration


Recommended Posts

Bonjour à tous !

 

Voilà j'ai migré l'an passé ma boutique sous Prestashop et tout se passe très bien, sauf que mes clients qui avait créé leurs comptes avant cette migration n'ont pas de "secure key" dans la table ps_costumer de ma base et cela pose souci au niveau de la validation de la commande (commande vide mais bien payée avec un message de warning : the secure key is empty).

Bref, comment générer cette fameuse secure key ? J'ai cherché, mais je n'ai pas trouvé...

 

Merci de votre aide !

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

J'ai trouvé, EUREKA !

Si ça peut intéresser :

1 - exporter depuis la BDD "ps_customer" en CSV pour excel

2 - éditer le fichier sous excel et ne garder que les clients qui ont une secure_key manquante puis sauvegarder

3 - ajouter ce bout de code "if (empty($this->secure_key))

$this->secure_key = md5(uniqid(rand(), true));" dans le fichier classes/Customer.php vers la ligne 167

:

public function update($nullValues = false)

{

$this->birthday = (empty($this->years) ? $this->birthday : (int)$this->years.'-'.(int)$this->months.'-'.(int)$this->days);

if (empty($this->secure_key))

$this->secure_key = md5(uniqid(rand(), true));

if ($this->newsletter AND !$this->newsletter_date_add)

$this->newsletter_date_add = date('Y-m-d H:i:s');

return parent::update(true);

}

4 - aller dans le BO de presta - outils - import ; importer votre fichier CSV, charger le fichier, sélectionner "clients" pour l'entité puis suivant, faites correspondre les colonnes et zou lancer l'import

 

Puis vérifier dans la bdd, tous les clients ont enfin une secure_key

Vous pouvez supprimer ensuite la ligne de code dans classes/Customer.php

  • Like 1
Link to comment
Share on other sites

  • 2 months later...
  • 2 months later...

bonjour sarah

merci pour tes infor. Quelle version de PS utilises tu?

La ligne où coller le bout de code est t elle la même en 1.5.4?

 

merci

 

Je m'excuse pour la réponse tardive, ma version : 1.4.7

et j'ajoute le bout de code juste après birthday la où il y a cette fonction :

public function update($nullValues = false)

{

$this->birthday = (empty($this->years) ? $this->birthday : (int)$this->years.'-'.(int)$this->months.'-'.(int)$this->days);

if ($this->newsletter AND !$this->newsletter_date_add)

$this->newsletter_date_add = date('Y-m-d H:i:s');

return parent::update(true);

}

Link to comment
Share on other sites

  • 8 months later...

Complément d'information.

Testant cette proposition avcec un import 1.4.4.2 vers un 1.5.6.2, la génération de la secure_key se fait de façon automatique si on importe via le BO de PS. Avec ou sans ce code rajouté, le secure_key est bien présente et permet de reconnaître le compte client de l'interface de la boutique.

En revanche, via un import direct dans le BdD via phpMySql d'un client A, et après un test d'importation via le BO avec un autre compte client B, cela ne génère pas les secure_key sur A avec ce code rajouté.

Je n'ai pas d'explication, mais c'est un constat. Si vous en avez une je suis preneur.

Merci aux contributeurs de ce topic a posteriori et a priori

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...