Productos


Modificar producto

Debe incluir un token de acceso en el encabezado de 'Authorization' en todas las solicitudes.

Ratelimit

Cada 1 segundo

Cuerpo de la consulta

Identificá el producto con sku o externalId (uno de los dos) y enviá al menos uno de price, name, description o show.

skunumber

SKU del producto. Requerido salvo que envíes externalId.

Optional
externalIdstring

ID de integración (Fudo/Toteat) del producto, en children.integrations. Alternativa a sku — la plataforma se detecta automáticamente (productIdFudo, productCodeToteat o extId).

Optional
pricenumber

Nuevo precio del SKU (nivel child).

Optional
namestring

Nuevo nombre del producto (nivel producto, compartido por todos sus SKU).

Optional
descriptionstring

Nueva descripción del producto (nivel producto). Enviá "" para limpiarla.

Optional
showboolean

Visibilidad del PRODUCTO entero (nivel producto). true = visible, false = no visible. No confundir con la visibilidad del stock por sucursal (esa va en /product/stock).

Optional

Ejemplo.

curl -v -X PUT
    --url 'https://api.public.lumarketo.cl/product'
    --header 'Authorization: Bearer <access_token>'
    --data '{ "sku": 50, "price": 2560, "show": false }'

Identificando el producto por externalId de integración (sin sku), solo el nombre:

curl -v -X PUT
    --url 'https://api.public.lumarketo.cl/product'
    --header 'Authorization: Bearer <access_token>'
    --data '{ "externalId": "777", "name": "Nuevo nombre" }'

Respuestas

Modificar stock de producto

Actualiza el stock de un producto. Debe incluir un token de acceso en el encabezado de 'Authorization'.

Ratelimit

Cada 1 segundo

Cuerpo de la consulta

El externalId del producto (id de integración Fudo/Toteat) y el nuevo qty. Por defecto el externalId ya identifica la sucursal: cada mapeo de integración del producto guarda a qué sucursal pertenece, así que el sistema la resuelve automáticamente.

⚠️ Importante — externalId repetido entre sucursales. Si el mismo externalId de producto se repite en varias sucursales (por ejemplo, todas tus sucursales usan el mismo id externo por producto), no se puede saber a cuál actualizar. En ese caso debés enviar la sucursal con subsidiaryExternalId (extId de la sucursal) o subsidiaryId (id interno) para diferenciarlas.

externalIdstring

Requerido. ID de integración (Fudo/Toteat) del producto. Identifica producto y, por defecto, sucursal (plataforma auto-detectada).

Required
qtynumber

Requerido. Nueva cantidad de stock.

Required
showboolean

Opcional. Visibilidad del stock en esa sucursal (true = visible, false = no visible). Si se omite, no se toca.

Optional
subsidiaryExternalIdstring

Opcional. extId de la sucursal. Úsalo para desambiguar cuando el externalId del producto se repite entre sucursales.

Optional
subsidiaryIdstring

Opcional. ID interno de la sucursal (alternativa a subsidiaryExternalId).

Optional

Ejemplo.

curl -v -X PUT
    --url 'https://api.public.lumarketo.cl/product/stock'
    --header 'Authorization: Bearer <access_token>'
    --data '{ "externalId": "777", "qty": 40, "show": false }'

Desambiguando la sucursal (externalId repetido entre sucursales):

curl -v -X PUT
    --url 'https://api.public.lumarketo.cl/product/stock'
    --header 'Authorization: Bearer <access_token>'
    --data '{ "externalId": "777", "qty": 40, "subsidiaryExternalId": "1546626" }'

Solo modifica entradas de stock ya existentes. La respuesta tiene el mismo formato que "Modificar producto" ({ success, message, data: {} }); success: false si el producto o la sucursal no existen, o si el externalId no tiene una sucursal con stock asociado.

Modificar productos en lote

Actualiza varios productos (price/name/description) en una sola solicitud. Debe incluir un token de acceso en el encabezado de 'Authorization' en todas las solicitudes.

Los items inválidos o cuyo producto no exista no detienen la operación: se procesan los válidos y los descartados se informan en data.errors.

Ratelimit

Cada 1 segundo

Cuerpo de la consulta

productsarray

Arreglo de productos a actualizar (mínimo 1, máximo 100 por request)

Required
skunumber

SKU del producto. Requerido salvo que envíes externalId.

Optional
externalIdstring

ID de integración (Fudo/Toteat) del producto, en children.integrations. Alternativa a sku — la plataforma se detecta automáticamente.

Optional
pricenumber

Nuevo precio del SKU (nivel child).

Optional
namestring

Nuevo nombre del producto (nivel producto).

Optional
descriptionstring

Nueva descripción del producto (nivel producto).

Optional
showboolean

Visibilidad del PRODUCTO entero (nivel producto). No confundir con la visibilidad del stock por sucursal.

Optional

Cada item se identifica con sku o externalId (uno de los dos) y debe incluir al menos uno de price/name/description/show. Los items inválidos o cuyo producto no exista no abortan el batch: se reportan en data.errors con index, sku, externalId y el mensaje.

Ejemplo.

curl -v -X PUT
    --url 'https://api.public.lumarketo.cl/product/batch'
    --header 'Authorization: Bearer <access_token>'
    --data '{ "products": [{ "sku": 50, "price": 2560, "show": false }, { "externalId": "777", "description": "Nueva desc" }] }'

Respuestas

Modificar stock en lote

Actualiza el stock de varios productos en una sola solicitud. Cada item lleva solo el externalId del producto (que ya identifica su sucursal) y qty. Debe incluir un token de acceso en el encabezado de 'Authorization'.

Cuerpo de la consulta

productsarray

Arreglo de items a actualizar (mínimo 1, máximo 100 por request)

Required
externalIdstring

Requerido. ID de integración (Fudo/Toteat) del producto. Identifica producto y, por defecto, sucursal (plataforma auto-detectada).

Required
qtynumber

Requerido. Nueva cantidad de stock.

Required
showboolean

Opcional. Visibilidad del stock en esa sucursal (true/false). Si se omite, no se toca.

Optional
subsidiaryExternalIdstring

Opcional. extId de la sucursal. Úsalo para desambiguar cuando el externalId del producto se repite entre sucursales.

Optional
subsidiaryIdstring

Opcional. ID interno de la sucursal (alternativa a subsidiaryExternalId).

Optional

Cada item trae externalId + qty (y show opcional). Por defecto el externalId ya identifica la sucursal (cada mapeo de integración guarda su sucursal).

⚠️ Importante — externalId repetido entre sucursales. Si el mismo externalId de producto se repite en varias sucursales, agregá por item la sucursal con subsidiaryExternalId (extId) o subsidiaryId (id interno) para diferenciarlas. Si se omite, la sucursal se deriva del externalId (solo sirve cuando ese id es único).

Los items inválidos, cuyo producto o sucursal no exista, o cuyo externalId no tenga una sucursal con stock, no abortan el batch: se reportan en data.errors con index, externalId y el mensaje.

Ejemplo.

curl -v -X PUT
    --url 'https://api.public.lumarketo.cl/product/stock/batch'
    --header 'Authorization: Bearer <access_token>'
    --data '{ "products": [{ "externalId": "777", "qty": 6000, "show": false }, { "externalId": "777", "qty": 30, "subsidiaryExternalId": "1546626" }] }'

La respuesta tiene el mismo formato que "Modificar productos en lote" ({ updated, total, errors }).

Productos por sucursal

Lista los productos disponibles en una sucursal. Requiere Bearer token.

Parámetros de consulta (query) — uno de los dos, + paginación opcional

subsidiaryIdstring

ID interno de la sucursal

Optional
externalIdstring

ID externo de la sucursal (extId); se resuelve al ID interno

Optional
pagenumber

Página a devolver (default 1)

Optional
limitnumber

Cantidad de items por página (default 20)

Optional
orderstring

Dirección del orden: asc | desc (default desc)

Optional
orderBystring

Campo por el cual ordenar (default CreatedDate)

Optional

Ejemplo.

curl -v -X GET
    --url 'https://api.public.lumarketo.cl/product/list?subsidiaryId=6403c1fbc961b1bdaaf7fd18&page=1&limit=20'
    --header 'Authorization: Bearer <access_token>'

data es un objeto paginado: { docs, totalDocs, limit, page, totalPages, hasNextPage, hasPrevPage }. docs es el arreglo de productos. Cada producto: { id, name, category, show, children: [{ sku, barcode, price, withDiscount, discount, show, stocks: [{ subsidiaryId, qty, show }], integrations: [{ subsidiaryId, productIdFudo, productCodeToteat, extId }] }] }.

Obtener producto

Obtiene un producto por su sku o por su externalId de integración (Fudo/Toteat, guardado en children.integrations). Requiere Bearer token.

Parámetros de consulta (query) — uno de los dos

skustring

SKU del producto

Optional
externalIdstring

ID de integración del producto (Fudo/Toteat). La plataforma se detecta automáticamente: busca en productIdFudo, productCodeToteat y extId.

Optional

Ejemplo.

curl -v -X GET
    --url 'https://api.public.lumarketo.cl/product?sku=931'
    --header 'Authorization: Bearer <access_token>'

Identificando por externalId de integración:

curl -v -X GET
    --url 'https://api.public.lumarketo.cl/product?externalId=777'
    --header 'Authorization: Bearer <access_token>'

data es un producto (mismo formato que "Productos por sucursal"), o null si no existe.