Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

#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();:
Código: Selecionar todos
   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'] = '';
        }
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>:
Código: Selecionar todos
<?php echo $google_analytics; ?>
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>:
Código: Selecionar todos
<?php echo $google_analytics; ?>
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; ?>:
Código: Selecionar todos
    <?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 } ?>
5) Adicione o código abaixo no arquivo success.php, que está na pasta catalog/controller/checkout/, antes da linha $this->cart->clear();:
Código: Selecionar todos
$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']);
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 {:
Código: Selecionar todos
    public function getOrderProducts($order_id) {
        $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'");
        return $query->rows;
    }
Pronto! Espero ter ajudado :D

Fonte: http://forum.opencart.com/viewtopic.php?f=121&t=21675
Fiz adaptações e melhorias.

Colaboração: José Luiz
#4014
Só registrar que ao aplicar o item 4, o Dream Weaver acusa erro na linha 31 e registrar também que é necessário trocar o códio UA-XXXX para o seu código fornecedido pelo Google.

Abraços a todos e postem os resultados positivos e negativos
#4477
Vidal, eu acho que encontrei um erro no código que estava impedindo de funcionar, ainda estou esperando uma venda para testar, mas já tem alguns dias que venho acompanhando o relatório de erros do Open Cart e analisando o arquivo success.tpl através do Dreaweaver onde ambos ficavam me dizendo que havia um erro de sintaxe na linha 31, entretanto o erro no código está na seguinte parte
Código: Selecionar todos
<?php echo json_encode($product['name']); ?>,
Se olhar bem e comparar com os demais está faltado o " na frente dessa linha devendo ficar assim
Código: Selecionar todos
"<?php echo json_encode($product['name']); ?>,
Por favor verificar para termos certeza

Abraços e sucesso a todos
#4499
Com certeza chegia, será um prazer realizar mais essa colaboração.

Em breve vou falar sobre o Gzip do Open Cart, para ele funcionar corretamente é preciso adicionar algumas linhas no .htaccess, eu já estou utilizando as adições necessárias e tá super bom de velocidade

Quanto a este código, com a adição da " na frente da linha citada o Dreamweaver parou de informar o erro na linha 31 agora é aguardar uma venda para ter certeza que o Google Analyticis irá capturar certinho pois no meu caso a informação só é recebida no Google Analytics quando o cliente efetua o pagamento no Pagamento Digital que então após a confirmação do pagamento redireciona automaticamente para a página do arquivo success.tpl que é onde está o código que irá capturar os dados da transação e enviar para o Google Analytics

Abraços e até breve