Commerce Cart Redirection
Redirige a los usuarios al checkout, al carrito o a una URL personalizada después de agregar un producto a su carrito en tiendas Drupal Commerce.
commerce_cart_redirection
Instalar
composer require 'drupal/commerce_cart_redirection:^3.3'
composer require 'drupal/commerce_cart_redirection:^3.2'
Overview
Commerce Cart Redirection mejora la experiencia de compra en Drupal Commerce redirigiendo automáticamente a los clientes después de agregar un producto a su carrito. Esto agiliza el proceso de checkout eliminando clics adicionales y guiando a los clientes directamente a donde deseas que vayan.
El módulo proporciona opciones de configuración flexibles para controlar qué tipos de variación de producto activan la redirección. Puedes elegir redirigir a la página de checkout, a la página del carrito o a cualquier URL personalizada de tu elección. Además, hay una opción para vaciar el carrito antes de agregar un nuevo artículo, lo cual es útil para flujos de compra de un solo producto o sitios de membresía/suscripción.
El texto del botón "Agregar al carrito" también puede personalizarse para los productos que activarán la redirección, permitiéndote mostrar etiquetas más apropiadas al contexto como "Comprar ahora" o "Suscribirse" en lugar del texto predeterminado "Agregar al carrito".
Features
- Redirigir usuarios a la página de checkout inmediatamente después de agregar un producto al carrito para compras más ágiles
- Redirigir usuarios a la página del carrito para revisar su pedido antes de proceder al checkout
- Configurar una URL de redirección personalizada (local o externa) para flujos de trabajo especializados
- Seleccionar bundles específicos de variaciones de producto para aplicar el comportamiento de redirección
- Negar la selección de bundles para redirigir todos los tipos de producto excepto los seleccionados
- Vaciar el carrito de artículos existentes antes de agregar un nuevo artículo, útil para flujos de compra de un solo producto
- Personalizar el texto del botón 'Agregar al carrito' para productos que activan la redirección (ej., 'Comprar ahora', 'Suscribirse')
Use Cases
Compra rápida / Checkout exprés
Para tiendas que venden productos individuales o que desean minimizar el embudo de compra, configura el módulo para redirigir directamente al checkout después de agregar cualquier producto. Esto elimina el paso de revisión del carrito y acelera las conversiones. Habilita 'Vaciar carrito antes de agregar' si solo deseas un producto por pedido.
Ventas de suscripciones o membresías
Al vender suscripciones o membresías donde los clientes solo deben comprar una a la vez, selecciona los bundle(s) de variaciones de producto de suscripción, habilita la redirección al checkout y habilita 'Vaciar carrito antes de agregar'. Cambia el texto del botón a 'Suscribirse ahora' para mayor claridad.
Tienda de descargas digitales
Para tiendas de productos digitales donde los clientes típicamente compran un artículo a la vez, configura los bundles específicos de variaciones de productos digitales para redirigir directamente al checkout. Los productos físicos pueden ir al carrito normalmente usando la opción de negación.
Venta de entradas para eventos
Para venta de entradas de eventos donde deseas que los usuarios completen la compra inmediatamente después de seleccionar las entradas, redirige las variaciones de producto de entradas de eventos al checkout. La opción de vaciar el carrito asegura que cada compra sea una transacción separada.
Reserva de servicios
Al vender servicios que requieren reserva/pago inmediato (consultas, citas), redirige los tipos de productos de servicio directamente al checkout con una etiqueta de botón personalizada como 'Reservar ahora' para clarificar la acción.
Tipos de productos mixtos con diferentes flujos
Para tiendas con artículos de compra rápida y artículos que requieren revisión, selecciona solo los tipos de variaciones de producto de compra rápida para la redirección. Usa la opción de negación si la mayoría de los productos deben redirigir excepto algunos complejos.
Tips
- Al seleccionar 'Otro' para la ruta de redirección, puedes usar rutas internas de Drupal (como /contact) o URLs externas (como https://payment.example.com). Las rutas internas deben comenzar con una barra diagonal.
- La opción 'Vaciar carrito antes de agregar' preserva la cantidad especificada en la solicitud de agregar al carrito. Por ejemplo, si un cliente agrega 3 artículos, solo esos 3 artículos estarán en el carrito después de vaciarlo.
- Combina este módulo con Commerce Product Limits si necesitas restringir la cantidad de productos específicos que los clientes pueden comprar, en lugar de solo vaciar el carrito.
- El módulo usa un enfoque de redirección de dos fases (estableciendo un atributo de solicitud y luego redirigiendo en la respuesta) para asegurar la compatibilidad con otros módulos que puedan modificar el carrito durante el proceso de agregar al carrito.
- Considera la experiencia del usuario al cambiar el texto del botón - 'Comprar ahora' implica compra inmediata mientras que 'Agregar al carrito' implica que la navegación continúa. Haz coincidir el texto con tu destino de redirección.
Technical Details
Admin Pages 1
/admin/commerce/config/commerce_cart_redirection
Configura qué tipos de variación de producto activan la redirección después de agregar al carrito, elige la URL de destino y establece opciones avanzadas como vaciar el carrito antes de agregar nuevos artículos.
Permisos 1
Hooks 2
hook_help
Proporciona texto de ayuda para la página de ayuda del módulo explicando el propósito del módulo.
hook_form_alter
Modifica el formulario de agregar al carrito para cambiar el texto del botón 'Agregar al carrito' cuando la variación del producto coincide con los bundles configurados y se especifica un texto de botón personalizado.
Troubleshooting 5
Por defecto, el módulo no redirige ninguna solicitud. Navega a /admin/commerce/config/commerce_cart_redirection y selecciona bundles específicos de variaciones de producto O marca la casilla 'Negar la condición de bundles' para redirigir todos los productos.
Si has seleccionado todos los bundles de productos Y habilitado la opción de negación, ningún producto será redirigido debido a la inversión lógica. Deselecciona algunos bundles o desmarca la opción de negación.
Asegúrate de que la URL personalizada sea válida y esté correctamente formateada. El módulo realiza una validación básica de URL usando UrlHelper::isValid() pero no verifica que el destino exista. Comprueba que la URL sea accesible y esté correctamente ingresada (incluyendo el protocolo para URLs externas).
El reemplazo del texto del botón solo funciona para productos cuyo bundle de variación está configurado para redirección. Verifica que el tipo de variación del producto esté seleccionado (o no seleccionado cuando se usa negación) en la configuración del módulo.
La redirección al checkout requiere que el módulo Commerce Checkout esté instalado. Si usas un sistema de checkout alternativo (como BigCommerce), el módulo volverá a la página principal. Usa la opción 'Otro' con una URL personalizada para tu ruta de checkout.
Security Notes 2
- El campo de URL personalizada acepta cualquier URL sin validación del destino en el servidor. Asegúrate de que los administradores con el permiso 'configure commerce_cart_redirection' sean de confianza, ya que potencialmente podrían redirigir a los clientes a sitios externos maliciosos.
- El módulo utiliza correctamente las utilidades de generación y validación de URLs de Drupal (Url::fromRoute, UrlHelper::isValid) para construir URLs de redirección seguras para las opciones integradas de checkout y carrito.