- 01 Abr 2011, 03:17
#3980
Para monitoramento de comércio eletrônico, utilizando o código GA assíncrono, faça o seguinte:
1) Remova o código abaixo do arquivo footer.php que se encontra dentro da pasta catalog/controller/common/, e coloque-o no arquivo header.php que se encontra na pasta catalog/controller/common/, antes da linha $this->render();:

Fonte: http://forum.opencart.com/viewtopic.php?f=121&t=21675
Fiz adaptações e melhorias.
Colaboração: José Luiz
1) Remova o código abaixo do arquivo footer.php que se encontra dentro da pasta catalog/controller/common/, e coloque-o no arquivo header.php que se encontra na pasta catalog/controller/common/, antes da linha $this->render();:
Código: Selecionar todos
2) Adicione o código abaixo no arquivo header.tpl, que está dentro da pasta catalog/view/theme/SEU_TEMA/template/common, antes da tag </head>: if ($this->config->get('google_analytics_status')) {
$this->data['google_analytics'] = html_entity_decode($this->config->get('google_analytics_code'), ENT_QUOTES, 'UTF-8');
} else {
$this->data['google_analytics'] = '';
}Código: Selecionar todos
3) Remova o código abaixo do arquivo footer.tpl, que está dentro da pasta catalog/view/theme/SEU_TEMA/template/common, antes da tag </body>:<?php echo $google_analytics; ?>Código: Selecionar todos
4) Adicione o código abaixo ao arquivo success.tpl, que está na pasta catalog/view/theme/SEU_TEMA/template/common/, coloque o código antes da linha <?php echo $footer; ?>:<?php echo $google_analytics; ?>Código: Selecionar todos
5) Adicione o código abaixo no arquivo success.php, que está na pasta catalog/controller/checkout/, antes da linha $this->cart->clear();: <?php if(isset($orderDetails) && isset($orderProducts)) { ?>
<script type="text/javascript">
// Substitua o UA-XXXXXXXX-X pelo seu código que se encontra no Google Analytics
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
_gaq.push(['_addTrans',
'<?php echo $orderDetails['order_id']; ?>',
'Store Name',
'<?php echo $orderDetails['total']; ?>',
'',
'',
'',
'',
''
]);
<?php foreach($orderProducts as $product) { ?>
_gaq.push(['_addItem',
"<?php echo $product['order_id']; ?>",
"<?php echo $product['product_id']; ?>",
"<?php echo json_encode($product['name']); ?>",
"<?php echo $product['model']; ?>",
"<?php echo $product['price']+($product['price']*$product['tax']/100); ?>",
"<?php echo $product['quantity']; ?>"
]);
<? } ?>
_gaq.push(['_trackTrans']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<?php } ?>Código: Selecionar todos
6) Adicione o código abaixo no arquivo order.php, que está dentro da pasta catalog/model/checkout/, após a linha class ModelCheckoutOrder extends Model {:$this->load->model('checkout/order');
$this->data['orderDetails'] = $this->model_checkout_order->getOrder($this->session->data['order_id']);
$this->data['orderProducts'] = $this->model_checkout_order->getOrderProducts($this->session->data['order_id']);Código: Selecionar todos
Pronto! Espero ter ajudado public function getOrderProducts($order_id) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'");
return $query->rows;
}Fonte: http://forum.opencart.com/viewtopic.php?f=121&t=21675
Fiz adaptações e melhorias.
Colaboração: José Luiz
Sempre em frente...






