diff --git a/local/modules/OrderStatusNotify/EventListeners/OrderStatusListener.php b/local/modules/OrderStatusNotify/EventListeners/OrderStatusListener.php index b3a836aa..e74a8b81 100644 --- a/local/modules/OrderStatusNotify/EventListeners/OrderStatusListener.php +++ b/local/modules/OrderStatusNotify/EventListeners/OrderStatusListener.php @@ -8,8 +8,10 @@ use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Thelia\Core\Event\Order\OrderEvent; use Thelia\Core\Event\TheliaEvents; use Thelia\Mailer\MailerFactory; +use Thelia\Model\OrderStatus; use Thelia\Model\OrderStatusI18nQuery; use Thelia\Log\Tlog; +use Thelia\Model\OrderStatusQuery; /** * Class OrderStatusListener @@ -36,9 +38,32 @@ class OrderStatusListener implements EventSubscriberInterface { $order = $event->getOrder(); $new_status_id = $event->getStatus(); + $order_status_code = OrderStatusQuery::create() + ->findOneById($new_status_id) + ->getCode(); $is_order_status_to_notify = OrderStatusNotificationQuery::create()->findOneByOrderStatusId($new_status_id); if (null !== $is_order_status_to_notify) { + + $delivery_module = $order->getModuleRelatedByDeliveryModuleId()->getCode(); + if ($order_status_code === OrderStatus::CODE_SENT) { + switch ($delivery_module) { + case "MondialRelay": + $delivery_link = 'https://www.mondialrelay.fr/suivi-de-colis/' . $order->getDeliveryRef(); + break; + case "Colissimo": + case "ColissimoWs": + $delivery_link = 'https://www.colissimo.fr/portail_colissimo/suivreResultat.do?parcelnumber=' . $order->getDeliveryRef(); + break; + case "Chronopost": + case "ChronopostHomeDelivery": + $delivery_link = 'https://www.chronopost.fr/tracking-no-cms/suivi-page?listeNumerosLT=' . $order->getDeliveryRef(); + break; + default: + $delivery_link = "No link"; + } + } + $new_statut_label = OrderStatusI18nQuery::create() ->filterByLocale($order->getLang()->getLocale()) ->findOneById($new_status_id) @@ -51,6 +76,7 @@ class OrderStatusListener implements EventSubscriberInterface 'order_id' => $order->getId(), 'order_ref' => $order->getRef(), 'new_status' => $new_statut_label, + 'delivery_link'=> $delivery_link ] ); Tlog::getInstance()->debug("Order status change sent to customer " . $order->getCustomer()->getEmail()); diff --git a/local/modules/OrderStatusNotify/I18n/fr_FR.php b/local/modules/OrderStatusNotify/I18n/fr_FR.php index 074726e0..f891e216 100644 --- a/local/modules/OrderStatusNotify/I18n/fr_FR.php +++ b/local/modules/OrderStatusNotify/I18n/fr_FR.php @@ -9,4 +9,6 @@ return [ 'Purpose of feature' => 'Veuillez sélectionner les statuts de commande pour lesquels vous souhaitez notifier le client : dès que la commande passera dans ce statut, un email sera envoyé au client.', 'Change on your order %ref on %store_name' => 'Evolution sur votre commande %ref sur le site %store_name', 'Hello, your order has just changed to' => 'Bonjour, votre commande vient de passer à l\'état : ', + 'Follow your order here:' => 'Suivez votre colis en cliquant ici : ', + 'Delivery link' => '%link', ]; diff --git a/templates/email/default2020/order_status_changed.html b/templates/email/default2020/order_status_changed.html index 093feabe..0781623c 100644 --- a/templates/email/default2020/order_status_changed.html +++ b/templates/email/default2020/order_status_changed.html @@ -74,6 +74,9 @@ {intl l="Paid With:"} {loop name="payment-module" type="module" id=$PAYMENT_MODULE}{$TITLE}{/loop}
{intl l="Purchase Date:"} {format_date date=$CREATE_DATE output="datetime"}
{intl l="Delivery method:"} {loop name="delivery-module" type="module" id=$DELIVERY_MODULE}{$TITLE}{/loop}
+ {if $IS_SENT} + {intl l="Follow your order here:" d="orderstatusnotify"} {intl l="Delivery link" d="orderstatusnotify" link={$delivery_link}}
+ {/if}

{hook name="email-html.order-notification.before-products" order=$order_id}