← Back to Case Studies

Conectando e-commerce con AliExpress: SDK independente do framework

Contexto do Proxecto

Un cliente necesitaba conectar o seu catálogo de Magento con AliExpress para ampliar canles de venda. Magento serve como a súa plataforma B2C/B2B, mentres que AliExpress actúa como marketplace onde operan como Merchant/Seller. O obxectivo era sincronizar produtos de cada tenda Magento a AliExpress, permitindo aos merchants xestionar o seu catálogo en Magento e exportalo automaticamente a AliExpress.

Reto Técnico

No papel parecía simple, pero xurdiron desafíos do mundo real. AliExpress proporciona unha API complexa, polo que crearon un SDK como middleware para abstraer a comunicación coa API. Porén, este SDK presentaba problemas críticos:

  • • Sen definicións claras de casos de uso: O SDK carecía de límites de negocio claros e casos de uso como puntos de entrada, forzando aos desenvolvedores a loitar con interaccións de baixo nivel coa API
  • • Sen empaquetado axeitado: O SDK era un ficheiro público descargado manualmente e incluído no código fonte—sen autoloader, sen paquete Composer, sen estándares PSR. Isto requiría traballo de integración manual no noso módulo de Magento

Solución Arquitectónica

Decidimos construír o noso propio SDK e usalo como librería externa no módulo de Magento. A arquitectura consistía en tres capas:

  • • Librería SDK personalizada: Abstrae toda a comunicación coa API de AliExpress usando o patrón Mediator. Cada caso de uso está representado por un obxecto que representa a intención (Use Case) e recibe un DTO (datos para POST/GET á API de AliExpress). Isto permite chamar a casos de uso como se foran APIs REST—lembra, todo é unha API
  • • Módulo de Magento (capa de Casos de Uso): Define casos de uso para democratizar o uso da API de AliExpress a nivel de aplicación. Este módulo usa indirección (a través do SDK) para interactuar coa API de AliExpress. Ten dependencias mínimas de Magento e podería ter sido unha librería PHP simple—só define casos de uso co SDK, converténdoo nunha API para a maquinaria
  • • Módulo de Magento (capa de Infraestrutura): Interactúa co backoffice, máis próximo á infraestrutura. Define configuracións de Magento para credenciais de merchants, páxinas do backoffice para visualizar e exportar produtos a AliExpress, importar pedidos de AliExpress a Magento, e un Cron para sincronización periódica de produtos e pedidos

Resultados

Esta arquitectura reduce a fricción co framework creando capas de responsabilidade independentes que non dependen do framework. A lóxica de negocio está completamente separada da infraestrutura de Magento, e os casos de uso están claramente definidos, facendo o sistema mantible e testable.

Tecnoloxías

  • • PHP & Magento 2
  • • Domain-Driven Design
  • • Mediator Pattern
  • • Hexagonal Architecture
  • • Use Case Pattern
  • • PSR Standards

Logros Clave

  • • Definicións claras de casos de uso como puntos de entrada de API
  • • Lóxica de negocio independente do framework (podería ser calquera librería PHP)
  • • Empaquetado axeitado do SDK seguindo estándares PSR
  • • Separación de responsabilidades: capa de Casos de Uso vs capa de Infraestrutura
Discuss Your Project