Enlace a facebook.
digitalDot diseño webLogo Diseño Web digitalDot

Google Analytics para OpenCart

Google Analytics para Opencart. digitalDot
Escrito por Digitaldot
14 de noviembre de 2017
Tiempo de lectura 6 min

En digitalDot nos encargamos del SEO y posicionamiento de Ecommerce en Prestashop, Magento, Woocomerce u OpenCart y podemos aseguraros que las ventajas de Google Analytics y la información que aporta sobre una tienda online son innumerables y necesitaríamos varios artículos para poder contarlas y detallarlas visualmente todas ellas.

La mayoría de las plataformas ya cuentan con el módulo de Google Analytics en versión universal que permite incluir las ventas y los orígenes de sus conversiones.
Sin duda, recopilar estos datos, es de vital importancia porque nos permitirá conocer qué campañas de SEM son de mayor rentabilidad o qué tipo de público se interesa más por nuestros productos, o incluso qué red social tiene más beneficios para poder centrar los esfuerzos en ella, como veréis es de gran potencial para tomar decisiones importantes.

Por ello, pongámonos manos a la obra para configurar correctamente Google Analytics en nuestra tienda online con OpenCart, para permitir hacer Tracking de pedidos.

Configuración de Google Analytics en OpenCart

Para poner el código de Google Analytics tendremos que acceder dentro del panel de configuración a la sección Sistema > Configuración y dentro de este apartado de configuración accedemos a la pestaña Google donde nos aparece la sección Google Analytics, en esa caja de texto añadimos el código proporcionado por Google y ponemos estado Activo.

google analitycs opencart

Una vez añadido nuestro código de Analytics ya podremos ver informes en tiempo real de nuestras visitas. Para comprobar que está correctamente asignado podemos instalar en Chrome la extensión de Google Tag Assistant.

google analytics opencart

Una vez instalada y activa podemos ver como al navegar por nuestra web nos mostrará en verde si el código de Analytics está correctamente colocado.

google analytics opencart

Una vez comprobado que está correctamente instalado pasamos al código de tracking de pedidos sobre nuestro Ecommerce.

Debemos modificar el archivo\catalog\model\checkout\order.php y añadimos el siguiente código justo antes de la declaración de la función getOrder($order_id)

public function getOrderTax($order_id){

                               $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_total WHERE code = 'tax' AND order_id = '" . (int)$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 = '" . (int)$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 = '" . (int)$order_id . "'");

                               if($query->num_rows){

                                                              return $query->rows;

                               } else {

                                                              return false;     

                               }

               }

google analytics opencart

Guardamos order.php y lo subimos a nuestra web en producción

Ahora debemos guardar nuestra confirmación de proceso de compra, para ello abrimos el fichero\catalog\controller\checkout\success.php y añadimos el siguiente código antes de “$this->cart->clear() de la función index()

//NOC get Order-id               $order_id = $this->session->data['order_id'];

              

               //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 = 0;

                               }

                              

                               //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

                               );  

                               $data['order_tracker'] = $order_tracker;

               }

google analytics opencart

Ahora guardamos nuestro fichero de confirmación de compra en OpenCart “success.php

Y debemos modificar la parte de la vista de nuestro tema para mostrar la etiqueta correctamente.

Para ello vamos al fichero \catalog\view\theme\nombre_del_tema\template \common\ success.tpl y añadimos el siguiente código antes de <?php echo $footer; ?>

<?php/* NOC Ecommerce Tracking Code in success.tpl file */

if(isset($order_tracker)){

$tracking_info = '<script type="text/javascript">'.PHP_EOL;

$tracking_info .= "ga('require', 'ecommerce', 'ecommerce.js');".PHP_EOL;

//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'] . "

}); ".PHP_EOL;

//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'] ."

});".PHP_EOL;

}

$tracking_info .= "ga('ecommerce:send');".PHP_EOL;

$tracking_info .= '</script>'.PHP_EOL;

echo $tracking_info;

}

?>

google analytics opencart

Guardamos y subimos el diseño al ftp de nuestra tienda en producción.

Finalmente para comprobar que hemos añadido el código correctamente al realizar un pedido podremos ver que se ha añadido el código tanto en la extensión de Google Chrome como en el propio código de la página mirando el código fuente.

google analytics opencart

google analytics opencart

Al realizar ahora un pedido podremos observar que en nuestra cuenta de Google Analytics ha quedado registrado correctamente el pago.

google analytics opencart

Para esta implantación o cualquier necesidad con OpenCart podéis contactar directamente con el equipo de desarrollo web de digitalDot, estaremos a vuestra entera disposición para optimizar y poner vuestra tienda online a punto.

Noticias relacionadas sobre Actualidad web

Qué es UCP y cómo funciona técnicamente

Qué es UCP y cómo funciona técnicamente

El comercio online ya no es lo que solía ser. Ahora, no solo tienes que preocuparte de que tu tienda funcione bien, sino que también debes estar listo para que agentes de inteligencia artificial hagan el trabajo por ti. Esto es posible gracias a UCP (Universal Commerce Protocol), un protocolo…

Canal de denuncias obligatorio para empresas

Canal de denuncias obligatorio para empresas

El cumplimiento normativo ya no es algo que las empresas puedan dejar de lado en España. Desde la entrada en vigor de la Ley 2/2023 de protección de informantes, muchas organizaciones han tenido que adaptarse e implantar un canal de denuncias que permita comunicar irregularidades de forma segura y confidencial.…

AI Overviews y AI mode

AI Overviews y AI Mode: por qué tu web puede seguir posicionando pero recibir menos clics

Hubo un tiempo en el que mirar el posicionamiento en Google y mirar los clics era casi la misma película. Si subías posiciones, subían las visitas. Si entrabas en primera página, había premio. No era un sistema perfecto, pero al menos la lógica general se entendía. Ahora la cosa se…

Ley de consumidores tienda online

En qué afecta la nueva Ley de consumidores para tu tienda online

Si vendes online a consumidor final, esta ley te afecta directamente. El Real Decreto Legislativo 1/2007, que aprueba la Ley General para la Defensa de los Consumidores y Usuarios, es la norma que regula las ventas B2C en España. No depende del sector, ni del tamaño de tu empresa, ni…

Vulnerabilidades encontradas en Prestashop

Vulnerabilidades de seguridad detectadas en el módulo PrestaShop "gsnippetsreviews"

A comienzos de enero de 2026, nuestro equipo de seguridad web de digitalDot identificó dos vulnerabilidades relevantes en el módulo gsnippetsreviews para PrestaShop, un módulo verificado y ampliamente utilizado en tiendas online basadas en esta plataforma. La detección se produjo a raíz de una incidencia real en un cliente nuestro,…

Elige el dominio para tu web. digitalDot

La importancia de elegir un buen dominio

Cuando nos planteamos tener una web enseguida nos salta la duda de cómo se va a llamar. El dominio, es ese nombre, único y exclusivo, que vamos a otorgar a nuestra página, ecommerce o blog y que permitirá a los usuarios acceder a nuestra web. La elección de un dominio…

Parámetro srsltid de Google

¿Qué es el parámetro "srsltid" y por qué aparece en las URLs de mi sitio web?

Si tienes una tienda online y has estado monitoreando tu tráfico en los últimos meses, es posible que hayas notado la aparición de un nuevo parámetro en tus URLs: ?srsltid. Esto ha comenzado a generar confusión entre dueños de tiendas y expertos en SEO, debido a cómo afecta la atribución…

digitalDot Partner de Klaviyo

Klaviyo: Plataforma para automatización de marketing digital

Si tienes una tienda online, seguro que te suena esta película: inviertes en tráfico, la gente entra, mira, añade al carrito… y desaparece. O compra una vez y no vuelve. Y mientras tanto, tú mandas algún newsletter suelto de vez en cuando, con un cupón y “a ver si cuela”.…

Google Core Update: todas las novedades de SEO

Google Core Update 2025: Todas las novedades en SEO en detalle

Google ha vuelto a poner en marcha su maquinaria de actualizaciones de algoritmo, y la comunidad SEO está atenta a los cambios que esto implica. En el año 2023, Google ha lanzado cuatro actualizaciones de núcleo, en marzo, agosto, octubre y noviembre. Aunque Google no proporciona detalles específicos sobre los…

1 2 3 21
crossmenuchevron-down