eCommerce allows you to hook into several related events. These are stubbed out for developers who wish to extend the package's functionality.
Looking in packages/core_commerce/models/events, we see three files:
Each provides us an opportunity to fire other code when these events happen.
This discussion details some modifications that community members have used to add them.
For instance, to send a simple mail message when a customer completes all the steps in the eCommerce checkout, we'll want to override change_order_status.php and add some code that runs when the order status is "authorized":
case CoreCommerceOrder::STATUS_AUTHORIZED: $email = $order->getOrderEmail(); $mh = Loader::helper('mail'); $mh->to($email, "Customer"); $mh->setSubject("Who let the dogs out?"); $mh->setBody("Woof. Your order number is " . $order->getOrderID() . "."); try { $mh->sendMail(); } catch (Exception $e) { Log::addEntry('Error sending receipt email for order #' . $order->getOrderID() . ': ' . $e->getMessage()); } break;
This will load a mail template named order_placed.php from your mail overrides directory and send it. Exceptions (errors) will be logged.
More documentation on sending mail is available in our Developer's Guide.