BRIDGE API - REST - Consulta de Maestros
Este documento detalla la importación de todos los maestros desde Bridge API
- Se invoca de la siguiente manera: https://[direccion_ip]:[puerto]/[modelo]/all o /[modelo]/[código]- Ejemplo: https://200.100.100.100:8090/items/all
- Se invoca vía POST
Tener en cuenta:
- Primero se debe invocar al servicio de autenticación para obtener un token.
- Cuando se llama a cualquier servicio este token se envía como un parámetro más de la llamada en el header (x-access-token.
- Si al llamar al servicio el token expiró, se recibirá respuesta de token inválido y se deberá volver a pedir uno nuevo.
Ejemplo de request con CURL:
curl --location --request POST 'https://200.100.100.100:8090/items/all' \ --header 'Content-Type: application/json' \ --data-raw '{ "clientId":"bridge-api-client", "clientSecret":"DA39A3EE5E6B4B0D3255BFEF95601890AFD80709" }'
- items es el nombre de la entidad a consultar
- clientId deben ser reemplazado por la autentificación
- clientSecret deben ser reemplazado por la autentificación
Consulta: todos o por código específico
- Se podrá consultar por /all obteniendo todos los registros de la entidad maestro consultada
- Ej: item/all
- Ej: item/all
- Se podrá consultar por un código específico para cualquiera de los servicios de maestros
- Ej: item/123
- Ej: item/123
- Se podrá consultar cualquiera de las entidades por todos o por su código
- /item/[code]
Parámetros adicionales para las consultas
Para todos los servicios se tiene un default de cantidad de registros a devolver de los primeros 3000
Si se desea ampliar la consulta, se debe enviar como parámetro el campo "max" pudiendo combinarse con el parámetro "skip" pudiendo ir solicitando la cantidad de registros siguientes en la respuesta. El skip indica la cantidad de registros a saltear en la próxima consulta.
Ejemplo "skip": 500 saltea los primeros 500 registros informando los siguientes hasta la cantidad máxima indicada en el parámetro "max".
En caso de ser la primer consulta, indicarlo en 0
{
"max": 2000,
"skip": 0
}
Descripción de las entidades:
Channel
CANAL: Indica el canal por el cual se recibe un pedido. Mediante esta entidad se podrá definir flujos de acción particular y la configuración de colas para la actualización de novedades desde BRIDGE.
https://[direccion_ip]:[puerto]/channel/all o https://[direccion_ip]:[puerto]/channel/[código]
Campo | Tipo | Descripción |
---|---|---|
description | String | Descripción o nombre del canal |
code | String | Código del canal |
Currency
MONEDA: indica la moneda asociada a los medios de pago de un pedido con su código y descripción (ej.: dólar, pesos argentinos, etc.)
https://[direccion_ip]:[puerto]/currency/all o https://[direccion_ip]:[puerto]/currency/[código]
Campo | Tipo | Descripción |
---|---|---|
description | String | Descripción o nombre de la moneda |
codeISO | String | Código ISO de la moneda |
Partyidentificationtype
TIPO DE IDENTIFICACION DE UN CLIENTE: indica el tipo de documento o identificación de un cliente con un código y descripción (ej.: DNI, pasaporte, CUIT, etc.)
https://[direccion_ip]:[puerto]/partyIdentificationType/all o https://[direccion_ip]:[puerto]/partyIdentificationType/[código]
Campo | Tipo | Descripción |
---|---|---|
code | Number | Código del tipo de identificación |
description | String | Nombre o descripción del tipo de identificación |
City
CIUDAD: indica el nombre de la ciudad de la dirección de un cliente. Se informa su código, nombre y provincia/estado al que pertenece la ciudad
https://[direccion_ip]:[puerto]/city/all o https://[direccion_ip]:[puerto]/city/[código]
Campo | Tipo | Descripción |
---|---|---|
code | String | Código de la ciudad |
name | String | Nombre de la ciudad |
state | String | Estado o provincia a la que pertenece la ciudad |
State
ESTADO o PROVINCIA: indica la provincia o estado que puede venir informado en la dirección de un cliente con su código, nombre y país al que pertenece
https://[direccion_ip]:[puerto]/state/all o https://[direccion_ip]:[puerto]/state/[código]
Campo | Tipo | Descripción |
---|---|---|
code | String | Código del estado o provincia |
name | String | Nombre del estado o provincia |
country | String | País al que pertenece el estado o provincia |
Country
PAIS: lista de países que pueden ser indicados en la dirección de un cliente
https://[direccion_ip]:[puerto]/country/all o https://[direccion_ip]:[puerto]/country/[código]
Campo | Tipo | Descripción |
---|---|---|
code | String | Código del país |
name | String | Nombre del país |
Item
ARTICULOS o ITEMS: SKU de los artículos del catálogo de BRIDGE informando su código, descripción y datos de dimensiones
https://[direccion_ip]:[puerto]/item/all o https://[direccion_ip]:[puerto]/item/[código]
Se podrá recibir una fecha en el body de la consulta (opcional)
Si se envía la fecha, la respuesta será de aquellos ítems cuya fecha de última actualización sea mayor o igual a la recibida en la consulta.
La fecha pudiera tener formato "DD-MM-YYYY" ó "YYYY-MM-DD" (no se considera la hora)
{
"date": "2023-04-12"
}
Se agrega un nuevo parámetro para obtener más información del ítem. Si no se envía el parámetro o se envía = false, solo se informarán los primeros campos del item (internalCode, description y datos de dimensión del item)
Disponible a partir de v7.4
{
"moreDetail": true
}
Campo | Tipo | Descripción | Ejemplo |
---|---|---|---|
internalCode | String | Código SKU del ítem | "internalCode": "C123456", |
description | String | Descripción del ítem | "description": "Articulo C123456", |
itemDepth | Decimal | Longitud del ítem | "itemDepth": "0", |
itemWidth | Decimal | Ancho del ítem | "itemWidth": "0", |
itemHeight | Decimal | Altura del ítem | "itemHeight": "0", |
itemGrossWeight | Decimal | Peso bruto del ítem | "itemGrossWeight": "0", |
disabled | Boolean | Indica si se encuentra deshabilitado | "disabled": false, |
notForSale | Boolean | Indicador de si está disponible para la venta | "notForSale": false, |
discountsNotAllowed | Boolean | Indicador si permite recibir descuentos | "discountsNotAllowed": false, |
priceRequired | Boolean | Indicador si requiere el ingreso de precio al ser vendido | "priceRequired": false, |
sellerRequired | Boolean | Indicador si requiere el ingreso del vendedor | "sellerRequired": false, |
magnitudeRequired | Boolean | Indicador si requiere el ingreso de la magnitud/peso | "magnitudeRequired": false, |
quantityRequired | Boolean | Indicador si requiere el ingreso de la cantidad a vender | "quantityRequired": false, |
quantityAllowed | Boolean | Indicador si permite la venta por cantidad | "quantityAllowed": true, |
restrictedSalesHour | Boolean | Indicador si no se permite su venta en horario restringido | "restrictedSalesHour": true, |
recordInExceptionLog | Boolean | Indica si se guarda su venta en el log de excepciones | "recordInExceptionLog": false, |
authorizationRequired | Boolean | Indica si su venta requiere de autorización del supervisor | "authorizationRequired": false, |
foodStampTender | Boolean | Indica si aplica para pago con cupones de alimento | "foodStampTender": false, |
serialNumberRequired | Boolean | Indica si requiere del nro de serie | "serialNumberRequired": false, |
refundNotAllowed | Boolean | Indica si permite su devolución | "refundNotAllowed": false, |
genericItem | Boolean | Indica si es un item del tipo genérico (solo utilizado para items de recargo) | "genericItem": false, |
fullDescription | String | Descripción extendida | "fullDescription": "Articulo C123456 con atributos", |
kitComponent | Boolean | Indica si es un componente de un kit (hijo) | "kitComponent": false, |
stockReservationRequired | Boolean | Indica si requeire reserva de stock (para validar si tiene stock teórico para su venta y deja registro de su reserva) | "stockReservationRequired": false, |
importDocReq | Boolean | Indica si requiere lote o despacho | |
price | numberDecimal | Precio de venta del maestro | "price": "525.0000", |
promotionalPrice | numberDecimal | Precio promocional | "promotionalPrice": "0.0000", |
promotionalPriceStart | date | Vigencia inicio de precio promocional | "promotionalPriceStart": "1969-12-31T00:00:00", |
promotionalPriceEnd | date | Vigencia fin de precio promocional | "promotionalPriceEnd": "1969-12-31T00:00:00", |
unitCost | numberDecimal | Precio de costo | "unitCost": "230.0000", |
updatedAt | date | Fecha de ultima actualización | "updatedAt": "2023-03-30T14:47:55", |
ivaType | String | Código del tipo de iva | "ivaType": "2", |
itemType | |||
calculateCommision | Boolean | Indicador si calcula comisión | "calculateCommission": false, |
detailedDescription | String | Descripción detallada | "detailedDescription": "Articulo C123456 con atributos", |
unitOfMeasure | String | Código de la unidad de medida | "unitOfMeasure": "u", |
location | String | Código del depósito | "location": "DEP1", |
taxCategory | String | Código de categoría de impuestos (para percepciones de IVA o IB en Argentina) | "taxCategory": "G", |
hierarchyGroup | String | Código de la categoría departamental | "hierarchyGroup": "ALMA", |
brand | String | Código de la marca | "brand": "MERCEDES", |
relevance | Number | Relevancia (para el ordenamiento en búsquedas) | "relevance": 1, |
supplier | String | Código del proveedor | "supplier": "37719221", |
manufacturer | String | Código del fabricante | "manufacturer": "FAB1" |
published | Boolean | Indica si se publica o no (no está en uso) | "published": true, |
upc | String | Código universal de producto (utilizado para agrupar artículos que suman para la lista de precios mayoristas) | "upc": "C123", |
exemptFlag | Boolean | Indica si es un item exento de impuestos | "exemptFlag": false, |
maxStock | Number | Cantidad máxima de stock (para pedido sugerido) | "maxStock": "100", |
securituStock | Number | Cantidad de stock de seguridad (para pedido sugerido) | "securityStock": "5", |
blockedForIcd | Boolean | Indica si se encuentra bloqueado para compras en docs de inventario | "blockedForIcd": true, |
requiresPrescriptionFlag | Boolean | Indica si requiere receta (vertical farmacia) | "requiresPrescriptionFlag": false, |
stockItem | Lista | Indica si es un ítem que maneja stock y sus características | "stockItem": { |
attributes: [ ], | Lista | Lista de atributos conteniendo por cada uno:
| "attributes": [ |
barcode: [ | Lista | Lista de códigos de barra asociados al ítem | "barcode": [ |
"images": [ ], | Lista | Lista de imágenes asociadas al ítem | "images": [ "addressUrl": https://static.vecteezy.com/system/resources/previews/001/187/438/original/heart-png.png, "priority": 1, "addressUrl": https://png.pngtree.com/png-clipart/20190515/original/pngtree-colorful-smoke-effect-frame-border-png-image_3687571.jpg, "priority": 2, "channels": [ |
La unidad de peso: “kg”
Para las dimensiones: “cm”
Ejemplo de respuesta con el parámetro "moreDetail": true
itemPriceCurrent
Precios vigentes: informa los precios vigentes para una tienda/canal según fuera obtenido por el servicio "itemPriceBuildProcess"
Disponible a partir de v7.4
https://[direccion_ip]:[puerto]/itemPriceCurrent/all
En el body se deberá informar al menos uno de los dos datos requeridos: store y/o channel (código de tienda y/o código de canal)
- Si se solicita store, se informarán aquellos precios vigentes de los artículos de esa tienda (según lo informado en el reporte de precios vigentes, tabla itemPriceCurrent)
- Si se solicita channel, se informarán aquellos precios vigentes de los artículos de ese canal para toda tienda (según lo informado en el reporte de precios vigentes, tabla itemPriceCurrent)
- Si se solicita store y channel, se informarán aquellos precios vigentes de los artículos de ese canal para esa tienda (según lo informado en el reporte de precios vigentes, tabla itemPriceCurrent)
- Se recomienda el uso de los parámetros max y skip (por el volumen de información que pudiera devolver)
{
"store": "1",
"channel": "online",
"max": 5000,
"skip": 1
}
Parámetros adicionales para las consultas
Para todos los servicios se tiene un default de cantidad de registros a devolver de los primeros 3000
Si se desea ampliar la consulta, se debe enviar como parámetro el campo "max" pudiendo combinarse con el parámetro "skip" pudiendo ir solicitando tipo paginada la respuesta. Ej: max 2000 y skip: 1 los primeros 2000 y luego con skip: 2, los otros siguientes 2000.
{
"max": 2000,
"skip": 1
}
Campo | Tipo | Descripción | Ejemplo |
---|---|---|---|
internalCode | String | Código de la tienda | "internalCode": "16122022", |
name | String | Nombre de la tienda | "name": "Artículo Crédito", |
store | String | Código de la tienda | "store": "1" |
channel | String | Código del canal | "channel": "online", |
origin | String | Origen del precio informado "ListaPrecios" (ó "Catalogo" para el maestro de ítems si no está en lista de precios) | "origin": "ListaPrecios", |
price | Number | Precio de venta | "price": 175667, |
unitCost | Number | Precio de costo | "unitCost": 10, |
sellingPriceListNumber | Number | Nro de lista de precios | "sellingPriceListNumber": 99, |
validFrom | Date | Fecha de validez desde | "validFrom": "2022-12-19T00:00:00", |
validTo | Date | Fecha de validez hasta | "validTo": "2028-01-19T23:59:59", |
marginAsNumber | Number | Margen (margen del precio de venta sobre el precio de costo) | "marginAsNumber": 175657, |
marginAsPercent | Number | Porcentaje de margen (porcentaje de margen del precio de venta sobre el precio de costo) | "marginAsPercent": 1756570, |
barcode | String | Código de barras (sólo si la lista de precios tuviera un código asignado) | "barcode": null, |
updatedAt | Date | Fecha de actualización |
BrandAttribute
Atributos de una marca: indica la lista de atributos de una marca
https://[direccion_ip]:[puerto]/brandAttribute/all o https://[direccion_ip]:[puerto]/brandAttribute/[código]
Respuesta
Campo | Tipo | Descripción | Ejemplo |
---|---|---|---|
brandName | String | Código de la tienda | "Puma" |
brandDescription | String | Nombre o descripción de la marca | "Indumentaria" |
code | String | Código del atributo | "Talle" |
option | String | Valor del atributo | "XL" |
updatedAt | date | Fecha de actualización | "2023-07-17T17:54:33" |
disabled | boolean | Indicador si está habilitado o no | false |
{ "ack": 0, "data": [ { "disabled": false, "brandDescription": "paracetamol blister x30", "brandName": "Geniol", "code": "COLOR", "option": "AZUL", "updatedAt": "2023-07-17T17:54:33" }, { "disabled": false, "code": "Talle", "option": "XL", "brandDescription": "Indumentaria", "brandName": "Puma", "updatedAt": null } ] }
Store
TIENDA: indica la lista de tiendas que tiene configuradas BRIDGE
https://[direccion_ip]:[puerto]/store/all o https://[direccion_ip]:[puerto]/store/[código]
Campo | Tipo | Descripción |
---|---|---|
code | String | Código de la tienda |
name | String | Nombre de la tienda |
digitalStore | Boolean | Indicador si es tienda digital o no |
address | String | Dirección de la tienda |
addressNumber | String | Número de la dirección de la tienda |
city | String | Ciudad de la tienda |
zipCode | String | Código postal de la tienda |
Location
DEPOSITO: indica la locación del depósito o warehouse donde reside el stock de los productos
https://[direccion_ip]:[puerto]/location/all o https://[direccion_ip]:[puerto]/location/[código]
Campo | Tipo | Descripción |
---|---|---|
code | String | Código de depósito |
name | String | Nombre del depósito |
locationStores (lista de las tiendas en las cuales se encuentra ese depósito) array | ||
store | String | Código de la Tienda a la que pertenece el depósito |
erpCode | String | Código del ERP del depósito |
disabled | Boolean | Indicador de deshabilitado |
crossSaleAllowed | Boolean | Indicador si permite la venta de otra tienda |
Orderpickuplocation
CENTRO DE RETIRO: indica el punto o lugar de retiro de un pedido con sus datos de dirección. También puede ser una tienda
https://[direccion_ip]:[puerto]/orderPickupLocation/all o https://[direccion_ip]:[puerto]/orderPickupLocation/[código]
Campo | Tipo | Descripción |
---|---|---|
code | String | Código de centro de retiro |
name | String | Nombre de centro del retiro |
address | String | Dirección del centro del retiro |
adressNumber | String | Número de la dirección del centro del retiro |
state | String | Estado o provincia del centro del retiro |
city | String | Ciudad del centro del retiro |
zipCode | String | Código postal del centro del retiro |
telephone | String | Teléfono del centro del retiro |
String | Mail del centro del retiro | |
isStore | boolean | Indicador si es o no una tienda |
Tender
MEDIO DE PAGO: indica el medio de pago que puede tener asociado el pedido como parte de su cobranza
https://[direccion_ip]:[puerto]/tender/all o https://[direccion_ip]:[puerto]/tender/[código]
Campo | Tipo | Descripción |
---|---|---|
code | String | Código del medio de pago |
descriptor | String | Descripción del medio de pago |
ORDERTYPE
https://[direccion_ip]:[puerto]/orderType/all o https://[direccion_ip]:[puerto]/orderType/[código]
Campo | Tipo | Descripción |
---|---|---|
code | String | Código del tipo de orden |
name | String | Nombre del tipo de orden |
ORDERSTATE
ESTADO DE UNA ORDEN o PEDIDO: indica los diferentes estados de un pedido con su código, nombre y descripción
https://[direccion_ip]:[puerto]/orderState/all o https://[direccion_ip]:[puerto]/orderState/[código]
Campo | Tipo | Descripción |
---|---|---|
code | String | Código del estado de un pedido |
name | String | Nombre del estado de un pedido |
description | String | Descripción del estado de un pedido |
ORDERDELIVERYCOMPANY
OPERADOR LOGISTICO: indica los diferentes distribuidores u operadores logísticos con su código, nombre y descripción.
https://[direccion_ip]:[puerto]/orderDeliveryCompany/all]
Campo | Tipo | Descripción |
---|---|---|
code | String | Código del operador logístico |
name | String | Nombre del operador logístico |
TaxJurisdiction
Jurisdicción impositiva: indica las jurisdicciones a las que se podrá asociar una registración fiscal de un cliente del tipo empresa (organization)
https://[direccion_ip]:[puerto]/taxJurisdiction/all o https://[direccion_ip]:[puerto]/taxJurisdiction/[código]
Campo | Tipo | Descripción |
code | String | Código de la jurisdicción |
name | String | Nombre de la jurisdicción |
TaxJurisdictionTaxType
Categoría impositiva: indica las diferentes categorías impositivas jurisdicciones a las que se podrá asociar una registración fiscal de un cliente del tipo empresa (organization)
https://[direccion_ip]:[puerto]/taxJurisdictionTaxType/all
Campo | Tipo | Descripción |
jurisdictionCode | String | Código de la jurisdicción |
jurisdictionName | String | Nombre de la jurisdicción |
taxTypeCode | String | Código del tipo de impuesto (IB o IVA) |
taxTypeName | String | Nombre del tipo de impuesto |
taxCategoryCode | String | Código de categoría impositiva |
taxCategoryName | String | Nombre de la categoría impositiva |