Commerce Webform Order
Integra Drupal Webform con Drupal Commerce, permitiendo la creación de pedidos de comercio a partir de envíos de formularios web mediante un handler de webform especializado.
commerce_webform_order
Install
composer require 'drupal/commerce_webform_order:^3.0'
Overview
Commerce Webform Order proporciona una potente capa de integración entre los módulos Webform y Commerce de Drupal. Permite a los constructores de sitios crear flujos de trabajo de pedidos complejos recopilando datos de clientes a través de webforms y generando automáticamente pedidos de comercio a partir de los datos enviados.
El módulo es particularmente útil para formularios de donación, solicitudes de membresía, reservas de servicios y cualquier escenario donde necesite recopilar información detallada de los usuarios mientras procesa pagos a través del robusto sistema de comercio electrónico de Drupal Commerce.
A diferencia de módulos similares que venden envíos de webform directamente, Commerce Webform Order actúa como una capa sobre Commerce, permitiéndole vender cualquier entidad que implemente PurchasableEntityInterface. Esto proporciona mayor flexibilidad para escenarios de comercio electrónico complejos.
Features
- Handler de Webform que crea pedidos de Commerce a partir de envíos de formularios web con amplias opciones de configuración
- Elemento de webform Payment Method que incorpora formularios de selección de pasarela de pago directamente en los webforms
- Elemento de webform Order State que sincroniza y muestra el estado actual del pedido dentro de los envíos de formularios web
- Elemento de webform Payment Status que rastrea y muestra información del estado del pago
- Panel de checkout personalizado (Payment Process) para manejar pagos iniciados desde webforms
- Sincronización automática entre estados de pedido/estado de pago y datos de envío de formularios web
- Soporte para valores de token en la configuración del handler para creación dinámica de pedidos
- Controles de comportamiento del carrito incluyendo opciones de vaciar carrito, nuevo carrito y combinar carrito
- Opción para redirigir usuarios al checkout después del envío del formulario web
- Soporte para establecer propietario del pedido, perfil de facturación, pasarela de pago y método de pago
- Mapeo de campos de artículos de pedido para llenar campos personalizados de artículos de pedido desde datos del formulario web
- Prevención de actualizaciones de envíos de formularios web cuando los pedidos asociados ya no están en estado borrador
- Modo de depuración para desarrollo y solución de problemas
- Hook alter para personalizar pedidos, artículos de pedido y envíos de formularios web antes de guardar
Use Cases
Formulario de donación con montos personalizados
Cree un webform de donación donde los usuarios puedan ingresar montos de donación personalizados. Mapee un campo numérico al monto del artículo de pedido, permitiendo a los donantes especificar su contribución. El handler crea un pedido con el precio personalizado, y los usuarios son redirigidos al checkout para el procesamiento del pago.
Registro de eventos con pago
Construya un formulario de registro de eventos que recopile información de los asistentes y cree un pedido de commerce para la tarifa de inscripción. Use el elemento Order State para mostrar el estado del pago en la página de confirmación y active notificaciones por email basadas en la finalización del pedido.
Solicitud de membresía
Cree un formulario de solicitud de membresía que recopile detalles del miembro y procese las cuotas de membresía. Use la configuración del perfil de facturación para prellenar el checkout con la información recopilada en el formulario, agilizando el proceso de pago.
Formulario de personalización de producto
Permita a los clientes personalizar productos a través de un webform (ej., texto de grabado, selecciones de color) y mapee estos valores a campos personalizados del artículo de pedido. El artículo de pedido almacena los detalles de personalización junto con los datos estándar de commerce.
Reemplazo de checkout multi-paso
Reemplace el flujo de checkout estándar de Commerce con un checkout basado en webform. Incorpore el elemento Payment Method para recopilar información de pago directamente en el formulario, luego use el panel de checkout personalizado Payment Process para manejar la transacción.
Configuración de donación recurrente
Cree un formulario de donación que recopile información del método de pago para donaciones recurrentes. El elemento Payment Method soporta métodos de pago almacenados, habilitando cargos automáticos futuros cuando se integra con módulos de pago recurrente de Commerce.
Tips
- Use valores de token (ej., [webform_submission:values:amount]) en la configuración del handler para creación dinámica de pedidos basada en datos del envío.
- Añada el sufijo :clear a los tokens (ej., [current-user:name:clear]) para eliminar tokens que no tienen valor de reemplazo.
- Cuando use el elemento Payment Method, reemplace el panel de checkout estándar 'Payment process' con 'Payment process (Commerce Webform Order)' y deshabilite el panel 'Payment information'.
- Habilite la depuración durante el desarrollo para ver información detallada de creación de pedidos, pero recuerde deshabilitarla en producción.
- Use los elementos Order State y Payment Status para activar acciones condicionales en otros handlers de webform basados en eventos de commerce.
- Para donaciones anónimas, considere habilitar 'Bypass access checks' para el acceso a la tienda para evitar problemas de permisos.
- El handler soporta cardinalidad ilimitada - añada múltiples handlers para crear múltiples artículos de pedido desde un solo envío.
- Use formato YAML en el campo 'Custom order data' para añadir datos arbitrarios a los pedidos que pueden ser usados por otros módulos o código personalizado.
Technical Details
Admin Pages 1
/admin/structure/webform/manage/{webform}/handlers/add/commerce_webform_order
Formulario de configuración para añadir el handler de Commerce Webform Order a un webform. Permite configurar reglas y comportamientos de creación de pedidos.
Hooks 1
hook_commerce_webform_order_handler_postsave_alter
Altera el pedido, artículo de pedido y envío de webform en el handler del webform antes de que sean guardados. Permite modificaciones personalizadas a las entidades de commerce creadas a partir de envíos de formularios web.
Security Notes 4
- Las opciones 'Bypass access checks' deben usarse con cuidado ya que anulan los controles de acceso normales de Drupal.
- El modo de depuración muestra información del pedido a todos los usuarios - solo úselo en entornos de desarrollo.
- La información del método de pago se procesa a través de las APIs seguras de Commerce Payment - no se almacenan datos sensibles en los envíos de webform.
- La función prevent_update ayuda a mantener la integridad de los datos bloqueando cambios a envíos vinculados a pedidos completados.