new: send alert email when Paybox payment arrives on cancelled order

When a Paybox callback confirms payment on an order with status 4
(Annulé), the payment is still recorded but the order status is no
longer forced to « Préparation ». Instead, an alert email is sent to
``commande@jardinenvie.com`` warning that a refund is likely needed.

New ``AlertePaiementAnnule`` mailable with DB template providing order
ref, amount, customer info and payment reference. New method
``OrderMails::sendCancelledOrderPaymentAlert()`` handles the dispatch.
This commit is contained in:
Valentin Lab
2026-02-20 11:52:03 +01:00
parent 5c10645af7
commit 5325fa1f06
4 changed files with 178 additions and 6 deletions

View File

@@ -3,9 +3,11 @@
namespace App\Repositories\Shop;
use App\Mail\Acheminement;
use App\Mail\AlertePaiementAnnule;
use App\Mail\ConfirmationCommande;
use App\Mail\Preparation;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Log;
class OrderMails
{
@@ -37,4 +39,25 @@ class OrderMails
return Mail::to($order->customer->email)->send($mail);
}
public static function sendCancelledOrderPaymentAlert($orderId, $reference)
{
$order = Orders::get($orderId, ['customer']);
try {
Mail::to('commande@jardinenvie.com')
->send(new AlertePaiementAnnule($order, $reference));
Log::info('Cancelled order payment alert sent', [
'order_id' => $orderId,
'order_ref' => $order->ref,
'reference' => $reference,
]);
} catch (\Throwable $e) {
Log::error('Failed to send cancelled order payment alert', [
'order_id' => $orderId,
'order_ref' => $order->ref,
'exception' => $e->getMessage(),
]);
}
}
}