SlideShare una empresa de Scribd logo
1 de 45
Meet Magento 2017 - Lyracons
Un camino por las APIs
2
Juan Pablo Giménez Giaimo
Core Developer / Lyracons S.A. - jgimenezgiaimo@lyracons.com
Jonathan Navarro
Core Developer / Lyracons S.A. - jnavarro@lyracons.com
Michaël Ayoul
Core Developer / Lyracons S.A. - mayoul@lyracons.com
Integraciones
Meet Magento 2017
3
¿Con qué necesitamos integrarnos?
4
ERP/CRMs
Otros
Sistemas
Custom
Sistemas
Externos
5
Identificando puntos clave
→ Integración de Productos
→ Integración de Stock
→ Integración de Precios
→ Integración de Órdenes/Pedidos
→ Integración de Envíos
6
Para poder llevar a cabo estas integraciones
deberíamos identificar con qué herramientas
contamos. En nuestro caso la principal herramienta
Magento API.
7
Magento API
Provee a los desarrolladores una interfaz de acceso a cualquier contenido de magento
(Info de Clientes, Pedidos, Catálogo, etc.). Compatibilidad con los protocolos REST
(Representational State Transfer) y SOAP (Simple Object Access Protocol).
Cuenta con 3 tipos de autenticación
→ OAuth.
→ Autenticación mediante Tokens.
→ Credenciales Administradores & Clientes.
En el caso de la API REST vamos a utilizar HTTP methods para identificar el tipo de
operación.
→ Método GET Consulta.
→ Método POST Alta/Creación.
→ Método PUT Actualización.
→ Método DELETE Borrado.
Autenticación Mediante Tokens
8
/rest/v1/integration/admin/token
Consulta de Pedidos
9
/rest/V1/orders?searchCriteria[filter_groups][0][filters][0][field]=status&searchCriteria[filter_groups][0][filters][0][value]=pendin
g&searchCriteria[pageSize]=50
Ahora que sabemos utilizar la API.
¿Cómo llevamos adelante nuestro desarrollo?
Existen muchas maneras de realizar esta implementación.
Primera pauta centrarnos en no modificar Magento para este tipo de
desarrollos, y aprovechar al máximo las APIs estándar.
¿Deberíamos modificar las plataformas con las que necesitamos
integrarnos?
Debemos pensar en conectar estos sistemas con el menor impacto
posible en su arquitectura.
10
Es un software que asiste a una aplicación para interactuar
o comunicarse con otras aplicaciones.
Se encuentra como capa de interconexión, simplifica el
trabajo de los desarrolladores a la hora de implementar
comunicaciones entre sistemas distribuidos.
En nuestro caso nos va a permitir conectar nuestra
plataforma de e-commerce Magento con los sistemas
antes mencionados.
11
Middleware
12
Middleware
PlataformaX
Conectorx
ConectorMagento
Módulos de Integración
Middleware Asincrónico
13
➔ Tiempos de respuesta más rápidos
➔ Grandes paquetes de datos
➔ Carga distribuida
➔ Manejo de prioridades
¿Cuándo usarlo?
14
CRONES
➔ Envío de Emails
➔ Indexación de Entidades
➔ Limpieza y Warm-Up de Caché
➔ Backups
COLA DE MENSAJES
➔ Creación de Productos
➔ Generación de Órdenes
➔ Cambios de Estado
➔ Actualización de Stock
➔ Admisión de Paquetes
➔ Validación de Pagos
Cola de Mensajes (Brokers)
15
Motor de nuestro middleware RabbitMQ
➔ Paradigma Pub/Sub (Publish/Subscribe)
➔ Rest API
➔ Latencia medida en microsegundos
➔ 250K mensajes en simultáneo
➔ Gran comunidad de soporte
PUB SUB
Queue_sn
Simulación
16
Cliente FANTASMA S.A
➔ 1500 Productos
➔ 3 Depósitos (FORM 1, 2 y 3)
➔ Multistore (Nacional e Internacional)
➔ 1000 Ventas diarias
➔ 3000 Transacciones de Stock
Servicio 1 (JSON)
Servicio 2 (XML)
Servicio 3 (CSV)
17
Middleware
FORM1 (JSON) FORM2 (XML) FORM3 (CSV)
JSON
Conector 1 Conector 2 Conector 3
Conector
Magento
/rest/V1/multistock
Decorador
18
Servicios Externos
FE/BE
Q1
Q2
Q3
Main
M01
M02
DB
LOG
C/D
DB
AMQP
Exchange
● Q1: Pedidos
● Q2: Productos
● Q3: Pagos
Routeo
CSV, JSON, XML,
XSL, REST, SOAP,
TXT, ETC
C/D = Conector/Decorador | M = Mirror
FS
Comparación Magento 1 / Magento 2
19
Magento 1
➔ Las APIs SOAP y REST ofrecen
distintas funciones
Magento 2
➔ SOAP y REST ofrecen las mismas
funciones
Comparación Magento 1 / Magento 2
20
Magento 1
➔ Las APIs SOAP y REST ofrecen
distintas funciones
➔ Código separado según que la API
sea SOAP o REST
Magento 2
➔ SOAP y REST ofrecen las mismas
funciones
➔ El mismo módulo expone los servicios
para SOAP y REST
Comparación Magento 1 / Magento 2
21
Magento 1
➔ Las APIs SOAP y REST ofrecen
distintas funciones
➔ Código separado según que la API
sea SOAP o REST
➔ Sistemas de autenticación distintos
para SOAP y REST
Magento 2
➔ SOAP y REST ofrecen las mismas
funciones
➔ El mismo módulo expone los servicios
para SOAP y REST
➔ Sistema de token compatible entre
ambas (OAuth sólo soportado para REST)
Comparación Magento 1 / Magento 2
22
Magento 1
➔ Las APIs SOAP y REST ofrecen
distintas funciones
➔ Código separado según que la API
sea SOAP o REST
➔ Sistemas de autenticación distintos
para SOAP y REST
➔ Conformidad con SOAP WS-I
opcional
Magento 2
➔ SOAP y REST ofrecen las mismas
funciones
➔ El mismo módulo expone los servicios
para SOAP y REST
➔ Sistema de token compatible entre
ambas (OAuth sólo soportado para REST)
➔ Cumplimiento requerido con los
estándares SOAP WS-I
Comparación Magento 1 / Magento 2
23
Magento 1
➔ Las APIs SOAP y REST ofrecen
distintas funciones
➔ Código separado según que la API
sea SOAP o REST
➔ Sistemas de autenticación distintos
para SOAP y REST
➔ Conformidad con SOAP WS-I
opcional
➔ No autentificación por sesión, que
sea de frontend o backend
Magento 2
➔ SOAP y REST ofrecen las mismas
funciones
➔ El mismo módulo expone los servicios
para SOAP y REST
➔ Sistema de token compatible entre
ambas (OAuth sólo soportado para REST)
➔ Cumplimiento requerido con los
estándares SOAP WS-I
➔ Autentificación automática para clientes
(front) como para usuario de admin
Comparación Magento 1 / Magento 2
24
Magento 1
➔ Las APIs SOAP y REST ofrecen
distintas funciones
➔ Código separado según que la API
sea SOAP o REST
➔ Sistemas de autenticación distintos
para SOAP y REST
➔ Conformidad con SOAP WS-I
opcional
➔ No autentificación por sesión, que
sea de frontend o backend
➔ No permite acceso sin autenticación
Magento 2
➔ SOAP y REST ofrecen las mismas
funciones
➔ El mismo módulo expone los servicios
para SOAP y REST
➔ Sistema de token compatible entre
ambas (OAuth sólo soportado para REST)
➔ Cumplimiento requerido con los
estándares SOAP WS-I
➔ Autentificación automática para clientes
(front) como para usuario de admin
➔ Posibilidad de acceso anónimo como
Guest
Desde: Stores > Configuration > Services > Magento Web API
Web API Security: Allow Anonymous Guest Access
Habilitar el acceso como Guest
25
Consultando /rest/V1/cmsBlock/:blockId
Ejemplo de respuesta
26
Con los sample data:
Consultando /rest/V1/products/?searchCriteria[pageSize]=10
27
La autentificación en las APIs de Magento
3 formas de identificarse
1) Por sesión:
Customer / Admin User
> Limitado a llamadas ajax por cuestiones de vulnerabilidad
2) Por token:
llamado /rest/V1/integration/admin/token
ver github: external/_authentication.php
3) OAuth:
System > Extensions: Integrations - Nueva Integración
28
La autentificación en las APIs de Magento
3 formas de identificarse
1) Por sesión:
Customer / Admin User
> Limitado a llamadas ajax por cuestiones de vulnerabilidad
2) Por token:
llamado /rest/V1/integration/admin/token
ver github: external/_authentication.php
3) OAuth:
System > Extensions: Integrations - Nueva Integración
29
La autentificación en las APIs de Magento
3 formas de identificarse
1) Por sesión:
Customer / Admin User
> Limitado a llamadas ajax por cuestiones de vulnerabilidad
2) Por token:
llamado /rest/V1/integration/admin/token
ver github: external/_authentication.php
3) OAuth:
System > Extensions: Integrations - Nueva Integración
30
31
32
33
http://devdocs.magento.com/guides/v2.2/get-started/order-tutorial/order-intro.html
Ejemplo de flujo completo por API
34
➔ Autentificarse como cliente:
POST http://<host>/rest/default/V1/integration/customer/token
token q0u66k8h42yaevtchv09uyy3y9gaj2ap
http://devdocs.magento.com/guides/v2.2/get-started/order-tutorial/order-intro.html
Ejemplo de flujo completo por API
35
➔ Autentificarse como cliente:
POST http://<host>/rest/default/V1/integration/customer/token
token q0u66k8h42yaevtchv09uyy3y9gaj2ap
➔ Creación de un carrito:
POST http://<host>/rest/default/V1/carts/mine
quoteId 4
http://devdocs.magento.com/guides/v2.2/get-started/order-tutorial/order-intro.html
Ejemplo de flujo completo por API
36
➔ Autentificarse como cliente:
POST http://<host>/rest/default/V1/integration/customer/token
token q0u66k8h42yaevtchv09uyy3y9gaj2ap
➔ Creación de un carrito:
POST http://<host>/rest/default/V1/carts/mine
quoteId 4
➔ Agregar productos al carrito
POST http://<host>/rest/default/V1/carts/mine/items
itemId 12
➔ Esta etapa requiere consultas a endpoints adicionales para
productos bundles o configurables
http://devdocs.magento.com/guides/v2.2/get-started/order-tutorial/order-intro.html
Ejemplo de flujo completo por API
37
➔ Autentificarse como cliente:
POST http://<host>/rest/default/V1/integration/customer/token
token q0u66k8h42yaevtchv09uyy3y9gaj2ap
➔ Creación de un carrito:
POST http://<host>/rest/default/V1/carts/mine
quoteId 4
➔ Agregar productos al carrito
POST http://<host>/rest/default/V1/carts/mine/items
itemId 12
➔ Esta etapa requiere consultas a endpoints adicionales para
productos bundles o configurables
➔ Estimar costo de envío:
POST /rest/default/V1/carts/mine/estimate-shipping-methods
flatrate $150
http://devdocs.magento.com/guides/v2.2/get-started/order-tutorial/order-intro.html
Ejemplo de flujo completo por API
38
➔ Autentificarse como cliente:
POST http://<host>/rest/default/V1/integration/customer/token
token q0u66k8h42yaevtchv09uyy3y9gaj2ap
➔ Creación de un carrito:
POST http://<host>/rest/default/V1/carts/mine
quoteId 4
➔ Agregar productos al carrito
POST http://<host>/rest/default/V1/carts/mine/items
itemId 12
➔ Esta etapa requiere consultas a endpoints adicionales para
productos bundles o configurables
➔ Estimar costo de envío:
POST /rest/default/V1/carts/mine/estimate-shipping-methods
flatrate $150
➔ Enviar información de facturación & envío:
POST /rest/default/V1/carts/mine/shipping-information
subtotal $1650
http://devdocs.magento.com/guides/v2.2/get-started/order-tutorial/order-intro.html
Ejemplo de flujo completo por API
39
➔ Autentificarse como cliente:
POST http://<host>/rest/default/V1/integration/customer/token
token q0u66k8h42yaevtchv09uyy3y9gaj2ap
➔ Creación de un carrito:
POST http://<host>/rest/default/V1/carts/mine
quoteId 4
➔ Agregar productos al carrito
POST http://<host>/rest/default/V1/carts/mine/items
itemId 12
➔ Esta etapa requiere consultas a endpoints adicionales para
productos bundles o configurables
➔ Estimar costo de envío:
POST /rest/default/V1/carts/mine/estimate-shipping-methods
flatrate $150
➔ Enviar información de facturación & envío:
POST /rest/default/V1/carts/mine/shipping-information
subtotal $1650
➔ Elegir método de pago:
POST /rest/default/V1/carts/mine/payment-information
orderId 4
http://devdocs.magento.com/guides/v2.2/get-started/order-tutorial/order-intro.html
Ejemplo de flujo completo por API
40
➔ Autentificarse como cliente:
POST http://<host>/rest/default/V1/integration/customer/token
token q0u66k8h42yaevtchv09uyy3y9gaj2ap
➔ Creación de un carrito:
POST http://<host>/rest/default/V1/carts/mine
quoteId 4
➔ Agregar productos al carrito
POST http://<host>/rest/default/V1/carts/mine/items
itemId 12
➔ Esta etapa requiere consultas a endpoints adicionales para
productos bundles o configurables
➔ Estimar costo de envío:
POST /rest/default/V1/carts/mine/estimate-shipping-methods
flatrate $150
➔ Enviar información de facturación & envío:
POST /rest/default/V1/carts/mine/shipping-information
subtotal $1650
➔ Elegir método de pago:
POST /rest/default/V1/carts/mine/payment-information
orderId 4
➔ Revisar pedido (como admin)
➔ Crear factura
➔ Despachar un ítem
➔ Realizar una devolución
..etc.
¿Por qué?
● Mejorar un endpoint existente (ej. bestseller products)
● Agregar validaciones (ej. validar CUIL para customer)
● Extender permisos para consultar un endpoint
● Entidades propias (ej. locales / fabricante / proveedor..etc.)
41
API Magento personalizada
Integración hacia APIs externas
● Los plugins Magento 2 de los medios de pago populares
interactúan con sus propias APIs: TodoPago, rapipago,
Decidir, mercadopago (lógica en php-sdk)
● EBay, Amazon... usan la librería Zend en magento2-ce
→ devdocs
→ Getting started with Magento Web APIs
http://devdocs.magento.com/guides/v2.2/get-started/bk-get-started-api.html
→ REST API documentation
http://devdocs.magento.com/guides/v2.2/rest/bk-rest.html
→ Lista de métodos disponibles
http://devdocs.magento.com/swagger/index.html
(ver https://swagger.io/)
→ #issue de autentificación por sesión de backend
https://github.com/magento/magento2/issues/9138
→ @alanstorm
→ Understanding Web API Architecture
http://alanstorm.com/magento-2-understanding-the-web-api-architecture/
→ github
https://github.com/lc-mayoul/Lyracons_MeetMagento
Referencias
42
La herramienta swagger:
En http://devdocs.magento.com/swagger/index.html un listado completo de todos los endpoints de las APIs nativas de
Magento
43
Detalles swagger:
44
45
¡Muchas gracias!
Meet Magento 2017

Más contenido relacionado

Similar a Magento API guía integración

Intro a ASP.NET
Intro a ASP.NETIntro a ASP.NET
Intro a ASP.NETwilliamsm
 
Seguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerSeguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerCloudAppi
 
BizLife - Construyendo un Ecosistema Empresarial usando WSO2
BizLife - Construyendo un Ecosistema Empresarial usando WSO2BizLife - Construyendo un Ecosistema Empresarial usando WSO2
BizLife - Construyendo un Ecosistema Empresarial usando WSO2Roger CARHUATOCTO
 
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)lenny
 
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)INSIGNIA4U
 
Comparación de API y SOA
Comparación de API y SOAComparación de API y SOA
Comparación de API y SOADiego Suarez
 
Diseño de APIs con OpenAPI
Diseño de APIs con OpenAPIDiseño de APIs con OpenAPI
Diseño de APIs con OpenAPIPedro J. Molina
 
Pylot : Herramienta para pruebas de rendimiento de Aplicaciones Web
Pylot : Herramienta para pruebas  de rendimiento de Aplicaciones WebPylot : Herramienta para pruebas  de rendimiento de Aplicaciones Web
Pylot : Herramienta para pruebas de rendimiento de Aplicaciones WebDeisy Sapaico
 
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...Héctor Curbelo Barrios
 
Introducción a aplicaciones web.
Introducción a aplicaciones web.Introducción a aplicaciones web.
Introducción a aplicaciones web.camilaml
 
MuleSoft Anypoint Platform - Releases 2019
MuleSoft Anypoint Platform - Releases 2019 MuleSoft Anypoint Platform - Releases 2019
MuleSoft Anypoint Platform - Releases 2019 Larry Magallanes
 
Derribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev DayDerribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev DayPlain Concepts
 
Guia para el diseño modular de sistemas
Guia para el diseño modular de sistemasGuia para el diseño modular de sistemas
Guia para el diseño modular de sistemasOscar Centeno
 
GFI - Seguridad en tus APIs
GFI - Seguridad en tus APIsGFI - Seguridad en tus APIs
GFI - Seguridad en tus APIsGFI Informática
 
Analizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BIAnalizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BISolidQ
 
Microservicios y Gestion de APIs
Microservicios y Gestion de APIsMicroservicios y Gestion de APIs
Microservicios y Gestion de APIsJorge Rodriguez
 
Proyecto De Analisis Y Sistema De Reclamos
Proyecto De Analisis Y Sistema De ReclamosProyecto De Analisis Y Sistema De Reclamos
Proyecto De Analisis Y Sistema De Reclamosinvestigacionformativaut
 

Similar a Magento API guía integración (20)

Intro a ASP.NET
Intro a ASP.NETIntro a ASP.NET
Intro a ASP.NET
 
Seguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerSeguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developer
 
BizLife - Construyendo un Ecosistema Empresarial usando WSO2
BizLife - Construyendo un Ecosistema Empresarial usando WSO2BizLife - Construyendo un Ecosistema Empresarial usando WSO2
BizLife - Construyendo un Ecosistema Empresarial usando WSO2
 
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
 
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
 
Comparación de API y SOA
Comparación de API y SOAComparación de API y SOA
Comparación de API y SOA
 
Lanzamiento Omni Chile
Lanzamiento Omni ChileLanzamiento Omni Chile
Lanzamiento Omni Chile
 
Diseño de APIs con OpenAPI
Diseño de APIs con OpenAPIDiseño de APIs con OpenAPI
Diseño de APIs con OpenAPI
 
Pylot : Herramienta para pruebas de rendimiento de Aplicaciones Web
Pylot : Herramienta para pruebas  de rendimiento de Aplicaciones WebPylot : Herramienta para pruebas  de rendimiento de Aplicaciones Web
Pylot : Herramienta para pruebas de rendimiento de Aplicaciones Web
 
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
 
OpenAPI 3.0.2
OpenAPI 3.0.2OpenAPI 3.0.2
OpenAPI 3.0.2
 
Introducción a aplicaciones web.
Introducción a aplicaciones web.Introducción a aplicaciones web.
Introducción a aplicaciones web.
 
MuleSoft Anypoint Platform - Releases 2019
MuleSoft Anypoint Platform - Releases 2019 MuleSoft Anypoint Platform - Releases 2019
MuleSoft Anypoint Platform - Releases 2019
 
Derribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev DayDerribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev Day
 
Guia para el diseño modular de sistemas
Guia para el diseño modular de sistemasGuia para el diseño modular de sistemas
Guia para el diseño modular de sistemas
 
Aladdin cargo - Steven Alejandro Suárez Castro
Aladdin cargo - Steven Alejandro Suárez CastroAladdin cargo - Steven Alejandro Suárez Castro
Aladdin cargo - Steven Alejandro Suárez Castro
 
GFI - Seguridad en tus APIs
GFI - Seguridad en tus APIsGFI - Seguridad en tus APIs
GFI - Seguridad en tus APIs
 
Analizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BIAnalizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BI
 
Microservicios y Gestion de APIs
Microservicios y Gestion de APIsMicroservicios y Gestion de APIs
Microservicios y Gestion de APIs
 
Proyecto De Analisis Y Sistema De Reclamos
Proyecto De Analisis Y Sistema De ReclamosProyecto De Analisis Y Sistema De Reclamos
Proyecto De Analisis Y Sistema De Reclamos
 

Último

NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfisrael garcia
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webDecaunlz
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAdanielaerazok
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdfedwinmelgarschlink2
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdflauradbernals
 
Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digitalNayaniJulietaRamosRa
 
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señorkkte210207
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenajuniorcuellargomez
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenadanielaerazok
 

Último (9)

NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la web
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdf
 
Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digital
 
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalena
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalena
 

Magento API guía integración

  • 1. Meet Magento 2017 - Lyracons Un camino por las APIs
  • 2. 2 Juan Pablo Giménez Giaimo Core Developer / Lyracons S.A. - jgimenezgiaimo@lyracons.com Jonathan Navarro Core Developer / Lyracons S.A. - jnavarro@lyracons.com Michaël Ayoul Core Developer / Lyracons S.A. - mayoul@lyracons.com
  • 4. ¿Con qué necesitamos integrarnos? 4 ERP/CRMs Otros Sistemas Custom Sistemas Externos
  • 5. 5 Identificando puntos clave → Integración de Productos → Integración de Stock → Integración de Precios → Integración de Órdenes/Pedidos → Integración de Envíos
  • 6. 6 Para poder llevar a cabo estas integraciones deberíamos identificar con qué herramientas contamos. En nuestro caso la principal herramienta Magento API.
  • 7. 7 Magento API Provee a los desarrolladores una interfaz de acceso a cualquier contenido de magento (Info de Clientes, Pedidos, Catálogo, etc.). Compatibilidad con los protocolos REST (Representational State Transfer) y SOAP (Simple Object Access Protocol). Cuenta con 3 tipos de autenticación → OAuth. → Autenticación mediante Tokens. → Credenciales Administradores & Clientes. En el caso de la API REST vamos a utilizar HTTP methods para identificar el tipo de operación. → Método GET Consulta. → Método POST Alta/Creación. → Método PUT Actualización. → Método DELETE Borrado.
  • 10. Ahora que sabemos utilizar la API. ¿Cómo llevamos adelante nuestro desarrollo? Existen muchas maneras de realizar esta implementación. Primera pauta centrarnos en no modificar Magento para este tipo de desarrollos, y aprovechar al máximo las APIs estándar. ¿Deberíamos modificar las plataformas con las que necesitamos integrarnos? Debemos pensar en conectar estos sistemas con el menor impacto posible en su arquitectura. 10
  • 11. Es un software que asiste a una aplicación para interactuar o comunicarse con otras aplicaciones. Se encuentra como capa de interconexión, simplifica el trabajo de los desarrolladores a la hora de implementar comunicaciones entre sistemas distribuidos. En nuestro caso nos va a permitir conectar nuestra plataforma de e-commerce Magento con los sistemas antes mencionados. 11 Middleware
  • 13. Middleware Asincrónico 13 ➔ Tiempos de respuesta más rápidos ➔ Grandes paquetes de datos ➔ Carga distribuida ➔ Manejo de prioridades
  • 14. ¿Cuándo usarlo? 14 CRONES ➔ Envío de Emails ➔ Indexación de Entidades ➔ Limpieza y Warm-Up de Caché ➔ Backups COLA DE MENSAJES ➔ Creación de Productos ➔ Generación de Órdenes ➔ Cambios de Estado ➔ Actualización de Stock ➔ Admisión de Paquetes ➔ Validación de Pagos
  • 15. Cola de Mensajes (Brokers) 15 Motor de nuestro middleware RabbitMQ ➔ Paradigma Pub/Sub (Publish/Subscribe) ➔ Rest API ➔ Latencia medida en microsegundos ➔ 250K mensajes en simultáneo ➔ Gran comunidad de soporte PUB SUB Queue_sn
  • 16. Simulación 16 Cliente FANTASMA S.A ➔ 1500 Productos ➔ 3 Depósitos (FORM 1, 2 y 3) ➔ Multistore (Nacional e Internacional) ➔ 1000 Ventas diarias ➔ 3000 Transacciones de Stock Servicio 1 (JSON) Servicio 2 (XML) Servicio 3 (CSV)
  • 17. 17 Middleware FORM1 (JSON) FORM2 (XML) FORM3 (CSV) JSON Conector 1 Conector 2 Conector 3 Conector Magento /rest/V1/multistock Decorador
  • 18. 18 Servicios Externos FE/BE Q1 Q2 Q3 Main M01 M02 DB LOG C/D DB AMQP Exchange ● Q1: Pedidos ● Q2: Productos ● Q3: Pagos Routeo CSV, JSON, XML, XSL, REST, SOAP, TXT, ETC C/D = Conector/Decorador | M = Mirror FS
  • 19. Comparación Magento 1 / Magento 2 19 Magento 1 ➔ Las APIs SOAP y REST ofrecen distintas funciones Magento 2 ➔ SOAP y REST ofrecen las mismas funciones
  • 20. Comparación Magento 1 / Magento 2 20 Magento 1 ➔ Las APIs SOAP y REST ofrecen distintas funciones ➔ Código separado según que la API sea SOAP o REST Magento 2 ➔ SOAP y REST ofrecen las mismas funciones ➔ El mismo módulo expone los servicios para SOAP y REST
  • 21. Comparación Magento 1 / Magento 2 21 Magento 1 ➔ Las APIs SOAP y REST ofrecen distintas funciones ➔ Código separado según que la API sea SOAP o REST ➔ Sistemas de autenticación distintos para SOAP y REST Magento 2 ➔ SOAP y REST ofrecen las mismas funciones ➔ El mismo módulo expone los servicios para SOAP y REST ➔ Sistema de token compatible entre ambas (OAuth sólo soportado para REST)
  • 22. Comparación Magento 1 / Magento 2 22 Magento 1 ➔ Las APIs SOAP y REST ofrecen distintas funciones ➔ Código separado según que la API sea SOAP o REST ➔ Sistemas de autenticación distintos para SOAP y REST ➔ Conformidad con SOAP WS-I opcional Magento 2 ➔ SOAP y REST ofrecen las mismas funciones ➔ El mismo módulo expone los servicios para SOAP y REST ➔ Sistema de token compatible entre ambas (OAuth sólo soportado para REST) ➔ Cumplimiento requerido con los estándares SOAP WS-I
  • 23. Comparación Magento 1 / Magento 2 23 Magento 1 ➔ Las APIs SOAP y REST ofrecen distintas funciones ➔ Código separado según que la API sea SOAP o REST ➔ Sistemas de autenticación distintos para SOAP y REST ➔ Conformidad con SOAP WS-I opcional ➔ No autentificación por sesión, que sea de frontend o backend Magento 2 ➔ SOAP y REST ofrecen las mismas funciones ➔ El mismo módulo expone los servicios para SOAP y REST ➔ Sistema de token compatible entre ambas (OAuth sólo soportado para REST) ➔ Cumplimiento requerido con los estándares SOAP WS-I ➔ Autentificación automática para clientes (front) como para usuario de admin
  • 24. Comparación Magento 1 / Magento 2 24 Magento 1 ➔ Las APIs SOAP y REST ofrecen distintas funciones ➔ Código separado según que la API sea SOAP o REST ➔ Sistemas de autenticación distintos para SOAP y REST ➔ Conformidad con SOAP WS-I opcional ➔ No autentificación por sesión, que sea de frontend o backend ➔ No permite acceso sin autenticación Magento 2 ➔ SOAP y REST ofrecen las mismas funciones ➔ El mismo módulo expone los servicios para SOAP y REST ➔ Sistema de token compatible entre ambas (OAuth sólo soportado para REST) ➔ Cumplimiento requerido con los estándares SOAP WS-I ➔ Autentificación automática para clientes (front) como para usuario de admin ➔ Posibilidad de acceso anónimo como Guest
  • 25. Desde: Stores > Configuration > Services > Magento Web API Web API Security: Allow Anonymous Guest Access Habilitar el acceso como Guest 25
  • 26. Consultando /rest/V1/cmsBlock/:blockId Ejemplo de respuesta 26 Con los sample data: Consultando /rest/V1/products/?searchCriteria[pageSize]=10
  • 27. 27 La autentificación en las APIs de Magento 3 formas de identificarse 1) Por sesión: Customer / Admin User > Limitado a llamadas ajax por cuestiones de vulnerabilidad 2) Por token: llamado /rest/V1/integration/admin/token ver github: external/_authentication.php 3) OAuth: System > Extensions: Integrations - Nueva Integración
  • 28. 28 La autentificación en las APIs de Magento 3 formas de identificarse 1) Por sesión: Customer / Admin User > Limitado a llamadas ajax por cuestiones de vulnerabilidad 2) Por token: llamado /rest/V1/integration/admin/token ver github: external/_authentication.php 3) OAuth: System > Extensions: Integrations - Nueva Integración
  • 29. 29 La autentificación en las APIs de Magento 3 formas de identificarse 1) Por sesión: Customer / Admin User > Limitado a llamadas ajax por cuestiones de vulnerabilidad 2) Por token: llamado /rest/V1/integration/admin/token ver github: external/_authentication.php 3) OAuth: System > Extensions: Integrations - Nueva Integración
  • 30. 30
  • 31. 31
  • 32. 32
  • 33. 33
  • 34. http://devdocs.magento.com/guides/v2.2/get-started/order-tutorial/order-intro.html Ejemplo de flujo completo por API 34 ➔ Autentificarse como cliente: POST http://<host>/rest/default/V1/integration/customer/token token q0u66k8h42yaevtchv09uyy3y9gaj2ap
  • 35. http://devdocs.magento.com/guides/v2.2/get-started/order-tutorial/order-intro.html Ejemplo de flujo completo por API 35 ➔ Autentificarse como cliente: POST http://<host>/rest/default/V1/integration/customer/token token q0u66k8h42yaevtchv09uyy3y9gaj2ap ➔ Creación de un carrito: POST http://<host>/rest/default/V1/carts/mine quoteId 4
  • 36. http://devdocs.magento.com/guides/v2.2/get-started/order-tutorial/order-intro.html Ejemplo de flujo completo por API 36 ➔ Autentificarse como cliente: POST http://<host>/rest/default/V1/integration/customer/token token q0u66k8h42yaevtchv09uyy3y9gaj2ap ➔ Creación de un carrito: POST http://<host>/rest/default/V1/carts/mine quoteId 4 ➔ Agregar productos al carrito POST http://<host>/rest/default/V1/carts/mine/items itemId 12 ➔ Esta etapa requiere consultas a endpoints adicionales para productos bundles o configurables
  • 37. http://devdocs.magento.com/guides/v2.2/get-started/order-tutorial/order-intro.html Ejemplo de flujo completo por API 37 ➔ Autentificarse como cliente: POST http://<host>/rest/default/V1/integration/customer/token token q0u66k8h42yaevtchv09uyy3y9gaj2ap ➔ Creación de un carrito: POST http://<host>/rest/default/V1/carts/mine quoteId 4 ➔ Agregar productos al carrito POST http://<host>/rest/default/V1/carts/mine/items itemId 12 ➔ Esta etapa requiere consultas a endpoints adicionales para productos bundles o configurables ➔ Estimar costo de envío: POST /rest/default/V1/carts/mine/estimate-shipping-methods flatrate $150
  • 38. http://devdocs.magento.com/guides/v2.2/get-started/order-tutorial/order-intro.html Ejemplo de flujo completo por API 38 ➔ Autentificarse como cliente: POST http://<host>/rest/default/V1/integration/customer/token token q0u66k8h42yaevtchv09uyy3y9gaj2ap ➔ Creación de un carrito: POST http://<host>/rest/default/V1/carts/mine quoteId 4 ➔ Agregar productos al carrito POST http://<host>/rest/default/V1/carts/mine/items itemId 12 ➔ Esta etapa requiere consultas a endpoints adicionales para productos bundles o configurables ➔ Estimar costo de envío: POST /rest/default/V1/carts/mine/estimate-shipping-methods flatrate $150 ➔ Enviar información de facturación & envío: POST /rest/default/V1/carts/mine/shipping-information subtotal $1650
  • 39. http://devdocs.magento.com/guides/v2.2/get-started/order-tutorial/order-intro.html Ejemplo de flujo completo por API 39 ➔ Autentificarse como cliente: POST http://<host>/rest/default/V1/integration/customer/token token q0u66k8h42yaevtchv09uyy3y9gaj2ap ➔ Creación de un carrito: POST http://<host>/rest/default/V1/carts/mine quoteId 4 ➔ Agregar productos al carrito POST http://<host>/rest/default/V1/carts/mine/items itemId 12 ➔ Esta etapa requiere consultas a endpoints adicionales para productos bundles o configurables ➔ Estimar costo de envío: POST /rest/default/V1/carts/mine/estimate-shipping-methods flatrate $150 ➔ Enviar información de facturación & envío: POST /rest/default/V1/carts/mine/shipping-information subtotal $1650 ➔ Elegir método de pago: POST /rest/default/V1/carts/mine/payment-information orderId 4
  • 40. http://devdocs.magento.com/guides/v2.2/get-started/order-tutorial/order-intro.html Ejemplo de flujo completo por API 40 ➔ Autentificarse como cliente: POST http://<host>/rest/default/V1/integration/customer/token token q0u66k8h42yaevtchv09uyy3y9gaj2ap ➔ Creación de un carrito: POST http://<host>/rest/default/V1/carts/mine quoteId 4 ➔ Agregar productos al carrito POST http://<host>/rest/default/V1/carts/mine/items itemId 12 ➔ Esta etapa requiere consultas a endpoints adicionales para productos bundles o configurables ➔ Estimar costo de envío: POST /rest/default/V1/carts/mine/estimate-shipping-methods flatrate $150 ➔ Enviar información de facturación & envío: POST /rest/default/V1/carts/mine/shipping-information subtotal $1650 ➔ Elegir método de pago: POST /rest/default/V1/carts/mine/payment-information orderId 4 ➔ Revisar pedido (como admin) ➔ Crear factura ➔ Despachar un ítem ➔ Realizar una devolución ..etc.
  • 41. ¿Por qué? ● Mejorar un endpoint existente (ej. bestseller products) ● Agregar validaciones (ej. validar CUIL para customer) ● Extender permisos para consultar un endpoint ● Entidades propias (ej. locales / fabricante / proveedor..etc.) 41 API Magento personalizada Integración hacia APIs externas ● Los plugins Magento 2 de los medios de pago populares interactúan con sus propias APIs: TodoPago, rapipago, Decidir, mercadopago (lógica en php-sdk) ● EBay, Amazon... usan la librería Zend en magento2-ce
  • 42. → devdocs → Getting started with Magento Web APIs http://devdocs.magento.com/guides/v2.2/get-started/bk-get-started-api.html → REST API documentation http://devdocs.magento.com/guides/v2.2/rest/bk-rest.html → Lista de métodos disponibles http://devdocs.magento.com/swagger/index.html (ver https://swagger.io/) → #issue de autentificación por sesión de backend https://github.com/magento/magento2/issues/9138 → @alanstorm → Understanding Web API Architecture http://alanstorm.com/magento-2-understanding-the-web-api-architecture/ → github https://github.com/lc-mayoul/Lyracons_MeetMagento Referencias 42
  • 43. La herramienta swagger: En http://devdocs.magento.com/swagger/index.html un listado completo de todos los endpoints de las APIs nativas de Magento 43