Hola,
Tengo una duda sobre la página final de compra o agradecimiento.
Cuando el pago es por transferencia bancaria, carga siempre "midominio/es/carro" Y, si luego el cliente clica en Ver Pedido, entonces sí carga una url única, que termina con algo así: midominio/es/mis-pedidos/number/4ZWY02344
De este modo se puede rastrear las compras por Google Tag Manager con el parámetro: midominio/es/mis-pedidos/
Mi duda es si esto es correcto. Lo digo porque si el cliente no clica en "Ver mi pedido" tras hacerlo, la compra no se puede rastrear ya que la url que carga no sirve.
Ante esta duda, me pregunto si hay algún modo de hacer que al terminar la compra con pago por transferencia cargue ya una url como midominio/es/mis-pedidos/number/4ZWY02344
De todos modos no me preocupa mucho porqué si el pago es por tarjeta o por Pay Pal, sí genera una url única directamente. Que es algo así:
midominio/es/?option=com_virtuemart&view=pluginresponse&task=pluginresponsereceived&on=FZIS02345&pm= (Y un larguísimo etc)
Tal vez las operaciones por transferencia no puedan medirse porque no hay una forma automatizada de verificar que está hecho el pago. ¿Es eso, verdad?
Saludos
Contenido solo visible a usuarios registrados
Hola Alceste.
Esto es el comportamiento estándar de VirtueMart con métodos de pago offline como transferencia bancaria.
Con pagos online (tarjeta, PayPal, etc.), el plugin de pago redirige al usuario a una página de respuesta (pluginresponse o similar) que genera una URL única con parámetros del pedido (on=XXXX&pm=...). Con transferencia bancaria (pago manual), no hay verificación automática del pago. El pedido se crea en estado "Confirmado por el comprador" (o similar) y VirtueMart muestra la página del carrito (/es/carro) o una página genérica de confirmación (order_done). Solo al hacer clic en "Ver Pedido" se accede a la URL única de detalles (/es/mis-pedidos/...).
El pago si que que se rastrea siempre y cuando el cliente haga clic en "Ver Pedido".
Si no tienes muchos pedidos por transferencia bancaria yo no haría nada, en cambio si tienes bastantes pedidos puedes probar a crear un override del archivo oderdone.php
.- Crea la carpeta en templates/TU_TEMPLATE/html/com_virtuemart/cart/
.- Copia el archivo original components/com_virtuemart/views/cart/tmpl/orderdone.php a la carpeta anterior que creaste si no la tenías ya creada.
.- Elimina el contenido de ese archivo y lo sustituyes por este:
<?php
defined('_JEXEC') or die('Restricted access');
/**
* Template override - Página de confirmación de pedido
*/
echo '<div class="vm-wrap vm-order-done">';
if (vRequest::getBool('display_title', true)) {
echo '<h3>' . vmText::_('COM_VIRTUEMART_CART_ORDERDONE_THANK_YOU') . '</h3>';
}
// Contenido original del plugin
$this->html = vRequest::get('html', vmText::_('COM_VIRTUEMART_ORDER_PROCESSED'));
echo $this->html;
if (vRequest::getBool('display_loginform', true)) {
$cuser = JFactory::getUser();
if (!$cuser->guest) echo shopFunctionsF::getLoginForm();
}
// === DATOS DEL PEDIDO PARA TRACKING ===
$order = !empty($this->order) ? $this->order : [];
$orderDetails = !empty($order['details']['BT']) ? $order['details']['BT'] : null;
$order_number = $orderDetails ? $orderDetails->order_number : '';
$order_total = $orderDetails ? (float)$orderDetails->order_total : 0;
$currency = vmConfig::get('currencyCode', 'EUR');
?>
</div>
<!-- === GOOGLE TAG MANAGER - EVENTO PURCHASE === -->
<script>
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event': 'purchase',
'transaction_id': '<?php echo addslashes($order_number); ?>',
'value': <?php echo $order_total; ?>,
'currency': '<?php echo $currency; ?>'
});
</script>
<!-- === REDIRECT AUTOMÁTICO a página única del pedido === -->
<?php if (!empty($order_number)) : ?>
<script>
setTimeout(function() {
window.location.href = "<?php
echo JRoute::_('index.php?option=com_virtuemart&view=orders&layout=details&order_number='
. $order_number, false);
?>";
}, 2000);
</script>
<?php endif; ?>
Un Saludo
Hola Pepe,
Fantástico, gracias. Por el momento lo dejaré como está. Tenemos otro problema con más incidencia con el seguimiento de las transacciones, pero tiene que ver con el plugin de cookies y RGDP, que parece que deja los permisos en denegado. Para no liar el post, abriré uno de nuevo sobre esto de las cookies.
Saludos
Hola Alceste.
Nada como siempre un placer poder orientaros en lo que nos sea posible 😉
Un Saludo