Publicado en
October 30, 2023

Un middleware composable para Shopify

Leandro Benítez
Director General

En el acelerado panorama digital actual, las empresas necesitan poder integrarse con plataformas de ecommerce como Shopify de forma rápida y eficiente. Para muchas empresas, sin embargo, el desarrollo de integraciones puede ser un proceso largo y costoso.

Para muchas empresas, la creación de integraciones internas puede ser una inversión significativa en términos de tiempo y dinero. Puede requerir la contratación de desarrolladores o consultores adicionales, la inversión en nuevas tecnologías y la dedicación de importantes recursos al proyecto. Además, crear una integración personalizada puede llevar muchos meses, dependiendo de la complejidad de la integración y de la disponibilidad de recursos internos.

Dada la complejidad y el coste de crear integraciones internamente, muchas empresas recurren a agencias digitales para que les ayuden a desarrollarlas. Al aprovechar los conocimientos y la experiencia de la agencia, pueden desarrollar sus integraciones con menos riesgos, aunque también puede llevar mucho tiempo.

El siguiente diagrama ilustra un middleware personalizado que se está construyendo entre un sistema ERP y Shopify. El área azul refleja el código personalizado que debe escribirse para la integración.

El middleware personalizado/integración con Shopify es todo trabajo y nada de diversión

Como se mencionó anteriormente, construir un middleware o una integración como esta tiene varias desventajas:

Alto costo inicial

Crear un middleware o una integración desde cero puede ser un proceso largo y costoso. Hay que abarcar todo el proyecto de integración, desde la recopilación de requisitos hasta el diseño, el desarrollo, las pruebas y el despliegue. El coste puede incluir la contratación de desarrolladores especializados, la compra de hardware y software y otros gastos de infraestructura. Este coste inicial puede suponer una importante barrera de entrada para muchas empresas, especialmente para las más pequeñas con recursos limitados.

Alto coste de mantenimiento

Una vez construida la integración, los costes de mantenimiento continuo también pueden ser elevados. A medida que los sistemas cambian y evolucionan, la integración puede tener que actualizarse, modificarse o incluso reconstruirse por completo. Para garantizar que la integración sigue satisfaciendo las necesidades de la empresa, puede ser necesario un desarrollo continuo, asistencia técnica, documentación y formación. Esto puede aumentar el coste total y la complejidad del proyecto, dificultando su gestión.

Requiere un equipo de desarrolladores expertos

Construir un middleware o una integración desde cero requiere un equipo de desarrolladores expertos con habilidades y conocimientos especializados. La incorporación de nuevos miembros al equipo puede resultar difícil, ya que necesitan comprender todo el sistema y su arquitectura subyacente. Además, los desarrolladores con estas habilidades y conocimientos pueden ser difíciles de encontrar, especialmente para las empresas más pequeñas que pueden no tener los recursos para competir con las grandes empresas por los mejores talentos.

Cuando un equipo de desarrolladores crea integraciones personalizadas para varios clientes, a menudo acaban creando integraciones similares con matices únicos para cada cliente. Esto da lugar a bases de código individuales para cada integración, lo que dificulta y encarece el desarrollo y mantenimiento futuros.

Además, tener que mantener muchos proyectos de integración personalizados puede hacer que el equipo se sienta abrumado e incapaz de centrarse en ofrecer nuevo valor empresarial a los clientes. Esto puede conducir al agotamiento, donde el equipo se fatiga y desmotiva, lo que resulta en una disminución de la productividad y un trabajo de menor calidad.

Un equipo que intenta mantener muchas integraciones personalizadas simultáneamente tendrá dificultades para seguir el ritmo

El problema del agotamiento también afecta a los clientes, ya que el equipo puede dejar de ser capaz de proporcionar el mismo nivel de apoyo y experiencia por el que eran conocidos, lo que resulta en una disminución de la calidad del servicio. Además, si los miembros clave del equipo que lo sabían todo sobre el proyecto de un cliente en particular se marchan, el vacío de conocimientos puede crear retos importantes para el cliente y puede dar lugar a la necesidad de formación adicional o de contratar a nuevo personal para que se haga cargo del proyecto.

Se necesita una mejor manera de integrarse en Shopify porque los métodos de integración actuales, como la creación de integraciones personalizadas, pueden ser costosos, llevar mucho tiempo y ser difíciles de mantener. Además, es posible que estos métodos no puedan satisfacer requisitos empresariales específicos ni adaptarse a los cambios del mercado del comercio electrónico. Mediante el uso de conectores diseñados específicamente para Shopify, las empresas pueden beneficiarse de integraciones rápidas y sencillas que satisfacen sus necesidades únicas, al tiempo que reducen costes y liberan recursos para otras tareas importantes.

¿Podemos construir una solución de middleware composable para Shopify?

Las soluciones de middleware composable se han hecho cada vez más populares en los últimos años, ya que las empresas buscan crear integraciones más flexibles y escalables. Estas soluciones utilizan un enfoque modular para el desarrollo de la integración, lo que permite a las empresas conectar múltiples sistemas y servicios utilizando una variedad de componentes pre construidos o "middleware."

En el caso de las integraciones de Shopify, esto podría incluir componentes de middleware para transferir pedidos a un sistema ERP u OMS, capturar o reembolsar pagos de pedidos, gestionar el envío y el cumplimiento, y sincronizar productos y clientes.

Si pudiéramos traducir las necesidades empresariales de integración con Shopify en requisitos funcionales genéricos, podríamos construir una solución de middleware composable para Shopify. El resultado ideal nos permitiría mantener varios flujos de integración hacia Shopify independientemente de los matices del cliente, mientras que al mismo tiempo nos permitiría comunicarnos si cualquier sistema del cliente.

¿Qué recomienda Shopify?

Shopify recomienda las siguientes directrices a la hora de construir integraciones para garantizar una solución robusta y escalable. Un enfoque es utilizar webhooks para mantener los sistemas externos actualizados, mientras se separa el manejo de webhooks del procesamiento y transformación de datos.

El procesador de webhooks recibe y almacena los webhooks de Shopify, verificando su firma digital para protegerlos contra falsificaciones, y los envía junto con sus datos asociados a la cola. La cola mantiene una lista de datos de webhooks para su procesamiento, mientras que la herramienta de sincronización extrae estos datos y los transforma para sincronizarlos con otros sistemas, como ERP, PIM u OMS. El trabajo de reconciliación comprueba periódicamente si faltan datos y envía un webhook sintético a la cola para garantizar una sincronización adecuada.

Se recomiendan las soluciones de computación en nube y almacenamiento de datos, como las colas de mensajes, para gestionar las picos de tráfico.

Middleware Novicell para Shopify

Hace unos años, un equipo de Novicell se embarcó en un viaje para intentar conseguir precisamente eso: construir un middleware componible para Shopify que pudiera estandarizar las integraciones entre varios sistemas externos y Shopify.

Sin embargo, en lugar de crear integraciones basadas en datos, tenemos en cuenta los requisitos del negocio, creamos casos de uso basados en el negocio y los implementamos. Por ejemplo, en lugar de escribir código que pueda "crear una transacción de tipo captura por un importe de 100 euros", escribimos código que pueda "aceptar una nota de factura de un sistema externo y capturar el pago con tarjeta aceptado en el pedido especificado". De este modo, podemos aportar valor a las empresas sin cargarlas con los detalles técnicos de implementación. Además, nos permite cambiar los detalles de implementación en el futuro cuando haya una forma mejor de hacerlo con un impacto mínimo o nulo en la empresa.

Ninguna empresa es igual a otra, por lo que también añadimos los puntos de ampliación pertinentes. De esta forma, cuando exportamos pedidos desde Shopify a los sistemas de los clientes, podemos exportar exactamente los datos que necesitan. Del mismo modo, cuando necesitamos recibir instrucciones del ERP para capturar pagos de pedidos en Shopify, definimos una entrada basada en el negocio (y compatible con Shopify), Los implementadores del ERP pueden entonces elegir enviar datos basados en nuestro modelo de datos o podemos manejar las diferencias en el componente "adaptador".

El siguiente diagrama ilustra la mentalidad resultante de aspirar a construir soluciones de middleware que pudieran distribuirse a cada cliente con un "adaptador" - código que traduce los datos procedentes de sistemas externos a Shopify y viceversa.

Al hacerlo, hemos podido cosechar beneficios tanto para el equipo como para nuestros clientes:

  1. Reducción del tiempo de desarrollo. Menos código que escribir significa que podemos terminar en menos tiempo que antes.
  2. Mayor fiabilidad. Los componentes "básicos" tienen una serie de pruebas automatizadas para intentar detectar errores a tiempo.
  3. Documentación y formación estandarizadas. Dado que las implementaciones de middleware basadas en nuestros conectores comparten la mayor parte del mismo código, nos permite escribir documentación estandarizada e incorporar nuevos empleados más rápidamente en todos los proyectos.
  4. Menores costes de mantenimiento. Los costes de mantenimiento suelen ser más bajos porque el componente "central" puede desarrollarse de forma centralizada y distribuirse a los proyectos de implementación de los clientes.
Los procesos de integración complejos se construyen y mantienen en el componente verde "Core", mientras que el mapeo y el intercambio de datos con sistemas específicos del cliente se gestionan en el componente azul "Adapter".

Hemos organizado nuestro middleware en tres conectores independientes: uno para productos, otro para pedidos y otro para clientes. Con esta modularidad, podemos lograr una mayor flexibilidad en el desarrollo, ya que los componentes individuales pueden actualizarse o sustituirse sin afectar al resto del sistema. Además, podemos gestionar la escalabilidad y alcanzar los requisitos de rendimiento escalando cada conector. Por otra parte, los componentes más pequeños y centrados son más fáciles de solucionar y mantener, ya que los problemas se pueden aislar en componentes específicos.

El componente "Adaptador" también actúa como capa anticorrupción, de forma que los cambios en el "núcleo" no requieren cambios en la conexión con el sistema ERP. Por ejemplo, si más adelante descubrimos una forma mejor de implementar un caso de uso concreto, o si Shopify realiza cambios en su plataforma y sus API, podemos realizar los cambios de forma centralizada en el conector o conectores y distribuirlos al middleware del cliente con cambios menores o sin cambios en el código del adaptador existente, lo que significa que no es necesario realizar apenas trabajo en el sistema ERP.

Flujo de datos

Como se mencionó anteriormente, construimos nuestros conectores middleware para Shopify basándonos en las necesidades de negocio de nuestros clientes. Como resultado, cada conector implementa un conjunto particular de casos de uso soportados que la mayoría de nuestros clientes comparten.

Si un cliente requiere una personalización particular, podemos entonces investigar si el requisito funcional es algo que debemos construir en el conector, manejar en el componente adaptador o construir junto a los conectores en la capa de middleware.

Conector de productos

El conector de productos del middleware trabaja principalmente con datos de productos y existencias. Construimos el componente adaptador para que acepte datos de diferentes sistemas, fuentes o una combinación de ellos. A continuación, los datos se asignan a nuestra entrada de conector estandarizada y se envían al conector. A partir de ahí, se ponen en marcha casos de uso predefinidos e impulsados por la empresa para orquestar las llamadas a la API de Shopify en el orden concreto en que deben realizarse.

Si los datos del producto se envían al conector, pero no han cambiado desde la última vez que se enviaron los datos, entonces no se envían solicitudes API a Shopify. Esto es importante, particularmente con catálogos grandes, porque si todos los datos fueran reenviados a Shopify a lo largo del tiempo, entonces llevaría mucho más tiempo actualizar todos los productos y, lo que es más importante, el stock.

Otra ventaja es que el conector de productos puede recibir la información de productos y existencias de forma independiente: podemos almacenar la información antes de recibir la información de productos. Una vez que recibimos la información del producto, comprobamos si ya hemos recibido antes la información de existencias y, en caso afirmativo, la actualizamos inmediatamente en Shopify. También funciona a la inversa.

Conector de pedidos

El conector de pedidos de Middleware trabaja principalmente con pedidos, transacciones y cumplimiento. El componente adaptador se construye para cada cliente, lo que nos permite enviar y recibir datos de cualquier ERP u otro sistema que puedan tener. Los datos que recibimos se asignan a una entrada de conector estándar y se envían al conector. En este punto, los casos de uso orientados al negocio se ejecutan basándose en la entrada y orquestan las comunicaciones con Shopify.

Cuando el conector de pedidos necesita enviar datos de vuelta al ERP o a otro sistema, lo hace a través del componente adaptador, donde especificamos qué datos de Shopify necesitamos, cómo deben formatearse y cómo deben enviarse.

Las comunicaciones con Shopify se realizan mediante el uso de webhooks, así como trabajos de reconciliación para asegurarnos de que los datos están actualizados.

Al exportar pedidos a sistemas externos, podemos evitar que el mismo pedido se envíe varias veces. Además, a través del componente adaptador, podemos especificar qué reglas de validación debe pasar un pedido en Shopify antes de ser exportado.

Si el sistema ERP proporciona accidentalmente la misma nota de factura o una nota de crédito, el conector de pedidos puede evitar cobrar o reembolsar demasiado al cliente ignorando los documentos duplicados.

Por último, si el conector de pedidos está configurado para hablar con varias tiendas de Shopify, podemos ajustar automáticamente el inventario de los artículos del pedido en tiendas distintas de aquella en la que se realizó el pedido. Esto puede reducir el riesgo de sobreventa de artículos de bajo stock antes de que el ERP pueda responder con niveles de stock actualizados.

Conector de clientes

El conector de clientes de Middleware trabaja principalmente con datos de clientes. Construimos el componente adaptador para aceptar entradas de sistemas externos. Los datos se asignan a nuestra entrada de conector estandarizada y se envían al conector. A partir de ahí, se orquestan llamadas a la API de Shopify para crear o actualizar el cliente, las direcciones y los campos personalizados.

Cuando se sincroniza un cliente con Shopify, se elimina cualquier dato identificable del cliente en el conector.

¿Qué ocurre con las plataformas de integración Low-Code?

Aunque las plataformas de integración Low-Code pueden ser una forma rápida y sencilla de conectar una serie de sistemas, es importante tener en cuenta que sus conectores incorporados no siempre satisfacen los requisitos empresariales específicos de una empresa concreta. Muchos de estos conectores están diseñados para integraciones basadas en datos y pueden no proporcionar el nivel de personalización necesario para crear un flujo de trabajo totalmente optimizado.

Además, algunas plataformas de integración de Low-Code pueden basarse en tecnologías más antiguas, como la API REST de Shopify, en lugar de la API GraphQL, más nueva y avanzada. Al utilizar la API REST, las empresas pueden perderse las últimas características y actualizaciones que solo están disponibles a través de la API GraphQL. Esto podría limitar potencialmente la capacidad de una empresa para aprovechar el rápido ritmo de innovación de Shopify y adaptarse a las tendencias cambiantes del mercado.

Por el contrario, nuestros conectores están diseñados con un profundo conocimiento de las APIs de Shopify y de las necesidades específicas de las empresas. Al aprovechar las últimas tecnologías y actualizaciones de Shopify, nuestros conectores tienen como objetivo proporcionar flujos de trabajo actualizados y optimizados.

Por otra parte, también es posible combinar lo mejor de ambos mundos - plataforma de integración Low-Code para manejar la capa de middleware de nivel empresarial con nuestros conectores para la integración con Shopify. En lugar de que los conectores "hablen" con los puntos de integración del ERP, se comunicarían con la plataforma de integración.

¿Una oportunidad para tu empresa?

Si quieres conocer más detalle sobre nuestro conector y entender cómo puede integrarse en el ecosistema digital de tu empresa, ponte en contacto con nosotros. Estaremos encantados de contarte más detalles sobre la implementación y todas las ventajas que puede aportar a tu negocio

Servicios

Cómo podemos ayudarte

Consulta los servicios con los que te ayudaremos a conseguir tus objetivos digitales.

servicios

Otros artículos

No items found.