How to perform custom javascript on place order but before redirection to payment gateway in Magento 1.9?

Viewed 222

I need to integrate my Magento with some order tracking service. The service provider asked me to include some code on the last page of the checkout process but before a customer is redirected to the payment gateway. I use one page checkout. Simplified version of the code is something like this

<script type="text/javascript">
var webOrder = {
"id": shop_id,
"sum": order_value
};
</script>
<script type="text/javascript" src="//serivce_address/before.js"></script>

I do not want this code to execute until customer accepts agreements and clicks place order and the order is accepted. How can I do that?

1 Answers

You can use the event/observer method of Magento to do something after the order is placed. You can use this event

sales_order_place_after

In your module's events.xml

<?xml version=""1.0""?>
<config xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xsi:noNamespaceSchemaLocation=""urn:magento:framework:Event/etc/events.xsd"">
    <event name=""sales_order_place_after"">
        <observer name=""observername"" instance=""Vendor\Module\Observer\YourClass"" />
    </event>
</config>

and in YourClass.php

<?php
namespace NBG\Mailtrigger\Observer;
class YourClass implements \Magento\Framework\Event\ObserverInterface
{
    public function execute(\Magento\Framework\Event\Observer $observer)
    {
        $order = $observer->getEvent()->getOrder();
        $orderIncrementId = $order->getIncrementId();
        // your logic...
    }
}
Related