THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Hello!

Je suis toujours en cours de développement de mon module "addAddtionnalCustomerField" (infosupclient sur la V1).

Dans mon module en cours de création j'ai ajouté des events :

CustomerEvent::POST_INSERT => ["createCustomer", 128],
CustomerEvent::POST_UPDATE => ["updateCustomer", 128]

Sauf qu'ils se déclenchent pendant que j'utilise le module d'import (V1 -> V2) et donc ça fait tout foirer big_smile

Donc deux questions :
1/ Y a-t-il possibilité de détecter le fait que l'event est déclenché via le module d'import ?
2/ Y a-t-il possibilité de lier le module d'import à mon module pour faire un import des données T1 vers T2 relatives à ce module ?

Last edited by Elyos (11-04-2024 09:20:23)


Aide les autres, ils t'aideront en retour.

Offline


Ces event son envoyés quand la table customer est mise à jour.

Utilise plutôt les event CUSTOMER_UPDATEACCOUNT et CUSTOMER_CREATEACCOUNT, qui sont envoyés quand les formulaires sont soumis, donc pas lors de l'utilisation du module d'import.


OpenStudio Toulouse

Offline


Salut Roadster,

C'est les events que j'utilisais au début mais je ne sais plus pour quelle(s) raison(s) je les ai changé.
Je vais regarder ça...

En attendant j'ai mis ça (qui fonctionne) :

$formDatas = $this->request->get($formName, []);
if(!empty($formDatas)){

avec $formName qui prend la valeur thelia_customer_create ou thelia_customer_update


Aide les autres, ils t'aideront en retour.

Offline


Dans importT1 j'ai tout de même :

$this->dispatcher->dispatch($event, TheliaEvents::CUSTOMER_CREATEACCOUNT);

Donc je suppose que ça va déclencher le code tout de même.

Mais je suis quand même revenu en arrière et j'ai mis :

TheliaEvents::CUSTOMER_CREATEACCOUNT => ["createCustomer", 128],
TheliaEvents::CUSTOMER_UPDATEPROFILE => ["updateProfile", 128],
TheliaEvents::CUSTOMER_UPDATEACCOUNT => ["updateCustomer", 128],
public function createCustomer(CustomerCreateOrUpdateEvent $event){
	$this->createOrUpdateCustomer($event,'thelia_customer_create');
}
public function createOrUpdateCustomer(CustomerCreateOrUpdateEvent $event, $formName)
{
	$formDatas = $this->request->get($formName, []);
	if(!empty($formDatas)){
//...

Et à priori plus de souci ^^'

Last edited by Elyos (09-02-2024 09:22:31)


Aide les autres, ils t'aideront en retour.