← Back to Case Studies

Connectant e-commerce amb AliExpress: SDK independent del framework

Context del Projecte

Un client necessitava connectar el seu catàleg de Magento amb AliExpress per ampliar canals de venda. Magento serveix com la seva plataforma B2C/B2B, mentre que AliExpress actua com marketplace on operen com Merchant/Seller. L'objectiu era sincronitzar productes de cada botiga Magento a AliExpress, permetent als merchants gestionar el seu catàleg a Magento i exportar-lo automàticament a AliExpress.

Repte Tècnic

Al paper semblava simple, però van sorgir desafiaments del món real. AliExpress proporciona una API complexa, per la qual cosa van crear un SDK com middleware per abstraure la comunicació amb l'API. Tanmateix, aquest SDK presentava problemes crítics:

  • • Sense definicions clares de casos d'ús: L'SDK mancava de límits de negoci clars i casos d'ús com a punts d'entrada, forçant als desenvolupadors a lluitar amb interaccions de baix nivell amb l'API
  • • Sense empaquetat adequat: L'SDK era un fitxer públic descarregat manualment i inclòs al codi font—sense autoloader, sense paquet Composer, sense estàndards PSR. Això requeria treball d'integració manual al nostre mòdul de Magento

Solució Arquitectònica

Vam decidir construir el nostre propi SDK i usar-lo com a llibreria externa al mòdul de Magento. L'arquitectura consistia en tres capes:

  • • Llibreria SDK personalitzada: Abstrau tota la comunicació amb l'API d'AliExpress usant el patró Mediator. Cada cas d'ús està representat per un objecte que representa la intenció (Use Case) i rep un DTO (dades per POST/GET a l'API d'AliExpress). Això permet cridar a casos d'ús com si fossin APIs REST—recorda, tot és una API
  • • Mòdul de Magento (capa de Casos d'Ús): Defineix casos d'ús per democratitzar l'ús de l'API d'AliExpress a nivell d'aplicació. Aquest mòdul usa indirecció (a través de l'SDK) per interactuar amb l'API d'AliExpress. Té dependències mínimes de Magento i podria haver estat una llibreria PHP simple—només defineix casos d'ús amb l'SDK, convertint-lo en una API per a la maquinària
  • • Mòdul de Magento (capa d'Infraestructura): Interactua amb el backoffice, més proper a la infraestructura. Defineix configuracions de Magento per credencials de merchants, pàgines del backoffice per visualitzar i exportar productes a AliExpress, importar comandes d'AliExpress a Magento, i un Cron per sincronització periòdica de productes i comandes

Resultats

Aquesta arquitectura redueix la fricció amb el framework creant capes de responsabilitat independents que no depenen del framework. La lògica de negoci està completament separada de la infraestructura de Magento, i els casos d'ús estan clarament definits, fent el sistema mantenible i testeable.

Tecnologies

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

Assoliments Clau

  • • Definicions clares de casos d'ús com a punts d'entrada d'API
  • • Lògica de negoci independent del framework (podria ser qualsevol llibreria PHP)
  • • Empaquetat adequat de l'SDK seguint estàndards PSR
  • • Separació de responsabilitats: capa de Casos d'Ús vs capa d'Infraestructura
Discuss Your Project