Bonjour Eolia, en faîtes après coup je me suis rendu compte que le hookpostUpdateOrderStatus($params) pose problème 😕
Dans mon script pour le premier cas ça me créer le bug suivant :
--
Dans l'aperçu général des commandes mon état est bien mis à jour ( capture 1 )
Mais dans le détail de la commande le statut n'est pas activé. ( capture 2 )
La commande à un statut "cette commande n'a pas d'état défini" dans le compte client. ( capture 3 )
Par contre pour le second cas, donc après génération de la commande le statut change bien partout comme il faut ..
--
le script :
public function hookActionOrderStatusPostUpdate($params)
{
if($params['newOrderStatus']->id == 1){
$id_cmd_change = $params['id_order'];
$res_order = Db::getInstance()->executeS("REQUETE*");
foreach ($res_order as $res_order_unique=>$value) {
// INITIER LES VARIABLES
require_once('../vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$ref_unique = $value['reference'];
$adresse_livraison = $value['address_delivery'];
$adresse_facturation = $value['address_invoice'];
$client_site = $value['customer'];
$mode_livraison = $value['carrier_name'];
$date_cmd = $value["DATE_FORMAT(o.date_add,'%d/%m/%y')"];
$email_client = $value['email'];
$request = $client->createRequest('POST', 'https://api.sendinblue.com/v3/smtp/email', [
'body' => "{\"sender\":{\"name\":\"Service Client\",\"email\":\"[email protected]\"},\"to\":[{\"email\":\"$email_client\",\"name\":\"$client_site\"}],\"replyTo\":{\"email\":\"[email protected]\",\"name\":\"Service Client\"},\"params\":{\"PRENOM\":\"$client_site\",\"ORDER_REF\":\"$ref_unique\",\"DATE\":\"$date_cmd\",\"DELIVERYADDRESS\":\"$adresse_livraison\",\"INVOICEADDRESS\":\"$adresse_facturation\"},\"templateId\":3}",
'headers' => [
'Accept' => 'application/json',
'Content-Type' => 'application/json',
'api-key' => 'xxxxxxxxxxxxx',
],
]);
$client->send($request);
}
}
if($params['newOrderStatus']->id == 4){
//include('../emails-transactionnels/query-expedie.php');
$id_cmd_change = $params['id_order'];
$res_order = Db::getInstance()->executeS("REQUETE*
");
//$i= 1;
foreach ($res_order as $res_order_unique=>$value) {
// INITIER LES VARIABLES
include('../vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$ref_unique = $value['reference'];
$adresse_livraison = $value['address_delivery'];
$adresse_facturation = $value['address_invoice'];
$client_site = $value['customer'];
$mode_livraison = $value['carrier_name'];
$date_cmd = $value['date_add'];
$email_client = $value['email'];
$num_suivi = $value['tracking_number'];
$track_num_suivi = "https://www.laposte.fr/outils/suivre-vos-envois?code=$num_suivi";
$request = $client->createRequest('POST', 'https://api.sendinblue.com/v3/smtp/email', [
'body' => "{\"sender\":{\"name\":\"Service Client\",\"email\":\"@gmail.com\"},\"to\":[{\"email\":\"$email_client\",\"name\":\"$client_site\"}],\"replyTo\":{\"email\":\"@gmail.com\",\"name\":\"Service Client\"},\"params\":{\"PRENOM\":\"$client_site\",\"ORDER_REF\":\"$ref_unique\",\"DATE\":\"$date_cmd\",\"DELIVERYADDRESS\":\"$adresse_livraison\",\"INVOICEADDRESS\":\"$adresse_facturation\",\"NUMTRACKING\":\"$num_suivi\",\"TRACKINGSUIVI\":\"$track_num_suivi\"},\"templateId\":1}",
'headers' => [
'Accept' => 'application/json',
'Content-Type' => 'application/json',
'api-key' => 'xxxxxxxxxxxxxxxxx',
],
]);
$client->send($request);
// $i++;
}
}
}
}
Une petite idée ?
Merci beaucoup !!