Productos, Stocks y Precios
Conoce nuestro proceso de integración para la administración de tus productos, stock y precios vía API con Multivende.
-
¿Cómo crear productos desde tu sistema a Multivende?
En este artículo, mostramos cómo realizar la creación de productos desde tu sistema hacia Multivende.
Para comenzar, te dejamos los Endpoints disponibles para una correcta creación de un producto desde nuestra API.
- Get products with scroll: Obtener todos los productos de un Merchant.
- Products: Obtener los registros de las marcas, tallas, colores u otros se debe consultar según sea el caso en la carpeta correspondiente.
- Create product: Crear productos asociado a un merchant.
- Update product: Permite actualizar la información del producto.
- Atributos custom: Atributos personalizados que pueden asignar al producto.
Te recomendamos leer el siguiente artículo en donde abordamos esto con mayor detalle.
Creación de un producto con información básica
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", "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", "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.
- ¿Cómo cargar stock vía API?: Mostramos cómo realizar las carga de stock de tus productos mediante la API de Multivende.
- Actualización de Precios: Te indicamos cómo realizar una actualización de precio para tus productos.
Crear un producto con información completa.
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:
- Categoría.
- Color.
- Talla.
- Marca.
- Temporada.
- Clases de envío.
- Descripción.
- Atributos custom.
- El único atributo que debe quedar configurado por defecto es el SKU (code).
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).
- Configuración imágenes de producto: Contiene los Endpoint para realizar actualizaciones de posiciones de imágenes, subir imágenes por ID o URL, cargar imágenes hacia la versión del producto.
- Get products picture set: Obtendrás los álbumes de imágenes de los productos del Merchant.
- Get products pictures: Lista las imágenes de un producto del Merchant.
Si el campo "ProductPictureSetId" es "null", es el álbum predeterminado.
- Get product versions pictures: Obtiene las imágenes de las versiones de un producto del Merchant
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.
Configuración de atributos
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:
- Marcas:
Get Brands: Podrás obtener las marcas asociadas al Merchant.
Get Brands by Id: Te permite buscar una marca especifica enviando el "_id" dentro del request.
Post Brands: Puedes crear una marca desde la integración la cual quedará asociada al Merchant.
Update Brands: Te permite actualizar el nombre o la descripción de la marca.
- Clases de envío:
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.
Post shipping classes: Puedes crear una clase de envío desde la integración la cual quedará asociada al Merchant.
- Colores:
Get Colors: Podrás obtener los colores asociados al Merchant.
Get Colors by Id: Te permite buscar un color especifico enviando el "_id" dentro del request.
Post Colors: Puedes crear un color el cual quedará asociado al Merchant.
Update Colors: Te permite actualizar el nombre del color.
- Tallas:
Get Sizes: Podrás buscar las tallas asociadas al Merchant.
Get Size by Id: Te permite buscar una talla especifica enviando el "_id" dentro del request.
Post Sizes: Puedes crear un talla la cual quedará asociada al Merchant.
Update Sizes: Te permite actualizar el nombre y la descripción de la talla.
- Temporadas:
Get Seasons: Podrás obtener las temporadas asociadas al Merchant.
Get Seasons by Id: Te permite buscar una temporada especifica enviando el "_id" dentro del request.
Post Seasons: Puedes crear una temporada la cual quedará asociada al Merchant.
Update Seasons: Te permite actualizar el nombre de la temporada.
- Categorías:
Get Product Categories: Podrás obtener las categorías de los productos asociadas al Merchant.
Get Product Categories by Id: Te permite buscar una categoría de un producto enviando el "_id" dentro del request.
Post Product Categories: Puedes crear una categoría la cual quedará asociada al Merchant.
Update Categories: Te permite actualizar el nombre y la descripción de la categoría.
Equipo Integraciones API Multivende
-
¿Cómo actualizar un producto desde tu sistema hacia Multivende?
En este artículo, mostramos como actualizar un producto desde tu sistema hacia Multivende mediante nuestra API.
Para comenzar, te dejamos los endpoints disponibles para una correcta actualización de un producto desde nuestra API.
- Get products with scroll: Obtener todos los productos de un Merchant.
- Products: Obtener los registros de las marcas, tallas, colores u otros se debe consultar según sea el caso en la carpeta correspondiente.
- Create product: Crear productos asociado a un merchant.
- Atributos custom: Atributos personalizados que pueden asignar al producto.
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:
- Recordar que siempre el campo “InventoryTypeId” debe ir establecido de la siguiente manera:
"InventoryTypeId": "791a6654-c5f2-11e6-aad6-2c56dc130c0d"
- Dentro del body puede enviar únicamente los parámetros que deseas actualizar, el resto, puedes omitirlos o no enviarlos en la solicitud.
Equipo Integraciones API Multivende
-
Consultar stock de productos en bodegas
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 } }
Consultar stock de productos
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).
Consultar el histórico de movimientos de stock de un producto en una bodega
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 } }
Equipo Integraciones API Multivende
-
¿Cómo cargar stock vía API?
En este artículo, te mostramos cómo cargar stock de tus productos mediante la API de Multivende.
Consultar y crear bodegas
Puedes consultar y crear bodegas asociadas a un Merchant mediante el siguiente Endpoint:Get stores and warehouses
Create store or warehouse permite crear una bodega asociada al Merchant.
Actualizar stock de productos en bodegas
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:
- Update stock: actualiza el stock disponible de un producto a una bodega, identificando el producto mediante el sku versión y enviando el monto disponible.
- Bulk update stock: envía de manera masiva el stock a una bodega, enviando en un arreglo de productos el sku versión y monto disponible. En la respuesta mediante el parámetro success se devuelve el mensaje de si la actualización fue exitosa o no.
Consideraciones
Debes tener en cuenta que el stock enviado mediante API reemplaza al actual que tenga el producto.Debes consultar primero el stock actual en Multivende mediante el endpoint Get stocks with scroll y actualizar solamente los que tengan diferencias.Se recomienda realizar la sincronización de stock por lo menos una vez al día de forma automática.Se recomienda dejar una opción para que se pueda ejecutar el proceso de forma manual.
Equipo Integraciones API Multivende
-
Consultar precios de productos via API
En este artículo te mostramos cómo consultar el precio de tus productos mediante la API de Multivende.
La consulta de precios se realiza a productos asociados a una lista de precios en Multivende.
Consultar precios de productos.
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).
Equipo Integraciones API Multivende
-
Actualización de Precios
En este artículo te mostramos el proceso de actualización de precios vía API.
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.
Proceso para actualizar el precio de un producto
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:
-
- “_Id”: Identificador de la lista en Multivende, este dato se debe guardar en el sistema para poder realizar el mapeo de las listas.
- “name”: Nombre de la lista.
-
“status”: Estado de la lista en Multivende.
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:
- “net”: Precio neto.
- “tax”: Impuestos.
- "gross": Precio de venta.
- " priceWithDiscount": Precio con descuento (algunos canales no permiten realizar la actualización de esta manera, por lo que se sugiere que los descuentos los trabajen directo en el canal).
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
-
-
Atributos Personalizados: Qué son y cómo configurarlos
Explicamos el proceso para configurar atributos personalizados a tus productos.
¿Qué son los atributos personalizados de tus productos?
- Los atributos son características de los productos que dependen de la categoría a las que pertenecen y que son fijados individualmente por el vendedor según requerimiento de cada canal de venta.
- La función principal de los atributos personalizados es describir al consumidor propiedades adicionales del producto y a nivel técnico los atributos facilitan la conexión de tu catálogo de productos en cada canal de venta con Multivende.
- Puedes crear tus atributos personalizados a través de nuestra API, a continuación te mostramos los Endpoint disponibles y cómo puedes utilizarlos.
Lo primero que debes realizar es crear un conjunto de atributos personalizados asociados al Merchant, esto lo realizamos utilizando Create Custom Attribute Sets quien nos habilita un conjunto de atributos personalizados para el Merchant, por ejemplo: “Atributos de Mercadolibre”.
- Para crear un conjunto de atributos personalizados para productos, debes configurar la variable {{attribute_set_scope}} = productos.
- Para crear un conjunto de atributos personalizados para las versiones del producto, se debe configurar la variable {{attribute_set_scope}} = product_versions.
Un ejemplo de lo enviado es el siguiente:
curl --location -g '{{base_url}}/api/m/{{merchant_id}}/custom-attribute-sets/
{{attribute_set_scope}}' \
--header 'Authorization: Bearer {{access_token}}' \
--data '{
"name": "Atributos de Mercadolibre",
"description": "Productos custom para meli"
}'En donde la API nos devolverá el siguiente mensaje indicando la creación del conjunto:
{
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"position": 0,
"status": "created",
"name": "Atributos de Mercadolibre",
"description": "Productos custom para meli",
"CreatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"UpdatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"CustomAttributeScopeId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"updatedAt": "2022-02-15T19:04:14.000Z",
"createdAt": "2022-02-15T19:04:14.000Z"
}Una vez creado el conjunto de atributos personalizados podemos realizar la actualización de estos, es por ellos que disponemos del Endpoint Update Custom Attribute Sets, para poder visualizar el conjunto de atributos personalizados a través de nuestra API consultar Get Custom Attribute Sets en donde enviaremos el MerchantId dentro del request.
Consultar Conjunto de atributos personalizados asociado al Merchant:
curl --location -g '{{base_url}}/api/m/{{merchant_id}}/custom-attribute-sets/
{{attribute_set_scope}}' \
--header 'Authorization: Bearer {{access_token}}'Obteniendo el detalle correspondiente:
"entries": [
{
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"name": "Atributos Dafiti - Versiones",
"code": null,
"description": null,
"position": 0,
"tags": null,
"status": "created",
"createdAt": "2021-08-02T19:14:00.000Z",
"updatedAt": "2021-08-02T19:33:46.000Z",
"MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"CustomAttributeScopeId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"CreatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"UpdatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"CustomAttributes": [
{
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"name": "Material de la correa - version",
"code": "material_de_la_correa_version",
"description": null,
"position": 0,
"tags": null,
"status": "created",
"createdAt": "2021-08-02T19:30:21.000Z",
"updatedAt": "2021-08-02T19:37:23.000Z",
"MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"CustomAttributeSetId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"CustomAttributeScopeId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"CustomAttributeTypeId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"CustomAttributeSpecificityId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"CreatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"UpdatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"CustomAttributeScope": {
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"name": "CUSTOM_ATTRIBUTE_SCOPES.Scopes_product_versions.Name",
"code": "product_versions",
"description": "CUSTOM_ATTRIBUTE_SCOPES.Scopes_product_versions.Description",
"position": 1,
"tags": null,
"status": "created",
"createdAt": "2018-07-14T14:38:00.000Z",
"updatedAt": "2018-07-14T14:38:00.000Z"
},
"CustomAttributeType": {
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"name": "CUSTOM_ATTRIBUTE_TYPES.Single_line_text.Name",
"code": "single_line_text",
"description": "CUSTOM_ATTRIBUTE_TYPES.Single_line_text.Description",
"position": 0,
"tags": null,
"status": "created",
"createdAt": "2018-01-14T18:23:56.000Z",
"updatedAt": "2018-01-14T18:23:56.000Z"
},
"CustomAttributeSpecificity": {
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"name": "CUSTOM_ATTRIBUTE_SPECIFICITIES.Specificities_all.Name",
"code": "all",
"description": "CUSTOM_ATTRIBUTE_SPECIFICITIES.Specificities_all.Description",
"position": 0,
"tags": null,
"status": "created",
"createdAt": "2018-01-14T18:23:56.000Z",
"updatedAt": "2018-01-14T18:23:56.000Z"
},
"CustomAttributeOptions": []
}
]
},Finalizada la creación del conjunto de atributos personalizados, podemos realizar la creación de un atributo personalizado.
Create Custom Attribute: Te permite crear un atributo personalizado en un conjunto de atributos personalizados.
curl --location -g '{{base_url}}/api/custom-attribute-sets/{{custom_attribute_set_id}}/custom-attributes' \
--header 'Authorization: Bearer {{access_token}}' \
--data '{
"code": "test_custom_att",
"CustomAttributeTypeId": "763c2831-b9af-462f-8974-d401f358949c",
"CustomAttributeSpecificityId": "7464869d-968b-46d4-85c5-0e349052c5c9",
"name": "test - custom att",
"description": "test custom",
"CustomAttributeOptions": [
{
"text": "Option 1",
"code": "option_1",
"status": "waiting-for-creation"
},
{
"text": "Option 2",
"code": "option_2",
"status": "waiting-for-creation"
},
{
"text": "Option 3",
"code": "option_3",
"status": "waiting-for-creation"
}
]
}'- Update Custom Attribute: Enviando el {{custom_attributes_id}} podemos realizar la actualización del atributo personalizado.
- Get Custom Attributes Type: Lista los tipos de atributos personalizados que se pueden crear.
- Get Product Custom Attributes: Permite ver los detalles de un atributo personalizado, enviando dentro del request el {{custom_attributes_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
-
Gestión de imágenes a través de la API de Multivende
Conoce cómo administrar tus imágenes tanto de los productos padres como las versiones.
Las imágenes se organizan en álbumes. Para obtener la lista de estos álbumes, es necesario utilizar el endpoint "Get products picture set". El álbum predeterminado es productPictureSetId = null, que ya ha sido creado por Multivende para facilitar la carga de imágenes.
Puedes realizar carga de las imágenes, tanto para los productos padres como para las versiones:
Productos Padres:
En la siguiente carpeta podrás encontrar los endpoint asociados a la carga de imágenes de productos padre.
Versiones:
En la siguiente carpeta podrás encontrar los endpoint asociados a la carga de imágenes de versiones de productos.
Consultar imágenes de un producto
- Get products pictures: Te permite obtener las imágenes asociadas al producto, al hacer click en la URL del response podrás visualizar la imagen del producto.
[
{
"url": "https://s3-us-west-2.amazonaws.com/im-prod-products-images/1-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.jpg",
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"provider": "s3",
"title": null,
"alt": null,
"description": null,
"storageUrl": "https://s3-us-west-2.amazonaws.com/im-prod-products-images",
"storagePath": null,
"fileKey": "1-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.jpg",
"originalServerPath": "/tmp/AivQ8EPan8P-L1Fp2hV68sqn.jpg",
"originalFileName": "1.jpg",
"fileName": null,
"fileType": "image/jpeg",
"fileSize": 14257,
"position": 1,
"status": "created",
"createdAt": "2021-06-02T20:26:14.000Z",
"updatedAt": "2021-06-02T20:26:14.000Z",
"CreatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"UpdatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ProductPictureSetId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ProductId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ProductPictureSet": {
"branch": "Album-test-App",
"_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Album-test-App",
"code": null,
"description": null,
"status": "created",
"createdAt": "2021-04-22T23:51:29.000Z",
"updatedAt": "2021-04-22T23:51:29.000Z",
"CreatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"UpdatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
]Es importante que descargues la imagen y la almacenes dentro del respectivo repositorio de tu integración, si esta URL la expones en un sistema externo Multivende bloqueará la solicitud.
Eliminar imágenes a un producto:
-
Delete product image by id: Te permite eliminar una imagen enviando dentro del request el "product_image_id"
- Para conocer las imágenes asociadas al producto, puedes obtenerlas consultando el Producto (Get Product by Id) dejando el filtro _include_product_picture=true.
Cargar imágenes a un producto: la carga de imágenes puedes realizarse mediante los archivos almacenados de manera local o a través de una url pública. A continuación te dejamos el detalle de los endpoints:
- Upload picture to product by Id: Te permite cargar una imagen almacenada localmente enviando dentro del request el "_id" del producto al cual cargarás esta.
Importante:
- ProductPictureSetId: Corresponde al "_id" del album en donde será cargada está imagen, recordar que si el album por defecto debe ir "null".
- position: De carácter opcional, es la posición de la imagen, en caso de ser "0" está será listada primero que el resto.
- Upload picture to product by url:Te permite cargar una imagen desde una URL enviando dentro del Body el "ProductId" y las diferentes URL's de las imágenes que quieras anexar al producto.
La URL no debe contener bloqueos ni tokens que impidan el acceso y debe permitir la descarga. Multivende descargará la imagen y la almacenará en su repositorio.
Actualizar la posición de una imagen dentro de un albúm
- Update product picture position:Te permite actualizar las posiciones de las imágenes dentro del album enviando dentro del request el "MerchantId" y "ProductPictureSetId"
Dentro del "Body" enviarás el "ProductId" y un array donde cada una de las entradas será la posición en donde quieras organizar la respectiva imagen.
La información de este artículo también aplica para las versiones de los productos, la única diferencia es que para los endpoints de las versiones trabajarás con los "_id" respectivos a las versiones.
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
-
¿Cómo crear productos en tu canal desde Multivende?
En este artículo, mostramos cómo realizar la creación de productos en tu canal mediante la API de Multivende.
Para lograr una conexión entre Multivende y el canal, se debe diseñar una interfaz en la que el merchant pueda:
-
Mapear los atributos de los productos como:
- Categoría.
- Color.
- Talla.
- Marca.
- Temporada.
- Clases de envío.
- Descripción.
- Atributos custom.
-
El único atributo que debe quedar configurado por defecto es el SKU (code).
Para obtener un array con todos los atributos de los productos de Multivende para un Merchant usar en endpoint Get product attributes.
Ejemplo de mapeo de atributos:
La documentación de los endpoint para los productos está disponible en Products.- 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 debe poder seleccionar qué álbum de fotos va a usar). En caso de usar el álbum por defecto de Multivende debes considerar que el _id de este álbum es el valor "null".
- Listas de precios: Si la app tiene permiso para leer todas las listas de precios debe listar todas las listas del endpoint Get price lists, sí no, debe listar solo a las que tiene permisos.
- Bodegas: Si la app tiene permiso para leer todas las bodegas debe listar todas las bodegas del endpoint Get stores and warehouses, si no, debe listar solo a las que tiene permisos.
- El Merchant deberá poder seleccionar que productos va a publicar en el canal a través del endpoint Get products with scroll podrás obtener el listado de productos con atributos filtrados, la aplicación deberá notificar a Multivende el estado del product link(Estado del producto en canal para la publicación). Te dejamos disponible nuestra documentación para administrar los product link mediante al endpoint Get product links with scroll. Ten en cuenta que con este endpoint tienes la posibilidad de filtrar por estado de sincronización (synchronization_statuses) enviando los estados separados por coma, si quieres filtrar por varios estados.
- El Merchant deberá poder eliminar productos del canal y la aplicación deberá notificar a Multivende a través del endpoint Deleted product link.
- Deben implementar los webhooks para: productos, stocks, precios y product link con los cuales deben buscar la información del producto para actualizarla, si al consultar por el _id del product link retornamos 404 significa que el merchant apago el producto para el canal. Como complemento de los webhooks deben usar los endpoints disponibles para consultas de stock, productos, product links y precios, consultando cada cierto la información para mantener la información sincronizada y evitar cualquier perdida de notificaciones.
A nivel de configuración de backend deben mapear internamente:
- Moneda: En el endpoint Get currencies podrás consultar las monedas disponibles en Multivende, este dato se debe enviar para crear las órdenes.
- Métodos de pago: En el endpoint Get checkout payment methods podrás consultar los métodos de pagos disponibles en Multivende, este dato se debe enviar para crear las órdenes.
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
-
Mapear los atributos de los productos como: