Tienda en línea en Drupal 8 - Drupal Commerce
Cuando hablamos de e-commerce o comercio electrónico hacemos referencia a la compra o venta de un producto a través de un medio electrónico como puede ser una web o app.
El e-commerce se está consolidando como una alternativa al comercio tradicional debido a su poder de difusión que supera al de los métodos tradicionales. Con menos recursos podemos llegar a más gente.
Drupal Commerce es un conjunto de módulos de Drupal que permiten crear comercios electrónicos en Drupal de manera profesional. Aprovecha la potencia y la versatilidad de Drupal para crear tiendas personalizadas y flexibles, muy adecuadas para empresas que necesiten crear sus propias reglas de negocio.
En este artículo voy a contar cómo hacer una instalación muy muy básica, y mostrar que se puede esperar de Drupal Commerce.
Configuración y requisitos
Según el manual, se recomienda instalar Drupal usando Composer; La configuración requiere Drupal 8.5 o posterior. No tuvimos ningún problema con el proceso de instalación. Para instalar el Drupal Commerce más nuevo, utilizamos el siguiente comando:
composer require "drupal/commerce"
Drupal Commerce requiere varios módulos adicionales (Address, Entity, Inline Entity Form, Entity Reference Revisions, Profile, State Machine). Al usar Composer, no tienes que preocuparte por instalarlos manualmente, ya que se agregaran automáticamente. Después de una configuración exitosa, la lista de módulos crecerá en 12 nuevas entradas.
Funcionalidad, módulos e innovaciones.
Hemos activado todos los módulos con fines de prueba. El ícono de Comercio apareció en nuestro menú principal. A primera vista, puede ver una serie de opciones que no se incluyeron en la versión estándar para Drupal 7. Esto incluye:
- Tipos de tienda
- Atributos del producto
- Promociones
- Tipos de orden
- Tipos de artículos de pedido
- Flujos de pago
- Tipos de variación de producto.
A tener en cuenta que Drupal Commerce es muy modular, esto permite por ejemplo solo activar los productos/variaciones y desactivar el carrito o el checkout. Esto es muy útil si tu web no es un E-commerce como tal y solo quieres tener un "escaparate de productos" pero sin dar la opción de que se puedan comprar.
Tienda y tipos de tienda
Le permite definir los tipos de tienda de su sitio web, se agrega "online" de forma predeterminada. Agregar más tipos de tiendas puede ser útil si tienes una red de tiendas físicas o sucursales en diferentes países. Estas tiendas pueden tener una oferta específica del país, pero utilizan la misma base de datos de todos los productos que se mantienen en un solo lugar. Debe recordar que un producto puede pertenecer a una o más tiendas; sin embargo, un pedido realizado por el usuario siempre se asigna a una tienda.
Otra opción interesante es la posibilidad de crear tiendas por parte de los usuarios en tu sitio web, lo que permite a los proveedores abrir sus tiendas en línea en su plataforma, así como crear y vender sus propios productos, al igual que ETSY. Puede encontrar más información sobre esa funcionalidad en la documentación de Drupal Commerce .
Atributos del producto
Se pueden agregar atributos a tus productos. Hay tres opciones de visualización disponibles: Seleccionar lista, Botón de radio y Atributo procesado. Estos atributos pueden asignarse a tipos y usarse al agregar nuevos productos.
Básicamente los atributos se usan para definir cosas que son distintas dentro de un mismo producto. Por ejemplo: tallas, colores, tamaños, ...
Promociones
Drupal Commerce te proporciona un submódulo que te permite agregar promociones y descuentos. El descuento se puede establecer para productos específicos o para todo el pedido. El descuento puede ser una cantidad fija o un porcentaje, y se pueden asignar a un rol, una dirección de envío o una dirección de correo electrónico. También puede limitar las promociones y ofertas especiales a un valor máximo de pedido o moneda. Además, tiene la opción de agregar fechas de inicio y finalización, limitar el número de usos y decidir si un descuento se puede combinar con otras promociones. Es cierto que esto es una gran conveniencia. En comparación con otros sistemas de comercio electrónico, estas son las cosas que ya deberían ser estándar. En Drupal 7, no era tan obvio, y podría causar un gran dolor de cabeza.
Tipos de orden
Otra cosa nueva en Drupal Commerce es un nuevo enfoque para los pedidos. Ahora puede crear varios tipos de pedidos con diferentes rutas de compra, o incluso mostrar un carrito de compras de una manera diferente. Esta es una solución bastante interesante y ciertamente será útil para proyectos más complejos, donde los productos requieren un enfoque comercial diferente. Cada tipo puede tener sus propios campos únicos y métodos de representación.
Esto es muy útil si por ejemplo vendes productos físicos, productos virtuales, membresías recurrentes o un mix de las anteriores. Permite especificar que una orden será recurrente, o que en una orden se pregunte por la dirección de envío porque se han de enviar productos físicos, pero en los productos online no hagan falta estos campos.
Flujos de pago
Como se mencionó anteriormente, además de los tipos de orden, puede configurar muchas rutas de compra diferentes. Pueden variar según el tipo de pedido realizado. Todo el proceso de pedido se muestra mediante complementos. Por defecto, puede aprovechar Multistep, sin embargo, puede agregar su propio complemento y usarlo, por ejemplo, para una de varias rutas de compras. Este es un enfoque bastante interesante, gracias al cual no tendrá que alterar la ruta predeterminada única. Puede consultar cómo crear su propio complemento de flujo aquí: https://docs.drupalcommerce.org/commerce2/developer-guide/checkout/create-custom-checkout-flow
Tipos de artículos de pedido
Se podría decir que esto es algo así como "Línea de pedido" de Drupal 7 : un artículo que almacena datos de pedido y productos, también puede definir sus propios campos para almacenar otra información.
Drupal Commerce 8 en acción
Veamos cómo funciona el Drupal Commerce en la práctica.
Agregar un producto
Como puede ver, puede usar los atributos y variaciones de los productos que ha creado anteriormente. Agreguemos un producto con varias opciones para elegir.
Para dejar claros los conceptos:
- El producto por ejemplo puede ser una camiseta
- Las variaciones son los distintos modelos de esa misma camiseta (las opciones que generarían sus posibles atributos), y es donde se especifica el precio. Por ejemplo distintos colores de la camiseta pueden tener distintos precios.
- Los atributos serían las distintas tallas y colores en los que está disponible el producto
Página del producto
Por cada producto se crea de forma automática una página donde se muestran los valores de ese producto.
En nuestro caso de ejemplo no tenemos casi campos, pero normalmente esto incluye campos de imágenes, campos de texto, categorias, productos relacionados, .....etc
También se muestra un formulario donde se pueden seleccionar los atributos, y en base a la selección del usuario se muestra la información de la variación correspondiente (precio, imagen, etc ...)
Carrito/Cesta de compra
El carro estándar es un bloque con vistas, que se puede configurar fácil y libremente, como en Drupal 7.
Si que es verdad que se han de usar módulos contribuidos para conseguir que el "Añadir a la cesta" funcione por AJAX y no recargue toda la pagina, pero es bastante fácil de usar.
Pagos
Drupal Commerce ya viene con unos pocos métodos de pago, pero sobre todo están pensados para hacer pruebas o que se hagan transferencias bancarias.
En casi todos los casos, se han de usar módulos contribuidos para instalar métodos de pago alternativos como pueden ser:
- Paypal
- Tpay
- Redsys
- Stripe
- ...
Envíos
Puede aprovechar un módulo de envío: Commerce Shipping
https://www.drupal.org/project/commerce_shipping
Está integrado con el modelo físico, gracias al cual puede utilizar la conversión automática de tamaños y escalas al costo final de envío.
Resumen
Drupal Commerce tiene una serie de funciones básicas y muchas innovaciones interesantes operativas y de trabajo, lo cual es por supuesto, una gran ventaja. Además, los desarrolladores decidieron proporcionar a los usuarios más opciones de configuración de forma predeterminada, en comparación con la versión Drupal 7. Un creador de sitios típico podría tener problemas para construir una tienda para un cliente, debido a la falta de módulos D7 y al hecho de que la mayoría de ellos están en versión alfa o beta, lo que significa que pueden ser inestables. Si no desarrolla módulos avanzados para Drupal 8, puede ser un gran obstáculo, de lo contrario, es posible que tenga que desarrollarlos usted mismo.
Lo bueno de Drupal Commerce fue el hecho de que se puede configurar y reconfigurar las funciones básicas de nuestra tienda en poco tiempo sin ningún problema. Se lanzan más y más módulos, y un gran número de ellos ya está disponible en versiones estables. Es por eso que la combinación de Drupal 8 y Drupal Commerce es una herramienta que ofrece muchas posibilidades para implementar proyectos interesantes.
Saber si Drupal Commerce es una opción viable para tu tienda online ... depende de cada caso en concreto. Drupal Commerce es de las opciones más flexibles que hay actualmente, pero también da mucho trabajo y esto se repercute en el coste.
Sin embargo, a partir de ahora, el proyecto parece prometedor y mantenemos los dedos cruzados para un mayor desarrollo de Drupal Commerce.
Si necesita más información sobre Drupal Commerce, no dude en visitar https://docs.drupalcommerce.org/
¿Tienes algún proyecto en mente?
Si quieres hacer algo en Drupal tal vez puedas contratarme.
Ya sea para consultoría, desarrollo o mantenimiento de sitios web Drupal.