<?xml version="1.0" encoding="utf-8"?>
<modification>
    <name>Ecommerce Analytics PRO [3xxx]</name>
    <version>3.0.2</version>
    <author>HuntBee OpenCart Services</author>
    <link>https://www.huntbee.com</link>
	<code>huntbee_analytics_ecommerce_ocmod</code>
	
	<file path="catalog/controller/common/header.php">
		<operation>
			<search><![CDATA[$this->load->language('common/header');]]></search>
			<add position="before"><![CDATA[
			    $ga_customer_id = false;
			    
			    if ($this->customer->isLogged()) {
			        $ga_customer_id =  (int)$this->customer->getId();
			    }elseif ($this->config->get('ga_ecom_ip_match')) {
			        if (isset($_SERVER['REMOTE_ADDR'])) {
			            $ip = $_SERVER['REMOTE_ADDR'];
			            $customer_ip = $this->db->query("SELECT customer_id FROM ".DB_PREFIX."customer_ip WHERE `ip` = '".$this->db->escape($ip)."' LIMIT 1");
			            if ($customer_ip->row) {
			                $ga_customer_id = $customer_ip->row['customer_id'];
			            }
			        }
			    }
			    
			    if ($ga_customer_id && $this->config->get('ga_ecom_user_tracking')) {
			        $data['ga_user_tracking_script'] = "<script>gtag('set', {'user_id': '".$ga_customer_id."'});</script>";
			    }else{
			        $data['ga_user_tracking_script'] = '';
			    }
				
				$this->load->model('extension/module/google_ecommerce');
			    
			    if ($this->config->get('ga_ecom_tracking_code')){ 
			        $data['google_analytics_script'] = html_entity_decode($this->config->get('ga_ecom_tracking_code'), ENT_QUOTES, 'UTF-8');
			    }else{
			        $data['google_analytics_script'] = '';
			    }
			    
			    if ($this->config->get('ga_ecom_fb_px_id')){ 
			        $data['fb_pixel_script'] = $this->model_extension_module_google_ecommerce->pixel_base_code($this->config->get('ga_ecom_fb_px_id'));
			    }else{
			        $data['fb_pixel_script'] = '';
			    }
			    
			    if ($this->config->get('ga_ecom_event_language')){ 
			        $data['event_lang_script'] = true;
			    }else{
			        $data['event_lang_script'] = false;
			    }
			    
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/view/theme/*/template/common/header.twig">
        <operation>
            <search><![CDATA[</head>]]></search>
            <add position="before"><![CDATA[
			{% if (google_analytics_script is defined) %} {{ google_analytics_script }} {% endif %} 
            <!--huntbee GA user tracking -->{% if (ga_user_tracking_script is defined) %} {{ ga_user_tracking_script }} {% endif %} 
            {% if (event_lang_script) %} 
                <script>gtag('event', 'Web Langauge', {'event_category' : 'Web Langauge', 'event_label' : '{{ lang }}'});</script>
            {% endif %} 
            {% if (fb_pixel_script is defined) %} {{ fb_pixel_script }} {% endif %}
			]]></add>
        </operation>
    </file>
	
	<file path="catalog/controller/product/category.php">
		<operation>
			<search><![CDATA[$results = $this->model_catalog_product->getProducts($filter_data);]]></search>
			<add position="after"><![CDATA[
			   $this->load->model('extension/module/google_ecommerce');
			   if ($results and isset($data['breadcrumbs'])) {
			     $data['product_impression_script'] =  $this->model_extension_module_google_ecommerce->build_product_impression($results, $page, $limit, $data['breadcrumbs'], 'Category Page');
    		   }else{
    			  $data['product_impression_script'] = '';
    		   }
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/product/manufacturer.php">
		<operation>
			<search><![CDATA[$results = $this->model_catalog_product->getProducts($filter_data);]]></search>
			<add position="after"><![CDATA[
			   $this->load->model('extension/module/google_ecommerce');
			   if ($results and isset($data['breadcrumbs'])) {
			     $data['product_impression_script'] =  $this->model_extension_module_google_ecommerce->build_product_impression($results, $page, $limit, $data['breadcrumbs'], 'Manufacturer Page');
    		   }else{
    			  $data['product_impression_script'] = '';
    		   }
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/product/search.php">
		<operation>
			<search><![CDATA[$results = $this->model_catalog_product->getProducts($filter_data);]]></search>
			<add position="after"><![CDATA[
			   $this->load->model('extension/module/google_ecommerce');
			   if ($results and isset($data['breadcrumbs'])) {
			     $data['product_impression_script'] =  $this->model_extension_module_google_ecommerce->build_product_impression($results, $page, $limit, $data['breadcrumbs'], 'Search Page');
    		   }else{
    			  $data['product_impression_script'] = '';
    		   }
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/product/special.php">
		<operation>
			<search><![CDATA[$results = $this->model_catalog_product->getProductSpecials($filter_data);]]></search>
			<add position="after"><![CDATA[
			   $this->load->model('extension/module/google_ecommerce');
			   if ($results and isset($data['breadcrumbs'])) {
			     $data['product_impression_script'] =  $this->model_extension_module_google_ecommerce->build_product_impression($results, $page, $limit, $data['breadcrumbs'], 'Special Page');
    		   }else{
    			  $data['product_impression_script'] = '';
    		   }
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/product/product.php">
		<operation>
			<search><![CDATA[$product_info = $this->model_catalog_product->getProduct($product_id);]]></search>
			<add position="after"><![CDATA[
			   $this->load->model('extension/module/google_ecommerce');
			   if ($product_info and isset($data['breadcrumbs'])) {
			     $product_view_script =  $this->model_extension_module_google_ecommerce->build_product_view($product_info, $data['breadcrumbs']);
			     $data['ga_script'] = $product_view_script['ga_script'];
			     $data['px_script'] = $product_view_script['px_script'];
    		   }else{
    			  $data['ga_script'] = $data['px_script'] = '';
    		   }
			]]></add>
		</operation>
	</file>

	<file path="catalog/controller/checkout/cart.php">
		<operation>
			<search><![CDATA[$this->cart->remove($this->request->post['key']);]]></search>
			<add position="before"><![CDATA[
			if (version_compare(VERSION,'2.1.0.1','>=' )) {
			    $key = $this->request->post['key'];
				$cart_query = $this->db->query("SELECT * FROM ".DB_PREFIX."cart WHERE `cart_id` = '".(int)$key."' LIMIT 1");
				if ($cart_query->row) {
				    $json['product_id'] = $cart_query->row['product_id'];
				}else{
				    $json['product_id'] = 0;
				}
			}	
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/checkout/checkout.php">
		<operation>
			<search><![CDATA[$products = $this->cart->getProducts();]]></search>
			<add position="after"><![CDATA[
			    $this->load->model('extension/module/google_ecommerce');
			    $ecommerce_checkout_script =  $this->model_extension_module_google_ecommerce->build_begin_checkout();
			    $data['ga_script'] = $ecommerce_checkout_script['ga_script'];
			    $data['px_script'] = $ecommerce_checkout_script['px_script'];
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/view/theme/*/template/checkout/checkout.twig">
        <operation>
            <search><![CDATA[{{ footer }}]]></search>
            <add position="before"><![CDATA[
			    <!--START - HUNTBEE ECOMMERCE ANALYTICS-->
			        {% if (ga_script is defined) %} {{ ga_script }} {{ px_script }} {% endif %} 
			    <!--END - HUNTBEE ECOMMERCE ANALYTICS-->
            	]]>
            </add>
        </operation>
    </file>
	
	<file path="catalog/controller/checkout/success.php">
		<operation>
			<search><![CDATA[$this->load->language('checkout/success');]]></search>
			<add position="after"><![CDATA[
			if (isset($this->session->data['order_id'])) {
		    	$order_id = $this->session->data['order_id'];
			    $this->load->model('extension/module/google_ecommerce');
			    $google_purchase_script =  $this->model_extension_module_google_ecommerce->build_ecommerce($order_id);
			    $data['ecommerce_tracking_script'] = $google_purchase_script['google_purchase'].$google_purchase_script['pixel_script'];
			    
			    if ($this->config->get('ga_ecom_ads_conversion_status')){
				   $data['conversion_script'] = $google_purchase_script['ads_sale_conversion'];
			    }else{
			        $data['conversion_script'] = '';
			    }
			    
			} else {
			    $data['ecommerce_tracking_script'] = '';
			    $data['conversion_script'] = '';
			}
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/account/success.php">
        <operation>
            <search><![CDATA[$this->load->language('account/success');]]></search>
            <add position="after"><![CDATA[
               if ($this->config->get('ga_ecom_ads_conversion_status')){
				    $data['conversion_script'] = html_entity_decode($this->config->get('ga_ecom_signup_conversion'), ENT_QUOTES, 'UTF-8');
			    }else{
			        $data['conversion_script'] = '';
			    }
			]]></add>
        </operation>
    </file>
	
	<file path="catalog/view/theme/*/template/common/success.twig">
        <operation>
            <search><![CDATA[{{ footer }}]]></search>
            <add position="before"><![CDATA[
			    <!--START - HUNTBEE ECOMMERCE ANALYTICS-->
			        {% if (ecommerce_tracking_script is defined) %} {{ ecommerce_tracking_script }} {% endif %} 
			        {% if (conversion_script is defined) %} {{ conversion_script }} {% endif %} 
			    <!--END - HUNTBEE ECOMMERCE ANALYTICS-->
            	]]>
            </add>
        </operation>
    </file>
    
    <file path="catalog/view/theme/*/template/product/{category,manufacturer_info,search,special}.twig">
        <operation>
            <search><![CDATA[{{ footer }}]]></search>
            <add position="before"><![CDATA[
			    <!--START - HUNTBEE ECOMMERCE ANALYTICS-->
			        {% if (product_impression_script is defined) %} {{ product_impression_script }} {% endif %}
			    <!--END - HUNTBEE ECOMMERCE ANALYTICS-->
            	]]>
            </add>
        </operation>
    </file>
    
    <file path="catalog/view/theme/*/template/product/product.twig">
        <operation>
            <search><![CDATA[{{ footer }}]]></search>
            <add position="before"><![CDATA[
			    <!--START - HUNTBEE ECOMMERCE ANALYTICS-->
			        {{ ga_script }} 
			        {{ px_script }}
			        <script type="text/javascript">
			           function sendAddProductInfo() {
    			            $.ajax({
                    		    url: 'index.php?route=extension/module/google_ecommerce/get_product_info&product_id={{ product_id }}',
                    	    	type: 'post',
                    		    dataType: 'json',
                    		    success: function(json) {
                    		        if (json['error']) {
                    		            console.log(json['error']);
                    		        }else{
                    		            gtag("event","select_content",{"content_type": "product",items:[json['product_info']]}); gtag('event', 'add_to_cart', {"items": [json['product_info']] });
                    		            console.log(json['product_info']);
                    		            if (json['pixel_info']) {
                    		                fbq('track', 'AddToCart',json['pixel_info']);
                    		                console.log(json['pixel_info']);
                    		            }
                    		        }
                    		    }
    	                    });
	                   }
					   
					   //document.getElementById("button-cart").addEventListener("click", sendAddProductInfo);
			        </script>
			    <!--END - HUNTBEE ECOMMERCE ANALYTICS-->
            	]]>
            </add>
        </operation>
		<operation>
            <search><![CDATA[$('.breadcrumb').after]]></search>
            <add position="before"><![CDATA[sendAddProductInfo();]]></add>
        </operation>
    </file>
    
    <file path="admin/view/template/sale/order_info.twig">
        <operation>
            <search><![CDATA[{{ footer }}]]></search>
            <add position="before"><![CDATA[
			    <script type="text/javascript">
                    $(document).ready(function() {
                    	$('#ga-refund-block').html('<center><i class="fa fa-refresh fa-spin fa-3x fa-fw"></i></center>');
                    	$('#ga-refund-block').load('index.php?route=extension/hbapps/google_ecommerce/ga_refund_block&user_token={{ user_token }}&order_id={{ order_id }}');
                    });
                </script>
            	]]>
            </add>
        </operation>
        
        <operation>
            <search><![CDATA[<div id="history"></div>]]></search>
            <add position="after"><![CDATA[<br><div id="ga-refund-block"></div>]]></add>
        </operation>
    </file>
	
	<!-- checkout steps -->
    <file path="catalog/view/theme/*/template/checkout/payment_address.twig">
        <operation>
            <search><![CDATA[<form class="form-horizontal">]]></search>
            <add position="before"><![CDATA[
                <!--START - HUNTBEE ECOMMERCE ANALYTICS-->
                <script type="text/javascript">
			        $.ajax({
            		    url: 'index.php?route=extension/module/google_ecommerce/build_checkout_progress',
            	    	type: 'post',
            		    dataType: 'json',
            		    data: {step: 'Step 2: Billing Details'},
            		    success: function(json) {
            		        if (json['success']) {
                		        console.log(json['success']);
                		        gtag('event', 'checkout_progress', {"items": json['success'],"checkout_step" : '2', "checkout_option" : "Billing Details"});
                		    }
            		    }
                    });
                    </script>
			    <!--END - HUNTBEE ECOMMERCE ANALYTICS-->
            	]]>
            </add>
        </operation>
    </file>
    
    <file path="catalog/view/theme/*/template/checkout/shipping_address.twig">
        <operation>
            <search><![CDATA[<form class="form-horizontal">]]></search>
            <add position="before"><![CDATA[
                <!--START - HUNTBEE ECOMMERCE ANALYTICS-->
                <script type="text/javascript">
			        $.ajax({
            		    url: 'index.php?route=extension/module/google_ecommerce/build_checkout_progress',
            	    	type: 'post',
            		    dataType: 'json',
            		    data: {step: 'Step 3: Delivery Details'},
            		    success: function(json) {
            		        if (json['success']) {
                		        console.log(json['success']);
                		        gtag('event', 'checkout_progress', {"items": json['success'],"checkout_step" : '3', "checkout_option" : "Delivery Details"});
                		    }
            		    }
                    });
                    </script>
			    <!--END - HUNTBEE ECOMMERCE ANALYTICS-->
            	]]>
            </add>
        </operation>
    </file>
    
    <file path="catalog/view/theme/*/template/checkout/shipping_method.twig">
        <operation>
            <search><![CDATA[{% if shipping_methods %}]]></search>
            <add position="before"><![CDATA[
                <!--START - HUNTBEE ECOMMERCE ANALYTICS-->
                <script type="text/javascript">
			        $.ajax({
            		    url: 'index.php?route=extension/module/google_ecommerce/build_checkout_progress',
            	    	type: 'post',
            		    dataType: 'json',
            		    data: {step: 'Step 4: Delivery Method'},
            		    success: function(json) {
            		        if (json['success']) {
                		        console.log(json['success']);
                		        gtag('event', 'checkout_progress', {"items": json['success'],"checkout_step" : '4', "checkout_option" : "Delivery Method"});
                		    }
            		    }
                    });
                    </script>
			    <!--END - HUNTBEE ECOMMERCE ANALYTICS-->
            	]]>
            </add>
        </operation>
    </file>
    
    <file path="catalog/view/theme/*/template/checkout/payment_method.twig">
        <operation>
            <search><![CDATA[{% if payment_methods %}]]></search>
            <add position="before"><![CDATA[
                <!--START - HUNTBEE ECOMMERCE ANALYTICS-->
                <script type="text/javascript">
			        $.ajax({
            		    url: 'index.php?route=extension/module/google_ecommerce/build_checkout_progress',
            	    	type: 'post',
            		    dataType: 'json',
            		    data: {step: 'Step 5: Payment Method'},
            		    success: function(json) {
            		        if (json['success']) {
                		        console.log(json['success']);
                		        gtag('event', 'checkout_progress', {"items": json['success'],"checkout_step" : '5', "checkout_option" : "Payment Method"});
                		    }
            		    }
                    });
                    </script>
			    <!--END - HUNTBEE ECOMMERCE ANALYTICS-->
            	]]>
            </add>
        </operation>
    </file>
	
	<!--admin tracking-->
	<file path="admin/controller/common/header.php">
		<operation>
			<search><![CDATA[$this->load->language('common/header');]]></search>
			<add position="before"><![CDATA[			    
			    if ($this->config->get('ga_ecom_admin_tracking_code')){ 
			        $data['google_analytics_script'] = html_entity_decode($this->config->get('ga_ecom_admin_tracking_code'), ENT_QUOTES, 'UTF-8');
			    }else{
			        $data['google_analytics_script'] = '';
			    } 
				
				if (!empty($data['google_analytics_script'])) {
					$ga_admin = $this->user->getUserName();
					$data['ga_user_tracking_script'] = "<script>gtag('set', {'user_id': '".$ga_admin."'});</script>";
				}else{
					$data['ga_user_tracking_script'] = '';
				}
			]]></add>
		</operation>
	</file>
	
	<file path="admin/view/template/common/header.twig">
        <operation>
            <search><![CDATA[</head>]]></search>
            <add position="before"><![CDATA[
			{% if (google_analytics_script is defined) %} {{ google_analytics_script }} {% endif %} 
            <!--huntbee GA user tracking -->{% if (ga_user_tracking_script is defined) %} {{ ga_user_tracking_script }} {% endif %} 
			]]></add>
        </operation>
    </file>
</modification>