Si j'ai bien compris je dois dans l'ordre faire ce qui suit:
1/ Sous Controller de mon module ajouter un contrôleur:
<?php
namespace CreateOrUpdateCustomer\Controller;
use Thelia\Controller\Front\BaseFrontController;
class CreateCustomerController extends BaseFrontController
{
public function createCustomer()
{
$customerCreateEvent = new CustomerCreateOrUpdateEvent(
$data['title'],
$data['firstname'], // First name
$data['lastname'],
$data['address1'], // address 1'',
$data['address2'], // address 2'',
'', // address 3'',
'', // telephone
$data['cellphone'], // cellphone,
$data['zipcode'], // zip code,
$data['city'], // city,
$data['country'],
$data['email'],
md5($data['email']), // password
$this->getSession()->getLang()->getId(),
null, // reseller
null, // sponsor
0, // discount
null, // company
null // ref
);
$this->dispatch(TheliaEvents::CUSTOMER_CREATEACCOUNT, $customerCreateEvent);
if ($customerCreateEvent->hasCustomer()) {
$this->dispatch(TheliaEvents::CUSTOMER_LOGIN, new CustomerLoginEvent($customer));
} else {
throw new TheliaException("Echec de création du compte client");
}
}
}
2/ Dans le fichier routing.xml de mon module j'ajoute:
<route id="CreateOrUpdateCustomer." path="/CreateOrUpdateCustomer/Controller/CreateCustomer">
<default key="_controller">CreateOrUpdateCustomer:Controller:CreateCustomer</default>
</route>
C'est un peu flou pour moi parce que je vois comment jvai dire à mon appli de déclencher mon contrôleur au moment de l'authentification du customer