Drupal Commerce:
Como crear flujos de compra complejos y personalizables sin picar código
Drupal Iberia
Manuel Egío
Desarrollador back-end en Cambrico entre otras cosas.
https://www.drupal.org/u/facine
https://www.drupal.org/cambrico
Manuel Egío
Drupal Commerce sin dramas
🛍 Productos personalizados
➡️ Venta de camisetas con color, talla y serigrafía.
🎟 Flujos mixtos
➡️ Formularios de donación y alta de socios combinados en uno.
📂 Flujos de compra guiados
➡️ Árbol de decisiones.
📦 Lotes personalizados
➡️ Compra de cajas de productos combinados por el cliente.
Cuando un simple formulario no es suficiente
🛠 Múltiples flujos de configuración reutilizables
Sin necesidad de crear múltiples tipos de líneas de pedido.
🔄 Condiciones dinámicas
Reglas de visibilidad y ajustes de precio en tiempo real, sin necesidad de múltiples promociones.
📦 Gestión de packs y pedidos personalizados
Combinaciones de productos de forma sencilla y flexible.
🔗 Integración
Commerce Webform Order permite usar webforms para añadir productos al carrito con total flexibilidad.
🖱 Cero código
Todo se gestiona desde la interfaz de Webform, sin necesidad de “programar”.
Drupal Commerce & Webform:
Un matrimonio bien avenido
Configura, convierte, repite: así de fácil
Crean un nuevo pedido en estado de pendiente de valorar.
Envían correos electrónicos, al cliente y al responsable de ventas.
Envían los datos a un CRM remoto.
Caso real: Solicitud de cotización
Ejemplo de uso:�Personaliza tu camiseta, no tu código
Producto:
Atributos:
Propiedades de la línea de pedido:
Propiedades del pedido:
De formulario a pedido:
cómo se estructuran los datos
La camiseta, Product Variation/Purchasable Entity
Referencia directa.
Vista con un Entity Reference Display.
El protagonista del carrito
Cada artículo con su propia identidad
Cada artículo con su propia identidad
Cada artículo con su propia identidad
Sin comprador no hay venta
Elemento para recoger los datos del pago:
Sin comprador no hay venta
Un handler de webform nos permite
Relacionar varios campo del pedido, o sus entidades relacionadas, con un elemento del webform, un valor fijo o un token.
Definir algunos comportamientos tanto del carrito como del checkout.
De formulario a carrito: Cada valor a su sitio
De formulario a carrito: Tienda
De formulario a carrito: Línea de pedido
https://www.drupal.org/project/webform_entity_handler
https://www.drupal.org/project/commerce_purchasable_entity
Para el título y el precio unitario, también existe la opción de no sobreescribirlos y mantener los valores definidos en el producto.
De formulario a carrito: Línea de pedido
Campos específicos de la línea de pedido.
Para talla tenemos un elemento por cada estilo de camiseta, se podría usar el módulo token_or o encadenar múltiples tokens:
�[webform_submission:values:size_regular_fit:clear]
[webform_submission:values:size_fitted:clear]
[webform_submission:values:size_kid:clear]
De formulario a carrito: Línea de pedido
De formulario a carrito: Carrito
Comportamiento del carrito:
De formulario a carrito: +Carrito
De formulario a carrito: Cliente
De formulario a carrito: Pago
De formulario a carrito: Y por último
Receta para enviar correos electrónicos cuando el pago o el estado del pedido cambie: https://www.drupal.org/project/commerce_webform_order/issues/3153554#comment-13964386
Chuches…
Y así es como se consigue vender una camiseta…
Módulo: drupal.org/project/commerce_webform_order
Demo: drupal.org/project/cwo_demo
Diapositivas y ejemplo usado: github.com/facine/drupal_iberia_2025
Manuel Egío: drupal.org/u/facine
Cambrico: drupal.org/cambrico
¡Tan molona como esta!
¡GRACIAS!