Shopware 6 – Introducción

Shopware es una plataforma de comercio electrónico que está creciendo rápidamente.

Para aquellos que están interesados en conocer o van a trabajar con esta plataforma pienso que es muy valioso conocer el enfoque de desarrollo y como está estructurada la plataforma. Esto no solamente permitirá tener mejor perspectiva al evaluar la plataforma sino que también saber qué es exactamente lo que estamos haciendo cuando lo instalemos.

Shopware on-premise es open source y gratuito pero hay versiones pagas que se diferencian por tener características exclusivas basadas en plugins. Esto significa que las versiones Professional y Enterprice comparten el mismo código de la versión gratuita. También existe una versión “Cloud” paga.

Tiene un enfoque “API First” (traducido al castellano seria “basado en API”)

Open Source, Gratuito y API First son características que busco en un producto porque, desde mi punto de vista, son atributos necesarios para que un producto tenga chances de crecer en el contexto actual.

Shopware es una plataforma basada en el framework de PHP Symfony.

Recientemente liberaron una nueva versión, Shopware 6.4, usa Symfony 5.2 y el requerimiento mínimo de PHP es 7.4 aunque ya es compatible con PHP 8. Que mantengan actualizado los componentes que dan soporte a la plataforma es un buen indicador de la salud del proyecto.

Shopware esta estructurado en varios componentes independientes creados con bundles de Symfony.

En el centro del sistema se encuentra el componente “Core” que es quien provee las APIs además de tener el Framework y la lógica de negocios.

Todos los otros componentes existentes interactúan con el Core a través de sus APIs

Admin API, que se utiliza para todas las tareas de administración, es consumida por el “Administration Component” (Vue.js SPA).

A través de este API tenemos acceso a todas las entidades de Shopware 6 y todos los procedimientos ABM (CRUD)

Store API, que se utiliza para interactuar con los clientes, es consumida por el “Storefront component” y por “Shopware PWA”

Otra de las características del componente Core es que tiene un sistema de extensión que nos permite crear plugins, themes y apps.

El código de Shopware, si bien esta formado por componentes separados, conviven en un mismo monorepo en Github, shopware/platform, donde cada componente tiene su repositorio.

Para su instalación Shopware ofrece 2 “templates” para la instalación, Production y Development, que elegiremos de acuerdo a lo que necesitemos hacer.

Tarea                                                         shopware/producción                shopware/desarrollo

Contribución al core de Shopware                          ❌                                              ✅

Desarrollo de extensiones para la tienda                ✅                                             ✅ (preferentemente)

Proyecto personalizado / desarrollo                        ✅                                             ❌

Manejo de dependencias / bundles                        ✅                                              ❌

Los “templates” son repositorios donde están “configuradas” las dependencias y herramientas necesarias para cada tipo de propósito de instalación.

Development: https://github.com/shopware/development

Production: https://github.com/shopware/production

Otra de las funciones que cumplen los “templates” es brindar todo lo necesario para las diferentes propuestas de entorno de instalación que nos da Shopware: Docker, Dockware, Valet+, MAMP y from-scratch

Es en este punto que se recomienda mirar un poco algunos archivos de los “templates“: composer.json y docker-compose.yml 

Pienso que esta es la información mínima necesaria para encarar el próximo paso que es la instalación de Shopware 6 en nuestro entorno local.

Leave a Reply

Your email address will not be published. Required fields are marked *