<?xml version="1.0" encoding="UTF-8"?>
 <modification>
    <id>Add GA and FB Ecommerce Tracking</id>
    <version>2.0.3.1</version>
    <vqmver>2.2.2</vqmver>
    <author>Bravo Net Solution</author>
    <link>http://bravonet.my</link>
    
    <file name="catalog/model/checkout/order.php">
        <operation>
            <search position="before"><![CDATA[public function getOrder($order_id) {]]></search>
            <add><![CDATA[
                 public function getOrderTax($order_id){
                    $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_total WHERE code = 'tax' AND order_id = '" . $order_id . "' LIMIT 1");

                    return $query->row; 

                }

                public function getOrderShipping($order_id){
                    $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_total WHERE code = 'shipping' AND order_id = '" . $order_id . "' LIMIT 1");

                    return $query->row; 

                }

                public function getOrderProducts($order_id){
                    $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . $order_id . "'");

                    if($query->num_rows){
                            return $query->rows;
                    } else {
                            return false;   
                    }

                }
                ]]></add>
        </operation>
                
    </file>
    
    <file name="catalog/controller/checkout/success.php">
        <operation>
            <search position="after"><![CDATA[if (isset($this->session->data['order_id'])) {]]></search>
            <add><![CDATA[
                $order_id = $this->session->data['order_id'];
                ]]></add>
        </operation>  
    </file>
    
    <file name="catalog/controller/checkout/success.php">

        <operation>
            <search position="after"><![CDATA[$this->data['heading_title'] = $this->language->get('heading_title');]]></search>
            <add><![CDATA[
                //NOC get Order-details
                if(isset($order_id))
                {
                    //LOAD MODEL
                    $this->load->model('checkout/order');

                    //GET ORDER DETAILS
                    $order_info = $this->model_checkout_order->getOrder($order_id);

                    //NEW MODEL TO COLLECT TAX
                    $get_order_tax = $this->model_checkout_order->getOrderTax($order_id);

                    if($get_order_tax){
                            //ASSIGN TAX TO NEW VARIABLE
                            $order_tax = $get_order_tax['value'];
                    } else {
                            //THERE WAS NO TAX COLLECTED
                            $order_tax = '';
                    }

                    //NEW MODEL TO COLLECT SHIPPING
                    $get_order_shipping = $this->model_checkout_order->getOrderShipping($order_id);

                    if($get_order_shipping){
                            //ASSIGN SHIPPING TO NEW VARIABLE
                            $order_shipping = $get_order_shipping['value'];
                    } else {
                            //THERE WAS NO SHIPPING COLLECTED
                            $order_shipping = 0;
                    }

                    //NEW MODEL TO COLLECT ALL PRODUCTS ASSOCIATED WITH ORDER
                    $get_order_products = $this->model_checkout_order->getOrderProducts($order_id);

                    //CREATE ARRAY TO HOLD PRODUCTS
                    $order_products = array();

                    foreach($get_order_products as $prod){              

                            $order_products[] = array(
                                    'order_id'  => $order_id,
                                    'model'     => $prod['model'],
                                    'name'      => $prod['name'],
                                    'category'  => '',
                                    'price'     => number_format($prod['price'], 2, '.', ','),
                                    'quantity'  => $prod['quantity']
                            );

                    }

                    //NEW ORDER ARRAY
                    $order_tracker = array(
                            'order_id'    => $order_id,
                            'store_name'  => $order_info['store_name'],
                            'total'       => $order_info['total'],
                            'tax'         => $order_tax,
                            'shipping'    => $order_shipping,
                            'city'        => $order_info['payment_city'],
                            'state'       => $order_info['payment_zone'],
                            'country'     => $order_info['payment_country'],
                            'currency'    => $order_info['currency_code'],
                            'products'    => $order_products
                    );

                    $this->data['order_tracker'] = $order_tracker;

                }
                ]]></add>
        </operation>
                
    </file> 
    
    <file name="catalog/view/theme/*/template/common/success.tpl">
        <operation>
            <search position="after"><![CDATA[<div id="content">]]></search>
            <add><![CDATA[
                <!-- order tracker here-->
                <?php if(isset($order_tracker)){ 

                    $tracking_info = '<script type="text/javascript">';
                    $tracking_info .= "ga('require', 'ecommerce');";

                    //ADD TOP LEVEL TRACKING INFO
                    $tracking_info .= "ga('ecommerce:addTransaction', {
                    id: '" . $order_tracker['order_id'] . "', 
                    affiliation: '" . $order_tracker['store_name'] . "',
                    revenue: '" . $order_tracker['total'] . "', 
                    shipping: '" . $order_tracker['shipping'] . "' , 
                    tax: '" . $order_tracker['tax'] . "' }); ";


                    //ADD INFO FOR EACH PRODUCT
                    foreach($order_tracker['products'] as $product){
                        $tracking_info .= "ga('ecommerce:addItem', {
                        id: '" . $order_tracker['order_id'] . "',
                        sku: '" . $product['model'] . "',
                        name: '" . $product['name'] . "', 
                        category: '', 
                        price: '" . $product['price'] . "', 
                        quantity: '" . $product['quantity'] . "'});";
                    }

                    $tracking_info .= "ga('ecommerce:send');";


                    $tracking_info .= '</script>';

                    echo $tracking_info;

                    ?>

                    <script>
                    fbq('track', 'Purchase', {
                    value: <?php echo $order_tracker['total']; ?>,
                    content_type: 'product',
                    currency: 'USD'
                    });
                    </script>

                <?php } ?>
                ]]></add>
        </operation>
    </file> 


</modification>