Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Encuentra la información necesaria de las integraciones vía API con Multivende.
Multivende actúa como el centro de gestión para el catálogo de productos de un usuario, como observamos en el diagrama más abajo. (Diagrama flujo global de integraciones)
Dentro de Multivende, los usuarios pueden realizar todas las configuraciones necesarias, como la carga de productos, gestión de stock, administración de bodegas y establecimiento de listas de precios. Con esta información, Multivende publica los productos o SKUs en los diversos marketplaces y tiendas online con los que está integrado de manera nativa.
Todo el proceso entre Multivende, los marketplaces y las tiendas online está gestionado por nuestro equipo de desarrollo. Nosotros enviamos información relevante como stock, precios, productos, estado de órdenes y documentos a los marketplaces y tiendas online.
A su vez, recibimos en Multivende los datos de ventas y los cambios de estado, como actualizaciones de órdenes y detalles sobre despachos o retiros en tienda.
Además, ofrecemos la opción de descargar etiquetas de despacho y estamos integrados de manera nativa con operadores logísticos como Chilexpress, Envíame, entre otros.
Multivende sigue un enfoque API First, lo que significa que nuestra API está disponible para que los integradores conecten sus sistemas externos. Durante el proceso de implementación, gestionamos todas las interacciones entre Multivende y la integración. (Diagrama flujo global de integraciones - Aplicaciones)
La API permite actualizar stock, precios y productos, y también acceder a esta información desde Multivende. Asimismo, disponemos de Webhooks para proporcionar actualizaciones en tiempo real sobre cualquier cambio en los recursos habilitados en la aplicación.
Diagrama flujo global de integraciones
Toda integración de un sistema con Multivende se debe realizar con el método de autenticación Oauth2. Puedes automatizar diferentes funcionalidades con esta integración las cuales son:
Conexión de nuevos canales
Aplica para conectar marketplace o e-commerce que no están actualmente dentro de los canales con los que ya contamos con la integración, permitimos la conexión de nuevos canales de ventas a través de nuestra central de aplicaciones los cuales podrán realizar adicional a las funcionalidades anteriores:
Para conocer qué funcionalidades debes realizar en tu integración te invitamos a validar según tu tipo de sistemas las dimensiones a cubrir Dimensiones de integración.
El Merchant podrá seleccionar el nivel de permisos que se le asignará a cada aplicación por medio de los scopes definidos.
Por Ejemplo: Asignar a un canal de venta el acceso a una lista de precios específica.
Manejamos múltiples bodegas y listas de precios las cuales pueden mapear según los permisos otorgados a la aplicación para la sincronización del stock y precios.
Disponemos de Webhooks encargados de enviar notificaciones a la aplicación para que pueda consultar las actualizaciones de los recursos, por lo que necesitarás un desarrollo que esté escuchando nuestras notificaciones.
El siguiente paso que debes realizar es integrar una aplicación. Para saber cómo hacerlo, consulta el siguiente artículo.
Equipo Integraciones API Multivende
En este artículo te presentamos los pasos que debes seguir para integrar una aplicación.
La aplicación debe cumplir con los estándares de seguridad definidos en el siguiente artículo.
Equipo Integraciones API Multivende
Para usar la API de Multivende, gestiona tus aplicaciones desde la cuenta de desarrollador.
Para crear tu cuenta de desarrollador, debes seguir los siguientes pasos:
1. Tienes que crear una cuenta a través de https://app.multivende.com/developers/signup , donde deberás ingresar los datos solicitados en el formulario:
Dale click a "Continuar" y listo! Tu cuenta ha sido creada con éxito.
2.Si ya posees cuenta como desarrollador creada deben realizar login a través de:
https://app.multivende.com/developers/login
Equipo Integraciones API Multivende
Debes registrar la app en tu cuenta de desarrollador para integrarla vía API con otro sistema.
A continuación, te mostramos los pasos para crear la aplicación en Multivende:
1. Ingresa al menú de aplicaciones, donde se mostrarán todas tus aplicaciones creadas en Multivende y presiona el botón Crear.
2. Ingresa los datos de tu aplicación.
3. Carga el logo de tu aplicación. Recuerda que esta debe cumplir con el formato de 45x45 px.
4. ¡Listo! Tu aplicación se ha creado con éxito.
Equipo Integraciones API Multivende
Multivende Integration Services (MIS) permite a los clientes o aplicaciones de terceros interactuar con la información del usuario de forma estándar, así como diferentes aspectos de la cuenta de los usuarios.
Puedes comenzar a probar la integración usando una cuenta con {{base_url}} que apunte a la siguiente URL.
https://app.multivende.com
Recuerda que nuestra comunicación utiliza HTTPS solo con TLS>= 1.2
En el siguiente enlace, podrás consultar el detalle de nuestra API, la cual se encuentra documentada en Postman para que puedas descargar la colección y realizar pruebas a través de la herramienta..
Equipo Integraciones API Multivende
Rellena tus datos personales: Para crear una cuenta de prueba, deberás proporcionar algunos datos básicos, tales como:
Completa el reCAPTCHA.
Enviar el formulario: Haz clic en el botón "Crear Cuenta".
Con tu cuenta de prueba ya activa, podrás explorar todas las características que Multivende ofrece, como:
¿Te gustaría aprender más sobre cómo sacar el máximo provecho a tu cuenta de prueba?
Te invitamos a visualizar nuestro Workshop del Funcionamiento de la plataforma, donde te explicaremos detalladamente cómo utilizar cada funcionalidad y resolveremos todas tus dudas.
Si tienes algún problema durante el registro o necesitas asistencia adicional, puedes contactar con el equipo de soporte de Multivende a través de las opciones de ayuda en línea o contacto que se encuentran en el sitio.
Si necesitas más detalles de como contactar al equipo de Integraciones API, puedes ver más detalles en el siguiente artículo:
Equipo Integraciones API Multivende
Es un marco de autorización que permite a las aplicaciones obtener acceso limitado a cuentas de usuario en un servicio HTTP como Google, Facebook, GitHub, entre otros.
Funciona delegando la autenticación del usuario (Merchant) al servicio que aloja la cuenta (Multivende) y autorizando a las aplicaciones de terceros a acceder a los datos de la cuenta del Merchant seleccionando los permisos que desea otorgar.
1. El Merchant ingresa al sitio web de la aplicación y genera la solicitud de autorización a Multivende.
2. Aplicación redirecciona al Merchant a Multivende enviando por parámetro en la URL:
Ejemplo:
https://app.multivende.com/apps/authorize?response_type=code&client_id=00000000000&redirect_uri=asd&scope=read:checkouts
3. El Merchant selecciona los permisos (scopes) a autorizar para la aplicación. Mas detalles en el artículo Scopes.
4. Multivende genera el código de autorización y redirige al redirect_uri. Enviando:
5. Aplicación solicita el access token a Multivende por el endpoint Authenticate OAuth2 Enviando:
6. Multivende valida que el authorization code entregado no haya expirado y retornar el access token. La aplicación recibe:
{ "_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "status": "created", "OauthClientId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "MerchantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "CreatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "UpdatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "OwnerId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "scopes": { "read:products": true, "write:products": true, "read:stocks": { "all": false, "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true }, "write:stocks": { "all": false, "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true }, "read:prices": { "all": false, "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true }, "write:prices": { "all": false, "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true }, "read:checkouts": { "all": false, "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": false, "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true }, "write:checkouts": { "all": false, "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true }, "read:product_links": { "all": false, "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true }, "write:product_links": { "all": false, "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true }, "manage:checkouts": true, "manage:product_links": true }, "expiresAt": "2021-03-03T01:45:34.958Z", "refreshToken": "rt-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "refreshTokenExpiresAt": "2021-03-04T19:45:34.958Z", "updatedAt": "2021-03-02T19:45:34.000Z", "createdAt": "2021-03-02T19:45:34.000Z", "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }
Se ilustra a continuación en el diagrama del proceso de autorización:
Diagrama del proceso de autorización
Para generar un nuevo token se debe solicitar el endpoint Refresh token OAuth2 enviando:
Retorna dentro del response:
{ "_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "status": "created", "OauthClientId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "MerchantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "CreatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "UpdatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "OwnerId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "scopes": { "read:products": true, "write:products": true, "read:stocks": { "all": false, "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true }, "write:stocks": { "all": false, "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true }, "read:prices": { "all": false, "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true }, "write:prices": { "all": false, "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true }, "read:checkouts": { "all": false, "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": false, "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true }, "write:checkouts": { "all": false, "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true }, "read:product_links": { "all": false, "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true }, "write:product_links": { "all": false, "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true }, "manage:checkouts": true, "manage:product_links": true }, "expiresAt": "2021-03-03T01:45:34.958Z", "refreshToken": "rt-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "refreshTokenExpiresAt": "2021-03-04T19:45:34.958Z", "updatedAt": "2021-03-02T19:45:34.000Z", "createdAt": "2021-03-02T19:45:34.000Z", "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }
Diagrama proceso de refrescado del token:
Diagrama proceso de refrescado
Caducidad |
Usos |
|
authorization code |
24 horas |
1 sola vez |
token |
6 horas |
indefinido |
refreshToken |
48 horas |
1 sola vez |
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Cuando se produce un evento en Multivende, se envía una solicitud HTTPS POST a la URL de devolución de llamada (Callback URL) por cada una de las apps de integración que están suscritas a los webhooks. A partir de las notificaciones se puede usar para desencadenar reglas o procesos específicos de la aplicación.
De esta manera, las apps resultan más eficientes, porque identifican cuando se produce un cambio en tiempo real, y, entonces, puede hacer las solicitudes periódicas en un rango de tiempo más amplio a la API para obtener el contenido actualizado.
Los webhooks disponibles son los siguientes:
Ejemplo de notificación cambio de checkouts:
{
"CheckoutId":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"MerchantId":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"MarketplaceConnectionId":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"MerchantAppId":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"OauthClient":{
"_id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"client_id":"99631xxxxxxx"
},
"resource":"checkouts",
"attemps":1,
"received":"2021-04-08T19:55:07.061Z"
}
Más ejemplos de notificaciones (link)
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Por ejemplo:
El Merchant otorga el alcance “read: stock”. Como el stock varia según la bodega, el Merchant puede seleccionar otorgar acceso a todas sus bodegas o a una/varias bodegas específicas.
Repsonse:
{ "_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "status": "created", "OauthClientId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "MerchantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "MerchantAppId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "CreatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "UpdatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "OwnerId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "scopes": { "read:stocks": { "all": true } }, "expiresAt": "2024-10-15T19:57:26.468Z", "refreshToken": "rt-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "refreshTokenExpiresAt": "2024-10-17T13:57:26.468Z", "updatedAt": "2024-10-15T13:57:26.000Z", "createdAt": "2024-10-15T13:57:26.000Z", "token": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXX........." }
Si el merchant otorga permisos "all", deberá consultar el endpoint correspondiente según sea el caso para obtener el listado de todos los recursos.
Response:
{
"_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"status": "created",
"OauthClientId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"MerchantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"MerchantAppId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"CreatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"UpdatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"OwnerId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"scopes": {
"read:stocks": {
"all": false,
"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": false,
"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX1234": true //Bodega con acceso
},
}
"expiresAt": "2024-10-15T19:57:26.468Z",
"refreshToken": "rt-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"refreshTokenExpiresAt": "2024-10-17T13:57:26.468Z",
"updatedAt": "2024-10-15T13:57:26.000Z",
"createdAt": "2024-10-15T13:57:26.000Z",
"token": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXX........."
}
En este caso en el json del scope el valor del campo “all” es “false” por lo que la aplicación no tiene acceso a todas las bodegas. Pero tiene acceso a la bodega con id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX1234".
Response:
{ "_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "status": "created", "OauthClientId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "MerchantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "MerchantAppId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "CreatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "UpdatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "OwnerId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "scopes": { "read:stocks": { "all": false, "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": false, "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX1234": true // Bodega con acceso } }, "expiresAt": "2024-10-15T19:57:26.468Z", "refreshToken": "rt-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "refreshTokenExpiresAt": "2024-10-17T13:57:26.468Z", "updatedAt": "2024-10-15T13:57:26.000Z", "createdAt": "2024-10-15T13:57:26.000Z", "token": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXX........." }
Tipos de scope:
Los diferentes scopes que tenemos disponibles son los siguientes:
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
En caso de no contar con una interfaz gráfica para realizar la conexión de la aplicación con la cuenta del Merchant igualmente puede generar tu código de autorización, primero debes ingresar a tu cuenta de Desarrollador, dirigirte a "Aplicaciones", luego a "Listado de aplicaciones" y hacer clic en la acción del "Lápiz" (Editar).
Dentro de la configuración de la aplicación podrás visualizar la opción “Agregar cuentas de merchant”, la cual se encuentra debajo de “Visibilidad”.
Importante, esto solo se puede realizar una vez tengas tu aplicación autorizada.
Una vez dentro, debes insertar el MerchantId en el recuadro y hacer click sobre el botón guardar.
Ahora el Merchant podrá visualizar tu aplicación en el listado de aplicaciones de la vista de Merchants.
Para esto, el Merchant debe ingresar a la plataforma, dirigirse a "Aplicaciones" luego a "Listado de aplicaciones".
Aquí veremos un listado de aplicaciones certificadas de Multivende, se debe hacer scroll hasta el final de la página en donde dice "Listado de aplicaciones propias no certificadas", debes hacer clic en "Ver más" en la aplicación a la cual se desea generar el authorization code, donde el Mrechant podrá otorgar los permisos según lo requiera.
Seguido a esto se debe seleccionar la opción "Generar authorization code", aquí el Merchant podrá brindarle permiso (Scopes) a los datos seleccionados y establecer un nombre para la conexión con la aplicación.
Válida que la información esté correcta y listo, el código de autorización será generado y podrás continuar con el proceso de autenticación mediante Oauth2
Podrás ver el proceso en el siguiente video:
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Para generar un nuevo código de autorización de una aplicación ya conectada a la cual se le expiró el refreshToken o algún problema similar; lo puedes realizar sin generar una nueva conexión de la aplicación en Multivende. Para ello debes seguir los siguientes pasos.
Primero, el Merchant debe ingresar a la plataforma de Multivende, seguido a esto hará clic a la opción "Aplicaciones" la cual desplegará "Listado de aplicaciones".
Aquí el Merchant podrá ver todas las aplicaciones que tenga conectadas en su cuenta.
Puedes ver los detalles en el siguiente vídeo:
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
El proceso de autenticación mediante OAuth2 es un paso crucial para garantizar que las aplicaciones de terceros puedan interactuar de manera segura con una API, garantizando que solo los usuarios autorizados puedan acceder a ciertos recursos. Sin embargo, en este proceso, pueden surgir varios errores que impiden obtener o renovar el token de acceso. A continuación, te explicamos los pasos involucrados en este proceso, los posibles errores que podrías enfrentar y cómo solucionarlos.
Cuando un merchant entrega el código de autorización, se inicia el proceso de autenticación mediante OAuth2. El primer paso consiste en enviar los parámetros necesarios al Endpoint Authenticate OAuth2 utilizando una solicitud HTTP POST.
Ejemplo de solicitud:
En este punto, la API responderá con un objeto que contiene el token
, refreshToken
y la duración de su validez.
Respuesta exitosa:
El token
tiene una validez de 6 horas, mientras que el refreshToken
tiene una validez de 48 horas y puede ser utilizado una única vez para renovar el acceso.
Cuando el token
está cerca de expirar, se debe utilizar el Endpoint Refresh Token OAuth2 para obtener un nuevo token
y un nuevo refreshToken
. Esto debe realizarse antes de que el token original caduque, idealmente cuando queda aproximadamente 1 hora de vida.
Ejemplo de solicitud para renovar el token:
Respuesta exitosa:
Este proceso puede ser automatizado para que, cuando el token
esté cerca de su expiración (por ejemplo, con 5 horas de antelación), se realice la renovación automática utilizando el refreshToken. De este modo, se garantiza la continuidad en el flujo de autenticación sin interrupciones.
Token Expirado o Invalidado: Si el token
ha expirado y no se ha renovado a tiempo, el proceso debe reiniciarse desde el principio. Esto implica que el merchant deberá generar un nuevo código de autorización manualmente desde la configuración de la aplicación.
Refresh Token Expirado o No Utilizado: Si el refreshToken
ha expirado o no ha sido utilizado dentro de su período de validez, el proceso también debe reiniciarse desde cero, lo que requerirá que el merchant obtenga un nuevo código de autorización manualmente.
Error en la Solicitud de Renovación: Si hay errores en la solicitud de renovación del token
(por ejemplo, errores de red, parámetros incorrectos, etc.), asegúrate de validar los datos enviados, como el client_id
, client_secret
y el refresh_token
.
Error en la Respuesta del Servidor: Si la API devuelve un error, revisa el código de estado HTTP y el mensaje de error para identificar la causa. Algunos errores comunes incluyen falta de permisos o problemas de autenticación.
Para gestionar adecuadamente la autenticación OAuth2, es importante realizar lo siguiente:
Obtener y gestionar el token
y el refreshToken
de manera eficiente.
Automatizar la renovación del token
antes de su expiración.
Asegurarse de que el refreshToken
se use dentro de su período de validez.
Si el refreshToken
expira o no es válido, reiniciar el proceso de autenticación obteniendo un nuevo código de autorización manualmente.
Este proceso garantiza que las interacciones con la API sean seguras y fluidas, manteniendo el acceso autorizado de manera continua y sin interrupciones.
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Conoce el proceso para interactuar de forma correcta con la API de Multivende y aprovechar las herramientas disponibles para ERP's
Para realizar tu interacción de forma correcta con la plataforma y permitir que tu integración ERP pueda sacar el máximo provecho de las herramientas que brindamos, es necesario iniciar aprendiendo información básica sobre nuestra API, para eso te pedimos leer 5 artículos básicos sobre la integración:
Detallamos cuáles son los pasos para que tu aplicación pueda conectarse a la cuenta del merchant y poder empezar a consultar sus datos.
Conocerás más sobre nuestra API y su documentación en Postman.
Encontrarás la información para realizar la sincronización de stock a Multivende. Para hacerlo, debes hacer uso de los endpoints de la sección “stock”, te recomendamos dejar un cron que sincronice los stocks por lo menos una vez al día. Además de una opción para que el usuario pueda ejecutar el proceso manualmente.
Podrás obtener la información para realizar la sincronización de precios a Multivende. Para hacerlo, debes hacer uso de los endpoints de la sección “prices”.
Con información básica (SKUs, Nombre, Variantes)(Recomendado): Te dejamos los endpoint disponibles:
Get products with scroll: Enumera los productos asociados al Merchant.
Get product by id: Muestra los detalles de un producto por la ID.
Conocerás cómo obtener las ventas e iniciar el proceso de logística. Este es un flujo complementario a los webhooks para repasar las ventas en un rango de fechas y horas dadas, se recomienda:
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Conoce el proceso para interactuar de forma correcta con la API de Multivende y aprovechar las herramientas disponibles para tu integración OMS.
Para realizar tu interacción de forma correcta con la plataforma y permitir que tu integración OMS pueda sacar el máximo provecho de las herramientas que brindamos, es necesario iniciar aprendiendo información básica sobre nuestra API, para eso te pedimos leer 8 artículos básicos sobre la integración:
Detallamos cuáles son los pasos para que tu aplicación pueda conectarse a la cuenta del merchant y poder empezar a consultar sus datos.
Conocerás más sobre nuestra API y su documentación en Postman.
Conocerás cómo obtener las ventas e iniciar el proceso de logística. Este es un flujo complementario a los webhooks para repasar las ventas en un rango de fechas y horas dadas, se recomienda:
Encontrarás la información para poder notificar al canal el estado de manejo de una orden.
Conocerás cómo obtener las etiquetas de las ventas que son despachadas por el marketplace.
Encontrarás la información para realizar la sincronización de stock a Multivende. Para hacerlo, debes hacer uso de los endpoints de la sección “stock”, te recomendamos dejar un cron que sincronice los stocks por lo menos una vez al día. Además de una opción para que el usuario pueda ejecutar el proceso manualmente.
Podrás obtener la información para realizar la sincronización de precios a Multivende. Para hacerlo, debes hacer uso de los endpoints de la sección “prices”.
Detallamos cómo realizar la carga de los documentos electrónicos a las ventas.
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Para realizar tu interacción de forma correcta con la plataforma y permitir que tu integración POS pueda sacar el máximo provecho de las herramientas que brindamos, es necesario iniciar aprendiendo información básica sobre nuestra API, para eso te pedimos leer 8 artículos básicos sobre la integración:
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Para realizar tu interacción de forma correcta con la plataforma y permitir que tu integración PIM pueda sacar el máximo provecho de las herramientas que brindamos, es necesario iniciar aprendiendo información básica sobre nuestra API, para eso te pedimos leer 5 artículos básicos sobre la integración:
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Para realizar tu interacción de forma correcta con la plataforma y permitir que tu integración DTE pueda sacar el máximo provecho de las herramientas que brindamos, es necesario iniciar aprendiendo información básica sobre nuestra API, para eso te pedimos leer 5 artículos básicos sobre la integración:
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Para realizar tu interacción de forma correcta con la plataforma y permitir que tu integración pueda sacar el máximo provecho de las herramientas que brindamos, es necesario iniciar aprendiendo información básica sobre nuestra API, para eso te pedimos leer 6 artículos básicos sobre la integración:
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Para registrar las ventas desde Multivende hacia un sistema tenemos a disposición dos herramientas:
Se debe consultar las ventas de un rango de fechas cada M (Frecuencia de ejecución) horas, estableciendo lo siguiente:
Deberas usar el endpoint Get checkouts light para realizar el sondeo de las órdenes desde Multivende.
Importante: Ésta opción no es recomendada para sistemas del punto 1, ya que puede haber desfase de fechas y horas en las que el marketplace y Multivende registraron la venta, debido a validaciones en los pagos u algo similar. |
Se pueden consultar las ventas cada M = 1 hora, por ejemplo, pasando en los parámetros a continuación:
_updated_at_from: from.
_updated_at_to: to.
Estos parámetros tienen el formato y la zona horaria en UTC, es decir: "YYYY-mm-dd hh:mm:ss".
Ejemplo:
Si la fecha actual es “2020-03-18 20:30”, el request sería de la siguiente manera:
curl --location --request GET
'http://app.multivende.com/api/m/b4bbbbbb-fff2-45b1-99989-0afc7xx32xxx/checkouts/light/p/1?_updated_at_from=2020-03-18 18: 30 & _updated_at_to = 2020-03-18 20:30 '\
--header' Autorización: Baerer eyJ0eXAiOiJKV1QiLCJhbGcixxxxxxxxxxxJ9.e ………… .. '
En donde este sería el Response:
{
"entries": [
{
"_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"status": "created",
"verifyStatus": "verificado",
"paymentStatus": "completado",
"soldAt" : "2019-10-10T16: 12: 59.000Z",
"createdAt": "2019-10-10T16: 13: 01.000Z",
"updatedAt": "2019-10-31T22: 01: 09.000Z",
"BillingAddressId ": null,
" DeliveryTypeId ": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
" MerchantId ": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
},
],
" paginación ": {
"desplazamiento": 0,
"limit": 50,
"total_pages": 1,
"current_page": 1,
"next_page": 0,
"previous_page": 0,
"total_items": 11
}
}
Recomendamos registrar en su sistema los campos updatedAt (Fecha de última actualización en Multivende), soldAt (Fecha de la venta en el canal), y "_id" (identificador de la venta en Multivende), ya que con estos campos se puede comparar en sus registros y validar si es una nueva venta o se debe actualizar.
Una vez se tenga el "_id" de la venta (response anterior), se consulta su detalle con el endpoint Get Checkout.
Cuando el response tiene el campo:
Importante:
Los campos DeliveryOrdersInCheckouts y PickUpOrders son arrays dado que una venta puede tener más de un despacho o retiro en tienda asociado.
Ejemplos:
1. El campo country puede tener el valor CL o Chile.
2. El campo indication puede llegar el detalle de la calle y casa y en otra venta llegar separado en el campo calle y número.
Podemos consultar el detalle de la orden para tomar la data relevante para la operación logística mediante el endpoint delivery order.
Podemos consultar el detalle de la orden para tomar la data relevante para la operación logística mediante el endpoint pickup order.
Se consultan ambos endpoints de acuerdo al tipo de entrega de cada producto.
Es posible consultar los ids de las ventas que no se registraron en Multivende por motivos de error durante el registro, esto puede funcionar como una auditoría. Para realizar la consulta de estos ids pueden realizar un request al endpoint Get checkouts with error
La respuesta de la api dará una descripción del error que causó el no registro correspondiente de la orden. Recordar que cuando la orden es corregida, se lleva a cabo el registro de la misma con un id diferente.
{
"entries": [
{
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"externalId": "XXXXXXX",
"externalContent": null,
"error": "StatusCodeError: 404 - {\"cause\":\"\",\"message\":\"Order do not exists\",
\"error\":\"order_not_found\",\"status\":404}\n at new StatusCodeError
(/app/node_modules/request-promise/lib/errors.js:32:15)\n at Request.RP$callback
[as _callback] (/app/node_modules/request-promise/lib/rp.js:77:29)\n at
Request.self.callback (/app/node_modules/request/request.js:185:22)\n
at Request.emit (node:events:513:28)\n at Request.emit (node:domain:489:12)\n
at Request.<anonymous> (/app/node_modules/request/request.js:1154:10)\n
at Request.emit (node:events:513:28)\n at Request.emit (node:domain:489:12)\n
at IncomingMessage.<anonymous> (/app/node_modules/request/request.js:1076:12)\n
at Object.onceWrapper (node:events:627:28)\n at IncomingMessage.emit
(node:events:525:35)\n at IncomingMessage.emit (node:domain:489:12)\n at
endReadableNT (node:internal/streams/readable:1358:12)\n at
processTicksAndRejections (node:internal/process/task_queues:83:21)",
"archived": "disabled",
"count": 0,
"status": null,
"eventStatus": "error",
"type": null,
"createdAt": "2021-05-22T04:29:46.000Z",
"updatedAt": "2021-05-22T04:29:46.000Z",
"MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"MarketplaceConnectionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"CreatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"UpdatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
},
{
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"externalId": "XXXXXXX",
"externalContent": null,
"error": "StatusCodeError: 404 - {\"cause\":\"\",\"message\":\"Order do not exists\",
\"error\":\"order_not_found\",\"status\":404}\n at new StatusCodeError
(/app/node_modules/request-promise/lib/errors.js:32:15)\n at Request.RP$callback
[as _callback] (/app/node_modules/request-promise/lib/rp.js:77:29)\n at
Request.self.callback (/app/node_modules/request/request.js:185:22)\n
at Request.emit (node:events:513:28)\n at Request.emit (node:domain:489:12)\n
at Request.<anonymous> (/app/node_modules/request/request.js:1154:10)\n
at Request.emit (node:events:513:28)\n at Request.emit (node:domain:489:12)\n
at IncomingMessage.<anonymous> (/app/node_modules/request/request.js:1076:12)\n
at Object.onceWrapper (node:events:627:28)\n at IncomingMessage.emit
(node:events:525:35)\n at IncomingMessage.emit (node:domain:489:12)\n at
endReadableNT (node:internal/streams/readable:1358:12)\n at
processTicksAndRejections (node:internal/process/task_queues:83:21)",
"archived": "disabled",
"count": 0,
"status": null,
"eventStatus": "error",
"type": null,
"createdAt": "2021-05-22T04:11:37.000Z",
"updatedAt": "2021-05-22T04:11:37.000Z",
"MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"MarketplaceConnectionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"CreatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"UpdatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
}
Si se consultan los id's asociados a las ventas con error en la api de Get checkout esta dará un 404 debido a que las ventas con error no quedan guardadas en Multivende.
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Lo primero que debes realizar es consultar la orden enviando el ID mediante el Endpoint Get Checkout, los detalles para la información de facturación puedes obtenerla dentro de nuestros campos normalizados en Multivende, consultando dentro de "Client" donde podrás obtener todos los datos relacionados al cliente y dentro del campo "BillingAddresses" los detalles en relación a la dirección de facturación.
"Client": {
"fullName": "",
"_id": "a8e48e5c-XXXX-4dab-9ec3-XXXXXXXXXXXX",
"name": "",
"lastName": "",
"activity": null,
"contactName": null,
"comune": null,
"city": null,
"documentType": null,
"taxId": "XXXXXXXX-X",
"birthday": null,
"code": null,
"email": null,
"phoneNumber": null,
"comment": null,
"type": "person",
"tags": null,
"status": "created",
"createdAt": "2020-11-04T19:32:04.000Z",
"updatedAt": "2020-11-04T19:32:04.000Z",
"CreatedById": "af718539-XXXX-4413-8c83-XXXXXXXXXXXX",
"UpdatedById": "68a88914-XXXX-414e-9d3c-XXXXXXXXXXXX",
"ClientId": "a8e48e5c-XXXX-4dab-9ec3-XXXXXXXXXXXX",
"MerchantId": "be133293-XXXX-4f01-822a-XXXXXXXXXXXX"
"BillingAddresses": [
{
"_id": "30feddc9-XXXX-4951-816b-XXXXXXXXXXXX",
"name": "Full Name",
"address_1": "Coquimbo - IV - Coquimbo, Chile",
"address_2": "General Bartolome Blanche XXX",
"description": null,
"indications": null,
"position": 0,
"status": "created",
"importance": "principal",
"createdAt": "2023-03-10T13:02:10.000Z",
"updatedAt": "2023-03-10T13:02:10.000Z",
"CreatedById": "af718539-XXXX-4413-8c83-XXXXXXXXXXXX",
"UpdatedById": "68a88914-XXXX-414e-9d3c-XXXXXXXXXXXX",
"ClientId": "a8e48e5c-XXXX-4dab-9ec3-XXXXXXXXXXXX",
"MerchantId": "be133293-XXXX-4f01-822a-XXXXXXXXXXXX"
}
]
}
"CheckoutBillingClients": [
{
"_id": "9f1839df-XXXX-4a05-XXXX-2e4024XXXXXX",
"name": "Multivende",
"taxName": null,
"taxActivity": null,
"taxId": "XXXXXXXXX",
"documentType": "RUT",
"legalRepresentative": null,
"legalRepresentativeTaxId": null,
"email": null,
"phoneNumber": null,
"type": "company",
"status": "created",
"createdAt": "2024-01-12T12:41:08.000Z",
"updatedAt": "2024-01-12T12:41:08.000Z",
"BillingAddressId": "02e22a7b-7850-4204-8728-78a888ae09c7",
"CheckoutId": "0d85a156-9c81-XXXX-XXXX-7908e8XXXXXX",
"CreatedById": null,
"UpdatedById": null,
"MerchantId": "4df759c7-XXXX-4cad-XXXX-a5e954XXXXXX"
}
],
Esta se informa dentro del campo "InvoiceRequired"
"InvoiceRequired": "false" (Boleta)
"InvoiceRequired": "true" (Factura)
Se informa dentro de "remote_order_extra_billing_information --> "billing_info" --> "additional_info"
Si la orden de compra en una boleta llegará de la siguiente manera:
{
"type": "INVOICE_TYPE",
"value": "Boleta"
},
Y en caso de ser factura:
{
"type": "INVOICE_TYPE",
"value": "Factura"
},
Se informa dentro del campo "originInvoiceType".
"originInvoiceType": "boleta"
"originInvoiceType": "factura"
Se informa dentro del campo "has_invoice"
"has_invoice": false (Boleta)
"has_invoice": true (Factura)
Se informa dentro de los campos "CheckoutLink" --> "tags"
"tags":[
"CS_AIOD",
"CS_APPLIED_SHOPIFY_DISCOUNT",
"EXTRACYBER",
"FACTURA",
"Packed at 16:14 on marzo 29 2023",
"Packed at 16:15 on marzo 29 2023",
"PLAZA"
],
Se informa dentro del campo "clientProfileData" --> "isCorporate"
"isCorporate": true (Factura)
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Primero se tiene que crear un registro en Multivende del DTE usando el siguiente endpoint Create checkout electronic billing document, dentro del body estarás enviando la siguiente información:
Request:
curl --location -g '{{base_url}}/api/checkouts/{{checkout_id}}/electronic-billing-documents' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{access_token}}' \
--data '{
"ClientId": "{{client_id}}",
"id": "XXXXXXX",
"emissionDate":"2019-03-01",
"type":"electronic_billing_electronic_bill",
"provider":"test_provider_code",
"ElectronicBillingDocumentEmitterId":"{{electronic_billing_document_emitter_id}}"
}'
Response:
{
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"status": "created",
"ClientId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"id": "8877777",
"emissionDate": "2019-03-01T00:00:00.000Z",
"ElectronicBillingDocumentEmitterId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"CreatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"UpdatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"ElectronicBillingDocumentTypeId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"ElectronicBillingDocumentProviderId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"CheckoutId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"updatedAt": "2019-08-29T15:26:33.000Z",
"createdAt": "2019-08-29T15:26:33.000Z"
}
Una vez se cree el registro del DTE, con el "_Id" del response, se adjuntan los archivos, tenemos dos endpoints que permiten realizar la carga de archivos en pdf o base64:
La carga de los DTE desde Multivende a los canales de venta se tiene habilitado para:
A continuación te detallamos algunas consideraciones a tener en cuenta en la carga de los documentos tributarios para los siguientes canales de ventas:
De lo contrario el documento quedará con error de sincronización.
Primero se tiene que crear el registro en Multivende del DTE usando el siguiente endpoint Create delivery order electronic billing document
Para lo que se requiere conocer:
curl --location -g '{{base_url}}/api/delivery-orders/{{delivery_order_id}}/electronic-billing-documents' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{access_token}}' \
--data '{
"ClientId": "{{client_id}}",
"id": "XXXXXXX",
"emissionDate":"2019-03-01",
"type":"electronic_billing_electronic_bill",
"provider":"test_provider_code",
"ElectronicBillingDocumentEmitterId":"{{electronic_billing_document_emitter_id}}"
}'
Response:
{
"_id": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "created",
"ClientId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"id": "8877777",
"emissionDate": "2019-03-01T00:00:00.000Z",
"ElectronicBillingDocumentEmitterId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"CreatedById": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"UpdatedById": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"MerchantId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ElectronicBillingDocumentTypeId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ElectronicBillingDocumentProviderId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"DeliveryOrderId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"updatedAt": "2019-08-29T15:27:24.000Z",
"createdAt": "2019-08-29T15:27:24.000Z"
}
Una vez se cree el registro del DTE, con el _id del response, se adjunta como tal los archivos (.pdf, .zip, entre otros) por medio del endpoint Upload file to electronic billing document.
Esta información se tiene que canalizar vía correo api@multivende.com solicitando un código de proveedor según el proveedor (generador de boletas) que estén usando. Enviando la siguiente información:
Multivende genera el código y lo informa de vuelta en el correo de la solitud.
Puedes seguir los pasos del siguiente artículo ¿Cómo crear un emisor de documentos?. En caso de cualquier duda comunicarse con onboarding@multivende.com , ellos lo asistirán en la generación de este identificador.
Si deseas realizar este proceso via API, puedes crear el emisor de documentos mediante el endpoint Create electronic billing document emitter enviando los siguientes campos:
{
"name": "nombre asociado al emisor de documentos",
"code":"código",
"taxId":"RUT/NIT",
"taxName":"razón social"
}
*Rellena el campo código con 01111
En la respuesta del endpoint puedes identificar el _id asociado al emisor del documento electrónico, este proceso se realiza sólo una vez y el emisor de documento electrónico queda asociado a la cuenta del merchant.
Response:
{
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"status": "created",
"name": "Test emitter",
"code": "01010",
"taxId": "76449667-3",
"taxName": "Test emitter SPA",
"MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"updatedAt": "2019-08-28T19:58:12.000Z",
"createdAt": "2019-08-28T19:58:12.000Z"
}
Puedes consultar el _id del emisor de documento asociado a la cuenta de un merchant mediante el endpoint: Get electronic billing document emitters
Para consultar los documentos electrónicos de una orden puedes consultar al siguiente endpoint Get electronic billing documents of a checkout
Si se trata de una orden de tipo Fulfillment, recuerda que para verificar el tipo de envío debes consultar el campo "shippingMode".
shippingMode: fulfillment
El seller debe solicitar la configuración de Fulfillment a Paris, y el canal se encarga de emitir la boleta.
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
En este artículo mostramos como obtener la información del pago realizado por el comprador en la venta.
Esta información la obtenemos mediante los siguiente Endpoint que tenemos disponible dentro de nuestro Servicios de Integración de Multivende.
Ejemplo Response:
"CheckoutPayments": [
{
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"code": "xxxxxxxxxxx",
"amount": 59600,
"amountPaid": 59600,
"change": 0,
"paymentStatus": "completed",
"authorizationCode": null,
"detail": null,
"status": "created",
"verificationStatus": "verified",
"cardNumber": null,
"installments": 1,
"datePaid": null,
"dateVerificated": null,
"createdAt": "2021-05-10T18:31:28.000Z",
"updatedAt": "2021-05-10T18:51:23.000Z",
"CreatedById": null,
"UpdatedById": null,
"CheckoutId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"PaymentMethodId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"CurrencyId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"PaymentMethod": {
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"tags": "{\n \"requiresTransaction\": false\n }",
"code": "_payment_methods_online_payment",
"name": "PAYMENT_METHODS.Online_payment.Name",
"description": "PAYMENT_METHODS.Online_payment.Description",
"position": 12,
"status": "created",
"createdAt": null,
"updatedAt": null,
"codeTranslated": "Pago en línea"
},
"CheckoutPaymentLinks": [
{
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"externalId": "xxxxxxxxxxx",
"transactionId": "xxxxxxxxxxx",
"externalContent": "",
"synchronizationStatus": "synchronized",
"status": "created",
"createdAt": "2021-05-10T18:31:28.000Z",
"updatedAt": "2021-05-10T18:31:28.000Z",
"CreatedById": null,
"UpdatedById": null,
"MarketplaceConnectionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"CheckoutPaymentId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
}
]
}
]
Ejemplo Response
[
{
"_id": "a4135228-a10c-11e6-bfdf-2c56dc130c0d",
"tags": "{\n \"requiresTransaction\": false\n}",
"code": "_payment_methods_cash",
"name": "PAYMENT_METHODS.Cash.Name",
"description": "PAYMENT_METHODS.Cash.Description",
"position": 0,
"status": "created",
"createdAt": null,
"updatedAt": null
},
{
"_id": "0f5b5e2f-a10d-11e6-bfdf-2c56dc130c0d",
"tags": "{\n \"requiresTransaction\": true\n}",
"code": "_payment_methods_credit_card",
"name": "PAYMENT_METHODS.Credit_card.Name",
"description": "PAYMENT_METHODS.Credit_card.Description",
"position": 1,
"status": "created",
"createdAt": null,
"updatedAt": null
},
{
"_id": "a41369d7-a10c-11e6-bfdf-2c56dc130c0d",
"tags": "{\n \"requiresTransaction\": true\n}",
"code": "_payment_methods_debit_card",
"name": "PAYMENT_METHODS.Debit_card.Name",
"description": "PAYMENT_METHODS.Debit_card.Description",
"position": 2,
"status": "created",
"createdAt": null,
"updatedAt": null
},
]
Los valores permitidos para enviar dentro del campo “verificationStatus” es "verified" o "pending"
Nota: esta funcionalidad sólo es permitida para las integraciones que son de tipo Canal de venta, las cuales pueden notificar los estados de los pagos hacia Multivende.
Ejemplo Request:
curl --location -g --request PUT '{{base_url}}/api/checkout-payments/{{checkout_payment_id}}' \
--header 'Authorization: Bearer {{access_token}}' \
--data '{
"verificationStatus": "pending",
"authorizationCode": 12345,
"detail": "detail",
"cardNumber": 1234567,
"installments": 12
}'
Ejemplo Response
{
"_id": "d14833f3-f8c0-4287-a7ba-ee375fabfc2b",
"code": "14514653588",
"amount": 4990,
"amountPaid": 4990,
"change": 0,
"paymentStatus": "completed",
"authorizationCode": 12345,
"detail": "detail",
"status": "created",
"verificationStatus": "pending",
"cardNumber": 1234567,
"installments": 12,
"datePaid": null,
"dateVerificated": null,
"createdAt": "2021-04-19T16:44:58.000Z",
"updatedAt": "2021-11-10T19:23:07.000Z",
"CreatedById": null,
"UpdatedById": "644e493e-b3fa-4639-946e-7b47b90ad6f6",
"CheckoutId": "60a813c9-a16f-4215-949f-d64fda865f24",
"PaymentMethodId": "7a2f09c3-f7a2-11e7-96a2-2c56dc130c0d",
"PaymentGatewayId": null,
"CurrencyId": "5e402b2b-bb2e-46fd-9bda-8dd9f62d3a31",
"MerchantId": "156bd2c4-13b9-46c0-9e91-349ec8cfeab8"
}
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Luego de completar la configuración de la relación entre las plataformas y publicado los productos, se podrán registrar nuevas órdenes vía API si cuenta con los permisos necesarios para administrar las ventas de la conexión realizada.
Para poder registrar una venta se deben cumplir las siguientes condiciones:
A continuación, se detalla los campos que deben enviar a través del endpoint Created checkout
Detalles de los campos a enviar para crear una venta:
A continuación, te detallamos los valores válidos para los campos
Desde la integración de tu marketplace, puedes realizar la actualización de los estados asociados a una venta, los cuales son los siguientes:
Actualización del estado del despacho
Actualización del estado del pago
Actualización del estado de verificación de la orden
Para actualizar a la venta los estados anteriores, se debe mediante el endpoint PUT
Update checkout status enviando en la solicitud el id de la venta y en el body el o los estados a actualizar:
{
"deliveryStatus": "cancelled",
"paymentStatus": "cancelled",
"verificationStatus": "verified"
}
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Grupos de atributos personalizados para las ventas: A través de la API de Multivende puedes crear, editar o consultar estos grupos de atributos personalizados.
Atributos personalizados para las ventas: los atributos se crean dentro un grupo. A través de la API de Multivende puedes crear, editar o consultar estos atributos personalizados.
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Para comenzar, te dejamos los Endpoints disponibles para una correcta creación de un producto desde nuestra API.
A través de nuestra API podemos realizar la creación de un producto para ello disponemos del Endpoint Create product *, esto nos permite crear un producto a un Merchant.
Te dejamos un ejemplo para la creación de un producto enviando información básica dentro del cuerpo del mensaje, cabe destacar que debes ponerle un Nombre y configurar el SKU padre e hijo.
{
"name": "Nombre del producto",
"code": "SKU Padre",
"InventoryTypeId": "791a6654-c5f2-11e6-aad6-2c56dc130c0d",
"InternalCodeTypeId": null,
"ProductVersions": [
{
"status": "waiting-for-creation", (Status enviado por defecto)
"code": "SKU Hijo",
"isDefaultVersion": true,
"InventoryTypeId": "791a6654-c5f2-11e6-aad6-2c56dc130c0d",
"InternalCodeTypeId": null,
"position": 0
}
]
}
Tener en consideración utilizar siempre el campo “InventoryTypeId” seteado de la siguiente manera = "791a6654-c5f2-11e6-aad6-2c56dc130c0d".
Una vez enviado el endpoint la API no retornará 201, indicando la creación de nuestro producto de forma exitosa, un ejemplo del response es el siguiente:
{
"_id": "XXX33b34-XXXX-XXXX-85e2-5b55a0aXXXXXX",
"status": "created",
"name": "Nombre del producto",
"InternalCodeTypeId": null,
"code": "SKU Padre",
"CreatedById": "d561f14f-0800-4091-8d3f-XXXXXXXXXXXX",
"UpdatedById": "d561f14f-0800-4091-8d3f-XXXXXXXXXXX",
"MerchantId": "bf03e4e6-53a0-4082-9476-XXXXXXXXXXX",
"updatedAt": "2023-00-00T00:00:00.000Z", (Fecha y hora en formato UTC)
"createdAt": "2023-00-00T00:00:00.000Z",
"ProductTypeId": "0f381d1c-3408-11e7-8e63-XXXXXXXXXXXX",
"ProductVersions": [
{
"_id": "d775b3d8-a19a-4069-8cdd-XXXXXXXXXXXX",
"code": "SKU Hijo",
"internalCode": null,
"providerCode": null,
"position": 0,
"width": 0,
"length": 0,
"height": 0,
"weight": 0,
"status": "created",
"createdAt": "2023-00-00T00:00:00.000Z",
"updatedAt": "2023-00-00T00:00:00.000Z",
"CodeTypeId": null,
"InternalCodeTypeId": null,
"ColorId": "4ecf5004-f721-46bf-a38a-75807491a4cb",
"SizeId": "226a61dc-1eef-41cf-af5e-cc6aea7c75b4",
"CreatedById": "d561f14f-0800-4091-8d3f-XXXXXXXXXXXX",
"UpdatedById": "d561f14f-0800-4091-8d3f-XXXXXXXXXXXX",
"InventoryTypeId": "791a6654-c5f2-11e6-aad6-XXXXXXXXXXXX",
"ProductId": "30433b34-294f-40a6-85e2-XXXXXXXXXXXX",
"MerchantId": "bf03e4e6-53a0-4082-9476-XXXXXXXXXXXX"
}
]
}
Tener en consideración la lectura de los siguientes artículos, dado que una vez creado este producto puedes realizar la carga del Stock y el Precio.
Del mismo modo utilizando el Endpoint Create product * podemos crear un producto pero enviando información completa de este, ya sea color, talla, marca, etc.
Antes de comenzar a crear un producto al detalle lo primero que debes realizar es lo siguiente:
1.- Mapeo de los atributos de los productos como:
Para obtener un array con todos los atributos de los productos de Multivende para un Merchant usar en endpoint Get product attributes.
2.- Imágenes:
Las imágenes están clasificadas por álbum para obtener el listado de los álbumes usar el endpoint Get products picture set. (El Merchant deberá poder mapear los álbumes de la aplicación con los álbumes de Multivende).
Si el campo "ProductPictureSetId" es "null", es el álbum predeterminado.
Puedes encontrar más detalles en el artículo dedicado a la Gestión de imágenes.
*El Merchant deberá poder seleccionar cuales son los productos que cargará desde la aplicación a Multivende.
Puedes encontrar el detalle de los Endpoint en la propia documentación de la API, no obstante te dejamos los que podrían ser los más relevantes:
Get shipping classes: Podrás obtener las clases de envío asociadas al Merchant.
Get shipping classes by Id: Te permite buscar una clase envío especifica enviando el "_id" dentro del request.
Get Product Categories: Podrás obtener las categorías de los productos asociadas al Merchant.
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Para comenzar, te dejamos los Endpoints disponibles para una correcta actualización de un producto desde nuestra API.
A través de nuestra API podemos realizar la actualización de un producto para ello disponemos del Endpoint Update Product.
Dentro del "Body" podrás enviar los parámetros que deseas modificar, como por ejemplo "name", "alias" o un "CustomAttributeValues".
Te dejamos un ejemplo para la actualización de un producto enviando información básica dentro del cuerpo del mensaje.
{
"name":"TEST Guantes Nike Extreme Lightweight Fitness Para Hombre",
"alias":"",
"BrandId":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"model":"",
"SeasonId":null,
"description":null,
"ProductVersions":[
{
"_id":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"code":"NLGC4937_L",
"SizeId":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"ColorId":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"status":"created",
"internalCode":"",
"CodeTypeId":null,
"InternalCodeTypeId":null,
"position":0,
"width":0,
"length":0,
"height":0,
"weight":0,
"Size":{
"_id":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"name":"L"
},
"CodeType":{
"_id":null,
"name":null,
"code":null,
"description":null,
"position":null,
"tags":null,
"status":null,
"createdAt":null,
"updatedAt":null
},
"InternalCodeType":{
"_id":null,
"name":null,
"code":null,
"description":null,
"position":null,
"tags":null,
"status":null,
"createdAt":null,
"updatedAt":null
},
"Color":{
"_id":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"name":"Negro"
},
"InventoryType":{
"_id":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"name":"INVENTORY_TYPES.Normal.Name",
"code":"_normal_inventory_type",
"description":"INVENTORY_TYPES.Normal.Description",
"position":0,
"tags":"NULL",
"status":"created",
"createdAt":null,
"updatedAt":null
},
"ProductVersionPictures":[
null
],
"CustomAttributeValues":{
"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX":"L"
},
"allImages":[
],
"InventoryTypeId":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
],
"ProductCategoryId":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"code":"NLGC4937",
"internalCode":"",
"CodeTypeId":null,
"shortDescription":"",
"htmlDescription":"",
"htmlShortDescription":"",
"tags":[
],
"WarrantyId":null,
"ShippingClassId":null,
"CustomAttributeValues":{
"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX":"negro",
"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX":"xNLGC4937",
"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
},
"OfficialStoreId":null,
"InventoryTypeId":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"InternalCodeTypeId":null
}
Importante:
"InventoryTypeId": "791a6654-c5f2-11e6-aad6-2c56dc130c0d"
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
En este artículo te mostramos cómo consultar el stock de tus productos mediante la API de Multivende.
La consulta de stock se realiza a productos asociados a una bodega en Multivende. Para consultar las bodegas que se encuentran creadas en una cuenta de merchant, lo puedes hacer mediante el endpoint: Get stores and warehouses.
Request:
curl --location -g '{{base_url}}/api/m/{{merchant_id}}/stores-and-warehouses/p/{{page}}' \
--header 'Authorization: Bearer {{access_token}}'
Response:
{
"entries": [
{
"_id": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Mi Tienda (Personaliza el nombre)",
"code": null,
"address": null,
"description": null,
"type": "store",
"phoneAreaCode": null,
"phoneNumber": null,
"latitude": 0,
"longitude": 0,
"openHours": null,
"tags": null,
"position": 0,
"status": "created",
"createdAt": "2018-05-24T00:19:31.000Z",
"updatedAt": "2018-05-24T00:19:31.000Z",
"CreatedById": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"UpdatedById": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"LocationId": null,
"TimezoneId": null,
"MerchantId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"SalesGroupId": null
},
{
"_id": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Bodega (Personaliza el nombre)",
"code": null,
"address": null,
"description": null,
"type": "warehouse",
"phoneAreaCode": null,
"phoneNumber": null,
"latitude": 0,
"longitude": 0,
"openHours": null,
"tags": null,
"position": 1,
"status": "created",
"createdAt": "2018-05-24T00:19:31.000Z",
"updatedAt": "2018-05-24T00:19:31.000Z",
"CreatedById": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"UpdatedById": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"LocationId": null,
"TimezoneId": null,
"MerchantId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"SalesGroupId": null
}
],
"pagination": {
"offset": 0,
"limit": 50,
"total_pages": 1,
"current_page": 1,
"next_page": 0,
"previous_page": 0,
"total_items": 2
}
}
Puedes consultar el stock de los productos mediante el endpoint Get stocks with scroll, enviando el id de la bodega, límite de items a consultar (el rango del límite permitido es >=50 y <=30000), este endpoint permite obtener el stock de los productos paginados por scroll.
Puedes consultar el stock por un rango de fecha y hora, filtrando por el parámetro de fecha de creación (createdAt) o fecha de actualización (updatedAt).
El historial de stock en bodega, puede ser consultado a través del endpoint Get stock history
este retorna todo el movimiento de stock del producto.
Podrás visualizar la información que se ve en la vista Movimiento de inventario desde la plataforma de Multivende.
Ejemplo response:
{
"entries": [
{
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"date": "2019-03-07T18:14:15.000Z",
"amount": 76,
"unitCost": 0,
"type": "INCREASE",
"comment": null,
"status": "created",
"createdAt": "2019-03-07T18:14:15.000Z",
"updatedAt": "2019-03-07T18:14:15.000Z",
"CreatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"UpdatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"CostCurrencyId": null,
"OriginProviderId": null,
"ProductRelocationCategoryId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"OriginWarehouseId": null,
"DestinationWarehouseId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"ProductVersionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"ProductStockBatchId": null,
"ProductRelocationCategory": {
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"name": "PRODUCT_RELOCATION_CATEGORIES.Product_reception.Name",
"certaintyLevel": "known",
"type": "increase",
"code": "_product_reception",
"description": "PRODUCT_RELOCATION_CATEGORIES.Product_reception.Description",
"position": 0,
"tags": "{ \"use_type\": \"external\"}",
"status": "created",
"createdAt": null,
"updatedAt": null
},
"CreatedBy": {
"profile": {
"name": "developers",
"fullName": "developers"
},
"token": {
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
},
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"name": "developers",
"email": "developers-test@multivende.com"
},
"OriginWarehouse": null,
"DestinationWarehouse": {
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"name": "Bodega (Personaliza el nombre)",
"code": null,
"address": null,
"description": null,
"type": "warehouse",
"phoneAreaCode": null,
"phoneNumber": null,
"latitude": 0,
"longitude": 0,
"openHours": null,
"tags": null,
"position": 1,
"status": "created",
"createdAt": "2019-01-30T17:18:46.000Z",
"updatedAt": "2019-01-30T17:18:46.000Z",
"CreatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"UpdatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"LocationId": null,
"TimezoneId": null,
"MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"SalesGroupId": null
}
},
{
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"date": "2019-03-07T18:04:49.000Z",
"amount": 14,
"unitCost": 0,
"type": "INCREASE",
"comment": null,
"status": "created",
"createdAt": "2019-03-07T18:04:49.000Z",
"updatedAt": "2019-03-07T18:04:49.000Z",
"CreatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"UpdatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"CostCurrencyId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"OriginProviderId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"ProductRelocationCategoryId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"OriginWarehouseId": null,
"DestinationWarehouseId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"ProductVersionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"ProductStockBatchId": null,
"ProductRelocationCategory": {
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"name": "PRODUCT_RELOCATION_CATEGORIES.Product_reception.Name",
"certaintyLevel": "known",
"type": "increase",
"code": "_product_reception",
"description": "PRODUCT_RELOCATION_CATEGORIES.Product_reception.Description",
"position": 0,
"tags": "{ \"use_type\": \"external\"}",
"status": "created",
"createdAt": null,
"updatedAt": null
},
"CreatedBy": {
"profile": {
"name": "developers",
"fullName": "developers"
},
"token": {
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
},
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"name": "developers",
"email": "developers-test@multivende.com"
},
"OriginWarehouse": null,
"DestinationWarehouse": {
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"name": "Bodega (Personaliza el nombre)",
"code": null,
"address": null,
"description": null,
"type": "warehouse",
"phoneAreaCode": null,
"phoneNumber": null,
"latitude": 0,
"longitude": 0,
"openHours": null,
"tags": null,
"position": 1,
"status": "created",
"createdAt": "2019-01-30T17:18:46.000Z",
"updatedAt": "2019-01-30T17:18:46.000Z",
"CreatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"UpdatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"LocationId": null,
"TimezoneId": null,
"MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"SalesGroupId": null
}
}
],
"pagination": {
"offset": 0,
"limit": 50,
"total_pages": 1,
"current_page": 1,
"next_page": 0,
"previous_page": 0,
"total_items": 2
}
}
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
En este artículo, te mostramos cómo realizar las carga de stock de tus productos mediante la API de Multivende.
Puedes consultar y crear bodegas asociadas a un Merchant mediante el siguiente Endpoint:
La actualización de stock disponible de un producto se envía de manera individual o masiva a cada bodega.
De manera masiva se pueden actualizar 1000 productos por solicitud.
Puedes actualizar el stock de productos asociados a una bodega mediante los siguientes endpoints:
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
La consulta de precios se realiza a productos asociados a una lista de precios en Multivende.
Para obtener el id de una lista de precios consultamos al endpoint Get price lists.
Puedes consultar el precio de los productos mediante el endpoint Get prices with scroll, enviando el id de la lista de precios, límite de items a consultar (el rango del límite permitido es >=50 y <=30000), este endpoint permite obtener el precio de los productos paginados por scroll.
Puedes consultar el precio por un rango de fecha y hora, filtrando por el parámetro de fecha de creación (createdAt) o fecha de actualización (updatedAt).
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Un producto puede estar relacionado a más de una lista de precios, por lo que la actualización del precio de un producto se realiza por cada una de las listas en la que se encuentre.
Se debe consultar al endpoint Get price list para obtener las listas de precios que tiene creadas el Merchant.
El response es un array que contiene:
Ejemplo Response:
{
"entries": [
{
"_id": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Precios de lista",
"isDefault": true,
"code": null,
"description": null,
"position": 0,
"status": "created",
"createdAt": "2018-05-24T00:19:31.000Z",
"updatedAt": "2018-05-24T00:19:31.000Z",
"CreatedById": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"UpdatedById": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"CurrencyId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"MerchantId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"Currency": {
"_id": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"PlatformCurrency": {
"_id": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "CURRENCIES.Chilean_peso.Name",
"symbol": "$",
"code": "CLP",
"decimalPlaces": 0
}
}
}
],
"pagination": {
"offset": 0,
"limit": 50,
"total_pages": 1,
"current_page": 1,
"next_page": 0,
"previous_page": 0,
"total_items": 1
}
}
Para el precio de un producto en una lista de precios, se emplea el siguiente Endpoint Update price enviando como parámetros el "_Id" actualizar obtenido de la consulta anterior y el campo sku_child del producto. Y en el body:
Request:
https://app.multivende.com/api/product-price-lists/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/product-versions/{{sku_child}}/set' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ' \
--header 'Cookie: route=XXXXXXXXXX.XXX.XX.XXXXXX|0bbbab1f8d05XXXXXXXXXXXXXXXXXXX' \
--data
{
"net": 119900,
"tax": 19,
"gross": 120000,
"priceWithDiscount": 150000
}
Response:
{
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"net": 100840.336134454,
"tax": 21,
"gross": 120000,
"priceWithDiscount": 150000,
"status": "created",
"createdAt": "2019-10-14T13:50:19.000Z",
"updatedAt": "2019-10-24T20:01:25.000Z",
"CreatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"UpdatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"ProductPriceListId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"ProductVersionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"CurrencyId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"Currency": {
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"PlatformCurrency": {
"_id": "a3e8e8ec-62d5-11e6-9651-70928b05753b",
"name": "CURRENCIES.Chilean_peso.Name",
"symbol": "$",
"code": "CLP",
"decimalPlaces": 0
}
}
}
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Podrás conseguir la información de las modalidades logísticas de tus despachos en los endpoints:
En el detalle del DeliveryOrders:
En el detalle del Checkout:
En el "shippingMode" encontrarás las opciones propias de cada canal de venta, según la información que nos proporcione el canal vía API. (me1, me2, fulfillment, Dropshipping).
Ejemplo:
"shippingMode": "fulfillment",
En el “courierName” las opciones disponibles y denominación de los operadores logísticos podrán variar de acuerdo a la configuración propia del canal para identificar a cada uno (El courier Blue Express podrás encontrarlo con los valores: Blue Express, BLX, entre otros).
Ejemplo:
"courierName": "BLUEXPRESS",
Mercado Envíos (drop_off) |
El vendedor prepara el pedido en su bodega, imprime la etiqueta y despacha a través del courier asignado por el marketplace. |
Mercado Envíos Places (xd_drop_off) |
El vendedor prepara el pedido en su bodega, imprime la etiqueta y despacha a través del courier asignado o en los puntos autorizados de Mercado Libre. |
Mercado Envíos Colecta (cross_docking) |
El vendedor prepara el pedido en su bodega, imprime la etiqueta y la flota propia de Mercado Libre lo retira y entrega al cliente final. |
Mercado Envíos Full (fulfillment) |
El vendedor envía stock a la bodega de Mercado Libre y el marketplace se encarga de almacenar los productos y realizar todo el proceso de preparación, generación de etiquetas y entrega al cliente final. *No se genera etiqueta * El seller debe generar la boleta para Colombia. |
Mercado Envíos Flex (self_service): |
El vendedor prepara el pedido en su bodega, imprime la etiqueta con código QR y despacha a través del courier de su preferencia o con su flota propia. *Las etiquetas deben ser escaneadas por el operador logístico con la app móvil de Mercado Envíos Flex para el control y seguimiento de los paquetes. |
Acordar con el vendedor (custom) |
El vendedor prepara el pedido en su bodega y despacha según lo acordado con el comprador.
|
ME1 (default) |
El vendedor prepara el pedido en su bodega y despacha con su flota propia o a través del courier de su preferencia. *No imprime la etiqueta. |
own logistic
|
Despacho por cuenta propia del vendedor |
Dropshipping |
El vendedor prepara el pedido en su bodega, imprime la etiqueta y despacha a través del courier asignado por el marketplace. |
Dropshipping |
El vendedor prepara el pedido en su bodega, imprime la etiqueta y despacha a través del courier asignado por el marketplace. |
Cross docking |
El vendedor prepara el pedido en su bodega, imprime la etiqueta y la flota propia de Dafiti lo retira y entrega al cliente final. |
Dropshipping |
El vendedor prepara el pedido en su bodega, imprime la etiqueta y despacha a través del courier asignado por el marketplace. |
Cross docking |
El vendedor prepara el pedido en su bodega, imprime la etiqueta y la flota propia de Ripley lo retira y entrega al cliente final. |
Despacho propio |
El vendedor prepara el pedido en su bodega y despacha a través de su flota propia. |
Fulfillment |
El vendedor envía stock a la bodega de Mercado Ripley y el marketplace se encarga de almacenar los productos y realizar todo el proceso de preparación, generación de etiquetas y entrega al cliente final. |
Dropshipping (scheduled) |
El vendedor prepara el pedido en su bodega, imprime la etiqueta y despacha a través del courier asignado por el marketplace. |
Same Day |
El vendedor prepara el pedido en su bodega, imprime la etiqueta y despacha con su flota propia o a través del courier de su preferencia en el mismo día. |
Fulfillment |
El vendedor envía stock a la bodega de Paris y el marketplace se encarga de almacenar los productos y realizar todo el proceso de preparación, generación de etiquetas y entrega al cliente final. |
Next Day |
El vendedor prepara el pedido en su bodega, imprime la etiqueta y despacha con su flota propia o a través del courier de su preferencia en el mismo día. |
Dropshipping |
El vendedor prepara el pedido en su bodega, imprime la etiqueta y despacha a través del courier asignado por el marketplace. |
Cross docking |
El vendedor prepara el pedido en su bodega, imprime la etiqueta y la flota propia de falabella.com lo retira y entrega al cliente final. |
Fulfillment |
El vendedor envía stock a la bodega de Falabella y el marketplace se encarga de almacenar los productos y realizar todo el proceso de preparación y entrega al cliente final. |
MFN |
Los vendedores son responsables de abastecer y almacenar su propio inventario, cumplir con sus propios pedidos, gestionar las devoluciones y trabajar directamente con el cliente. |
Fulfillment |
El vendedor envía el stock a la bodega de Amazon y el marketplace se encarga de almacenar los productos y realizar todo el proceso de preparación y entrega al cliente final. |
Easy Ship ('pri-ez-mx' 'expd-ez-mx' 'expr-ez-mx' std-ez-mx') |
Se encarga de la recolección, etiquetado y entrega de tus productos. Una vez que recibes un pedido, el sistema genera automáticamente la etiqueta de envío y coordina la recolección con el transportista. Además te ofrece seguimiento en tiempo real de todos tus envíos, proporcionando actualizaciones constantes tanto a ti como a tus clientes, mejorando la transparencia y la satisfacción del cliente. |
MFN std |
Logística MFN pero en modalidad standard |
Standard |
El vendedor prepara el pedido en su bodega, imprime la etiqueta y despacha a través del courier asignado por el marketplace. |
Standard |
El vendedor prepara el pedido en su bodega, imprime la etiqueta y despacha a través del courier asignado por el marketplace. |
Las ventas de tipo fulfillment pueden ser registradas en Multivende y leerse mediante la integración a través del endpoint de Get checkout, no hay diferencia entre el formato de estas ventas y otras modalidades.
Los canales de venta que tienen disponible esta modalidad son: Mercado Libre, Paris, Falabella.com, Amazon y Ripley.
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Te dejamos el paso a paso para que puedas obtener los documentos de despachos vía API:
Primero se debe consultar las conexiones de los Marketplaces que tiene habilitadas el Merchant por el endpoint Get Marketplace connections . El cual retorna un array con todas las conexiones, en el campo "_name" se indica el Marketplace al cual pertenece la conexión, los cuales pueden ser los siguientes:
Marketplace / Tienda online |
Estado para poder generar etiquetas |
Mercadolibre |
Disponible |
Linio |
Disponible |
Dafiti |
Disponible |
Ripley |
Disponible |
Paris |
Disponible |
Falabella (FCOM) |
Disponible |
Amazon |
Disponible |
Walmart |
Disponible sólo Chile |
Coppel |
Disponible |
Totalplay |
Disponible |
Liverpool |
Disponible |
Vtex |
No disponible |
Magento |
No disponible |
Shopify |
No disponible |
Prestashop |
No disponible |
Woocommerce |
No disponible |
Nota: Se deben descartar las conexiones de los Marketplace / Tiendas online que no están disponibles.
Con el "_Id" obtenido del respuesta anterior (Get Marketplace connections), se debe consultar por cada uno al Endpoint Get delivery orders with available labels. Enviando de forma predeterminada los siguientes parámetros:
El response es un array paginado de 50 órdenes por página. Se debe iterar por cuantas paginas contenga.
CONSIDERACIONES ESPECIALES:
Solo podrás generar etiquetas de las órdenes que no están despachadas ni canceladas. Para modalidad Fullfilment no se genera documento de despacho ya que la logística es administrada por los marketplaces que admiten esta modalidad.
Con los _Id del response anterior (Get delivery orders with available labels), los cuales se pueden agrupar en un array de máximo 50 para consultar al endpoint PUT Generate delivery order tikets..
El cual crea una tarea asíncrona para procesar la solicitud de generar etiquetas.
Para verificar que la tarea esté procesada, consultar periódicamente al siguiente Endpoint Get bulk action task hasta que el campo "processStatus" sea igual a:
En caso que sea "completed_with_warnings" o "failed" se debe volver a procesar la solicitud.
Adicionalmente, se debe validar el valor del campo “output” en el se indica el estado de las órdenes a las que se le solicitó generar las etiquetas.
El .zip contiene los siguientes archivos, según el formato que estableció el Marketplace:
*La activación del ZPL de FCOM se solicita directamente al canal de venta.
Documentos según canal de venta:
Canales | Órdenes | "externalOrderNumber" | "PackageId" ("externalContent) | "shipping"."id" ("externalContent") |
Mercado Libre |
1 PDF por solicitud. 1 ZPL por cada orden de la solicitud. |
"Venta" | No disponible | "Envío" |
Paris |
1 PDF por cada orden de la solicitud. 1 ZPL por cada orden de la solicitud. 1 PDF con todas las órdenes cada orden separada en 1 página. El formato es compatible con impresora zebra. |
"Referencia" | No disponible | No disponible |
Ripley |
1 PDF por cada orden de la solicitud. 1 PDF con todas las órdenes cada orden separada en 1 página. El formato es compatible con impresora zebra. |
"Número de Orden" | No disponible | No disponible |
Falabella |
1 PDF por cada orden de la solicitud. O de lo contrario: 1 ZPL por cada orden de solicitud. Esto se modifica desde el canal, si desean recibir PDF no llegará el archivo ZPL y al contrario, si desean recibir el ZPL no llegará el PDF dentro del .ZIP |
No disponible | "REF" | No disponible |
Linio |
1 PDF por cada orden de la solicitud. El formato es compatible con impresora zebra. |
No disponible | "REF" | No disponible |
Dafiti |
1 PDF por cada orden de la solicitud. El formato es compatible con impresora zebra. |
"Referencia" | No disponible | No disponible |
NOTA: si el Marketplace es Mercado Libre, automáticamente procesa la orden a lista, lo cual bloquea que se pueda cancelar por parte del cliente o Merchant.
No se registra que pueden pasar a buscar el pedido, esto se debe coordinar con el courier.
A través del endpoint Get delivery order se puede consultar el detalle de entregas con despacho de una orden. El campo "DeliveryOrderDocuments" contiene un array con los documentos referentes a la entrega con despacho de la orden consultada.
A continuación, se encuentra el diagrama de flujo para las consultas.
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Puedes obtener el campo _id del endpoint Get checkout dentro del arreglo de DeliveryOrder, el cual es necesario para actualizar el estado de la entrega.
La actualización del estado se debe realizar según el tipo de entrega.
Los siguientes datos pueden actualizarse por el endpoint Update delivery order status:
Tener en consideración que al enviar el cambio de estado a "Listo para envío" verificar posteriormente que este se haya sincronizado de forma correcta, esto lo pueden hacer consultando el Endpoint Get Delivery Order, el campo "DeliveryOrderStatusLink" verificando dentro de "synchronizationStatus" el cual puede contener los siguientes estados:
"pending" | Pendiente de sincronizar |
"requesting" | Empezando la ejecución |
"changed" | Cambio de estado correcto |
"not_requested" | El estado no genera sincronización al canal |
"failed_fatal" | Fallo cambio de estado en el canal |
Consideraciones Importantes:
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Para obtener los diferentes tipos de entrega que puede tener una orden se debe consultar el Endpoint Get delivery types. Actualmente contamos con dos tipos de entrega posibles, las cuales, en el response de la solicitud se obtiene el campo code, que puede tener los siguientes valores:
En el endpoint Get Checkout entregamos información general del despacho, pero si necesitas información adicional como los documentos o logs de cambio de estado, consulta el endpoint Get delivery order.
Para realizar la integración con los sistemas, se debe hacer un mapeo de los estados de las órdenes en Multivende y el sistema con el que se va a integrar. Para ello, se consulta al endpoint Get Delivery Order Status el cual retorna un array con todos los estados posibles de una orden en Multivende.
Del response se deben guardar los campos _id y code, que deben ser mapeados con los estados del sistema.
A continuación, se detallan los posibles estados de las ventas en Multivende y su relación con los estados de las ventas en los canales.
Estado en Multivende campo code |
Descripción |
_delivery_order_status_pending_ |
La orden ingresó en el sistema. |
_delivery_order_status_handling_ |
Se está preparando la orden para el envío. |
_delivery_order_status_ready_to_ship_ |
La orden está lista para el despacho. |
_delivery_order_reschedule_ |
La orden se re agendó. |
_delivery_order_status_shipped_ |
La orden se ha enviado. |
_delivery_order_status_delivered_ |
La orden se ha entregado. |
_delivery_order_status_not_delivered_ |
La orden no se entregó. |
_delivery_order_status_cancelled_ |
La orden se ha cancelado. |
_delivery_order_status_under_review_ |
La orden está en revisión. |
_delivery_order_status_partial_cancelled_ |
Uno o algunos de los items de la orden fue cancelado |
Multivende |
Amazon |
_delivery_order_status_pending_ | unshipped |
_delivery_order_status_handling_ | partiallyShipped |
_delivery_order_status_ready_to_ship_ | closed_summary |
_delivery_order_status_shipped_ | shipped |
_delivery_order_status_delivered_ | delivered |
_delivery_order_status_not_delivered_ | not_delivered |
_delivery_order_status_cancelled_ | cancelled |
Multivende |
Linio, Dafiti, Falabella |
_delivery_order_status_pending_ |
pending, processing
|
_delivery_order_status_handling_ |
return_waiting_for_approval, return_shipped_by_customer, return_rejected
|
_delivery_order_status_ready_to_ship_ |
ready_to_ship
|
_delivery_order_status_shipped_ |
shipped
|
_delivery_order_status_delivered_ |
delivered |
_delivery_order_status_not_delivered_ |
returned |
_delivery_order_status_cancelled_ |
failed, canceled |
Multivende |
Mercado Libre |
_delivery_order_status_pending_ |
pending |
_delivery_order_status_handling_ |
handling |
delivery_order_status_ready_to_ship_ |
ready_to_ship |
_delivery_order_status_shipped_ |
shipped |
_delivery_order_status_delivered_ |
delivered |
_delivery_order_status_not_delivered_ |
not_delivered |
_delivery_order_status_cancelled_ |
cancelled |
El estado solo se cambia en Mercadolibre para los pedidos que no son ME2 excepto el estado cancelado.
Multivende |
Paris |
_delivery_order_status_pending_ |
null
|
_delivery_order_status_handling_ |
confirmed
|
_delivery_order_status_shipped_ |
in_transit
|
_delivery_order_status_delivered_ |
delivered |
_delivery_order_status_not_delivered_ |
failure |
_delivery_order_status_cancelled_ |
failure |
Multivende |
Ripley |
_delivery_order_status_pending_ |
shipping
|
_delivery_order_status_shipped_ |
shipped
|
_delivery_order_status_delivered_ |
received
|
_delivery_order_status_cancelled_ |
cancelled |
Multivende |
Walmart Chile |
_delivery_order_status_pending_ | Created |
_delivery_order_status_handling_ | Acknowledged |
_delivery_order_status_shipped_ | Shipped |
_delivery_order_status_delivered_ | Delivered |
_delivery_order_status_cancelled_ | Cancelled |
Multivende |
Walmart México |
_delivery_order_status_pending_ | On Hold |
_delivery_order_status_pending_ | Created |
_delivery_order_status_ready_to_ship_ | Acknowledged |
_delivery_order_status_shipped_ | Shipped |
_delivery_order_status_delivered_ | Delivered |
_delivery_order_status_cancelled_ | Cancelled |
Multivende |
Magento |
_delivery_order_status_pending_ |
pending, new, pending payment, pending payPal
|
_delivery_order_status_handling_ |
processing, on hold, payment review
|
_delivery_order_status_delivered_ |
invoiced |
_delivery_order_status_cancelled_ |
closed, canceled |
Multivende |
Shopify |
_delivery_order_status_pending_ |
null
|
delivery_order_status_ready_to_ship_ |
confirmed
|
_delivery_order_status_shipped_ |
in_transit
|
_delivery_order_status_delivered_ |
delivered |
_delivery_order_status_not_delivered_ |
failure |
Multivende |
VTEX |
_delivery_order_status_under_review_ |
window-to-cancel
|
_delivery_order_status_pending_ |
ready-for-handling
|
_delivery_order_status_handling_ |
handling |
_delivery_order_status_shipped_ |
invoiced (Solo si esta el DTE cargado)
|
_delivery_order_status_cancelled_ |
cancelled |
Identificar los items cancelados: Para determinar qué artículo o artículos han sido cancelados en una orden de despacho, les instamos a buscar en el campo:
"checkoutLink" -> "externalContent" -> "subOrders "-> items al consultar la venta con Get checkout.
Dentro items, por cada uno de los items, en el campo “status” encontrarán la información detallada sobre la cancelación parcial en caso de que el ítem haya sido cancelado.
"status": {
"id": 31,
"name": "stock_shortage_refunded",
"description": "Reembolsado por falta de stock en la db",
"translate": "Problema con stock",
"cancelable": false
}
Estas indicaciones solo aplican para el caso del marketplace Paris.
En el endpoint Get Checkout entregamos información general del retiro en tienda, pero si necesitas información adicional como los logs de cambio de estado, consulta el endpoint Get pickup order.
Los estados de retiro en tienda se pueden consultar mediante el endpoint de: GET pick up order statuses.
Estado en Multivende campo code |
Descripción |
pick_up_order_status_pending |
La orden ingresó en el sistema |
pick_up_order_status_received_by_store |
La orden ingresó a la tienda |
pick_up_order_status_completed |
La orden está lista para el despacho. |
pick_up_order_status_cancelled |
La orden fue cancelada |
Actualizar el estado de una orden con retiro en tienda
Para actualizar el estado de una orden con retiro en tienda, lo hacemos mediante el endpoint:
PUT Update pick up order status. Enviando en el body los siguientes parámetros:
"PickUpOrderStatusId": "{{pick_up_order_status_pending_id}}"
"comment": "test comment",
"pickUpClosingComment": "test Pick Up Closing Comment",
"estimatedPickUpDateFrom": "2019-09-08 16:19:06",
"estimatedPickUpDateTo": "2019-09-10 09:19:06",
"effectivePickUpClosingDate": "2019-09-11 16:19:06"
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
La integración con nuestra API permite a los integradores acceder a información detallada sobre ventas, incluidas aquellas con cancelaciones parciales, específicamente para los canales de venta Paris y Mercadolibre. A continuación te compartimos la información de como puedes identificar estas transacciones:
Cancelaciones parciales para el canal Paris:
Identificar los items cancelados: Para determinar qué artículo o artículos han sido cancelados en una orden de despacho, les instamos a buscar en el campo:
"checkoutLink" -> "externalContent" -> "subOrders "-> items al consultar la venta con Get checkout.
Dentro items, por cada uno de los items, en el campo “status” encontrarán la información detallada sobre la cancelación parcial en caso de que el ítem haya sido cancelado.
Ejemplo:
"status": {
"id": 31,
"name": "stock_shortage_refunded",
"description": "Reembolsado por falta de stock en la db",
"translate": "Problema con stock",
"cancelable": false
}
Cancelaciones parciales para Mercadolibre:
Para Mercadolibre, al consultar el Get delivery order puedes validar el code del estatus del despacho en el DeliveryOrderStatus, en el caso de una cancelación parcial registra:
"code": "_delivery_order_status_partial_cancelled_"
"DeliveryOrderStatus":
{
"_id": "9fddd14d-8eda-46d8-867f-26ae43b3491f",
"name": "DELIVERY_ORDER_STATUSES.Partial_cancelled.Name",
"description": "DELIVERY_ORDER_STATUSES.Partial_cancelled.Description",
"code": "_delivery_order_status_partial_cancelled_",
"position": 10,
"tags": null,
"status": "created",
"createdAt": "2023-02-21T00:00:00.000Z",
"updatedAt": "2023-02-21T00:00:00.000Z"
}
Para el resto de los marketplaces aún no se registra información de cancelaciones parciales.
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Cada canal de venta maneja diversos estados para los tipos de entrega, no obstante en Multivende poseemos esados normalizados dentro de la plataforma; estos los obtienes consultando el endpoint Get Delivery Order Status el cual retorna un array con los estados normalizados en Multivende.
Del response se deben guardar los campos _id y code, que deben ser mapeados con los estados del sistema.
A continuación, se detallan la homologación de estados de las ventas en Multivende y su relación con los estados de las ventas en los canales.
Multivende
Estado en Multivende campo code |
Descripción |
_delivery_order_status_pending_ |
La orden ingresó en el sistema. |
_delivery_order_status_handling_ |
Se está preparando la orden para el envío. |
_delivery_order_status_ready_to_ship_ |
La orden está lista para el despacho. |
_delivery_order_reschedule_ |
La orden se reagendó. |
_delivery_order_status_shipped_ |
La orden se ha enviado. |
_delivery_order_status_delivered_ |
La orden se ha entregado. |
_delivery_order_status_not_delivered_ |
La orden no se entregó. |
_delivery_order_status_cancelled_ |
La orden se ha cancelado. |
_delivery_order_status_under_review_ |
La orden está en revisión. |
Paris
Estado del canal |
Estado Multivende |
awaiting_fulfillment | _delivery_order_status_pending_ |
ready_to_ship | _delivery_order_status_pending_ |
printed_label | _delivery_order_status_ready_to_ship_ |
closed_summary | _delivery_order_status_ready_to_ship_ |
shipped |
_delivery_order_status_shipped_ |
delivery_in_progress |
_delivery_order_status_shipped_ |
delivered |
_delivery_order_status_delivered_ |
not_delivered | _delivery_order_status_not_delivered_ |
lost | _delivery_order_status_not_delivered_ |
rejected_by_carrier | _delivery_order_status_not_delivered_ |
_delivery_order_status_under_review_ | _delivery_order_status_under_review_ |
_delivery_order_reschedule_ | _delivery_order_reschedule_ |
returned | _delivery_order_reschedule_ |
return_in_process | _delivery_order_reschedule_ |
seller_received | _delivery_order_reschedule_ |
returned_to_seller | _delivery_order_reschedule_ |
cancelled | _delivery_order_status_cancelled_ |
deleted |
_delivery_order_status_cancelled_ |
unable_to_fulfill |
_delivery_order_status_cancelled_ |
Shopify v2
Estado del canal |
Estado Multivende |
confirmed | _delivery_order_status_ready_to_ship_ |
in_transit | _delivery_order_status_shipped_ |
delivered | _delivery_order_status_delivered_ |
failure | _delivery_order_status_not_delivered_ |
null | _delivery_order_status_pending_ |
cancelled | _delivery_order_status_cancelled_ |
Mercadolibre
Estado del canal |
Estado Multivende |
pending | _delivery_order_status_pending_ |
handling | _delivery_order_status_handling_ |
ready_to_ship | _delivery_order_status_ready_to_ship_ |
shipped | _delivery_order_status_shipped_ |
delivered | _delivery_order_status_delivered_ |
not_delivered | _delivery_order_status_not_delivered_ |
cancelled | _delivery_order_status_cancelled_ |
Amazon
Estado del canal |
Estado Multivende |
unshipped | _delivery_order_status_pending_ |
partiallyShipped | _delivery_order_status_handling_ |
closed_summary | _delivery_order_status_ready_to_ship_ |
shipped | _delivery_order_status_shipped_ |
delivered | _delivery_order_status_delivered_ |
not_delivered | _delivery_order_status_not_delivered_ |
cancelled | _delivery_order_status_cancelled_ |
Vtex
Estado del canal |
Estado Multivende |
window-to-cancel | _delivery_order_status_under_review_ |
ready-for-handling | _delivery_order_status_pending_ |
handling |
_delivery_order_status_handling_ |
canceled | _delivery_order_status_cancelled_ |
cancel | _delivery_order_status_cancelled_ |
cancellation-requested | _delivery_order_status_cancelled_ |
shipped |
_delivery_order_status_shipped_ |
delivered |
_delivery_order_status_delivered_ |
Magento
Estado del canal |
Estado Multivende |
pending | _delivery_order_status_pending_ |
new | _delivery_order_status_pending_ |
pending payment | _delivery_order_status_pending_ |
pending payPal |
_delivery_order_status_pending_ |
processing |
_delivery_order_status_handling_ |
on hold | _delivery_order_status_handling_ |
payment review | _delivery_order_status_handling_ |
closed |
_delivery_order_status_cancelled_ |
canceled |
_delivery_order_status_cancelled_ |
complete |
_delivery_order_status_delivered_ |
Prestashop
Estado del canal |
Estado Multivende |
pending |
_delivery_order_status_pending_ |
Mapeo personalizado de estados |
Ripley
Estado del canal |
Estado Multivende |
delivered | _delivery_order_status_ready_to_ship_ |
pending | _delivery_order_status_pending_ |
shipped |
_delivery_order_status_shipped_ |
received |
_delivery_order_status_delivered_ |
canceled |
_delivery_order_status_cancelled_ |
closed |
_delivery_order_status_cancelled_ |
Fcom - Linio
Estado del canal |
Estado Multivende |
pending | _delivery_order_status_pending_ |
processing | _delivery_order_status_pending_ |
ready_to_ship | _delivery_order_status_ready_to_ship_ |
return_waiting_for_approval | _delivery_order_status_handling_ |
return_shipped_by_customer | _delivery_order_status_handling_ |
return_rejected | _delivery_order_status_handling_ |
shipped | _delivery_order_status_shipped_ |
delivered | _delivery_order_status_delivered_ |
returned | _delivery_order_status_not_delivered_ |
canceled | _delivery_order_status_cancelled_ |
failed | _delivery_order_status_cancelled_ |
ReadyToShip | _delivery_order_status_ready_to_ship_ |
PackadByMarketplace | _delivery_order_status_handling_ |
Shipped | _delivery_order_status_shipped_ |
Cancelled | _delivery_order_status_cancelled_ |
Jumpseller
Estado del canal |
Estado Multivende |
requested | _delivery_order_status_handling_ |
failed | _delivery_order_status_cancelled_ |
pickup_available | _delivery_order_status_delivered_ |
delivered | _delivery_order_status_delivered_ |
procesado | _delivery_order_status_delivered_ |
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Multivende ha obtenido la certificación ISO 27001, la norma internacional que garantiza las mejores prácticas en gestión de la seguridad de la información. Esta certificación reconoce nuestro compromiso con la protección de los datos y la gestión de la seguridad en todos nuestros procesos.
La ISO 27001 se centra en identificar y gestionar los riesgos relacionados con la información, estableciendo un marco robusto para proteger la confidencialidad, integridad y disponibilidad de los datos. Con esta certificación, aseguramos que nuestros sistemas y procedimientos cumplen con los más altos estándares de seguridad, brindando confianza tanto a nuestros clientes como a nuestros socios comerciales.
Nuestro equipo trabaja continuamente para mantener estos estándares, implementando políticas y controles que garantizan la seguridad en cada etapa de nuestro trabajo.
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Todas las interacciones con la API de Multivende deben realizarse usando https.
Será responsabilidad de Multivende actualizar el certificado correspondiente cuando este vaya a expirar.
Será responsabilidad de quién consuma la API realizar todas las llamadas utilizando https con la versión de TLS> = 1.2. Para detalles del certificado se puede usar openssl en el terminal:
echo | openssl s_client -showcerts -servername app.multivende.com -connect
app.multivende.com:443 2>/dev/null | openssl x509 -inform pem -noout –text
Los algoritmos de cifrado que utilizamos son los siguientes:
Transport Layer Security (TLS) el cual es un protocolo criptográfico que protege las comunicaciones por Internet y Secure Hash Algorithm (SHA).
Si, dado que Cloudflare utiliza SNI por defecto.
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Se entrega información sobre los rangos de IPs utilizados por Multivende.
Multivende opera sobre instancias de Amazon con la IP estática 3.15.93.102 la cual puedes registrar en el white list de IP's dentro de tu sistema.
Multivende notificará sobre cambios en la región en la que se encuentre operando a todos quienes estén consumiendo sus servicios.
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Si debes crear una integración porque formas parte de nuestro Developers Partners Program o si ya te encuentras trabajando en una integración para un merchant de Multivende, debes seguir las siguientes recomendaciones para que puedas brindar la mejor experiencia de trabajo al merchant y para que tus procesos también sean más optimizados.
Si eres miembro de nuestro Developers Partners Program como desarrollador de integraciones con Multivende, debes tomar en cuenta las siguientes recomendaciones:
Debes asegurarte de que tu equipo de desarrollo asista al onboarding de TI, ya que en este se dejará configurada la cuenta test del merchant para las pruebas en ambiente QA de la integración.
Como integrador debes asistir a las reuniones semanales pautadas durante el proyecto de integración.
Te pedimos que seas muy claro en las funcionalidades que cubre tu integración, las cuáles debes notificarnos en el Go Live y dejar definido si es factible realizar algún desarrollo customizado que el merchant requiera.
Recuerda que ante cualquier duda o inconveniente en la conexión con nuestro servicio de integraciones, puedes consultarnos a través del correo electrónico api@multivende.com.
Si ya te encuentras desarrollado una integración específica para un merchant de Multivende, debes tomar en cuenta las siguientes recomendaciones
Como integrador, debes asistir a las reuniones semanales pautadas durante el proyecto de integración.
Debes solicitar al merchant directamente los accesos a sus cuentas productivas en Multivende y gestionar las pruebas y recursos necesarios para validar la integración.
Como integrador, debes garantizar que la integración cumpla con las necesidades del merchant.
Multivende es responsable de realizar el kickoff inicial del proyecto para un merchant en conjunto. Como integrador, debes asistir a esta reunión con los miembros de tu equipo de TI que realizará la integración, ya que en el kickoff se debe dejar claro el alcance del proyecto.
Nuestro equipo de API hará seguimiento para confirmar la finalización del proyecto, es importante que des respuesta a nuestros emails y realizar una reunión para validar que la integración finalizó con éxito.
Te aconsejamos estar atento a las comunicaciones de nuestro equipo de desarrollo ante cualquier comunicación que enviemos referente a la actualización en nuestra API, esto con el fin de garantizar que tu desarrollo no se vea afectado ante algún cambio.
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Debes ingresar en tu cuenta previamente creada realizando login a través de:
Tanto el Client ID como el Client Secret los puedes encontrar ingresando a tu lista de aplicaciones.
Haz click en el botón de acciones como se muestra en la siguiente imagen:
Al darle click al botón de acciones podrás editar los datos de tu aplicación, además, en la parte superior del formulario encontrarás el Client ID y el Client Secret resaltado en color azul.
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Para consultar tu ID de comerciante, debes seguir los pasos a continuación:
1.- Debes hacer clic en el ícono del lápiz que aparece al lado del nombre de la cuenta. Este enlace te llevará a visualizar/editar los datos de la cuenta.
2.- Toma de la URL el ID, este es el identificador de la cuenta (Merchant_id).
¡Listo! Ya obtuviste tu Merchant ID.
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
Para facilitar la visibilidad entre los ID entregados vía API y la plataforma, en la URL de Multivende puedes verificar el ID del ítem seleccionado.
Por ejemplo, al seleccionar "editar" una bodega la URL será:
https://app.multivende.com/stores-and-warehouses/XXXXXXXX-3639-4c28-9e1c-XXXXXXXXXXXX/edit
Donde el ID correspondiente a la bodega es: XXXXXXXX-3639-4c28-9e1c-XXXXXXXXXXXX.
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
El MarketplaceConnectionId es el identificador único de una conexión con un marketplace o canal de venta de la cuenta de un merchant en Multivende.
Puedes consultar la información de este Id para las conexiones de las cuentas de un merchant mediante el endpoint Get Marketplace connections , la api retornará un array con todas las conexiones disponibles en la cuenta del merchant:
{
"entries": [
{
"_name": "Mercadolibre",
"_id": "a58xxxe-1fb6-4bd2-80xx-1b795xxxa39a",
"name": null,
"country": "cl",
"pictureUrl": "https://s3.amazonaws.com/im-shared/mercadolibre.png",
"provider": "mercadolibre",
"allowPickUpInStore": null
}
],
"pagination": {
"offset": 0,
"limit": 50,
"total_pages": 1,
"current_page": 1,
"next_page": 0,
"previous_page": 0,
"total_items": 1
}
}
En el request de la solicitud se debe identificar el canal de venta al que estamos consultando las conexiones.
Marketplace
mercadolibre
linio
dafiti
ripley
paris
fcom
amazon
walmart
coppel
Online Store:
vtex
magento
shopify
prestashop
wocommerce
jumpseller
bigcommerce
Si tienes dudas o necesitas asistencia, puedes escalar un ticket a través de este enlace y nuestro equipo estará encantado de ayudarte.
Equipo Integraciones API Multivende
En caso de que necesites asistencia con la integración de nuestra API, nuestro equipo de Integraciones vía API está disponible para brindarte el soporte que necesitas. A continuación, te explicamos cómo crear un ticket de manera rápida y sencilla para que puedas ponerte en contacto con ellos.
Lo primero que debes hacer es ingresar a la plataforma de soporte o al sistema de tickets de Multivende. Este acceso se encuentra en la sección de Soporte o Ayuda de nuestro sitio web o dentro de la misma aplicación.
Una vez que hayas ingresado al sistema de soporte, deberás elegir la categoría adecuada para tu solicitud. En este caso, selecciona "Necesito crear un ticket de soporte para integraciones API" que te llevará directamente al formulario de tickets relacionado con este tema.
El siguiente paso es completar el formulario con los detalles de tu solicitud. Asegúrate de proporcionar la mayor cantidad de información posible para que el equipo de Integraciones pueda ayudarte de manera eficiente.
Los campos más comunes en el formulario incluyen:
Una vez que hayas completado el formulario y revisado toda la información, haz clic en el botón de Enviar para crear el ticket. Esto enviará tu solicitud directamente al equipo de Integraciones vía API.
Después de enviar el ticket, recibirás un correo de confirmación con el número de seguimiento del ticket. El equipo de Integraciones comenzará a trabajar en tu solicitud y se pondrá en contacto contigo para proporcionarte una solución o más detalles si fuera necesario.
Una vez que se haya resuelto tu solicitud y estés satisfecho con la solución, se procederá a cerrar el ticket. Si en algún momento tienes más preguntas o problemas adicionales, puedes abrir un nuevo ticket en cualquier momento.
Equipo de integraciones API Multivende.