BRIDGE API - REST - Consulta de Maestros



REVISIONES
FechaVersiónDescripciónAutor

1.0Creación del documento

 

1.1Se ajusta el método a POST en lugar de GET y el default resultado a 3000

 

1.2

Se actualiza servicio ítem y de precios vigentes

 

1.3

Se agrega información de imágenes al item

 

1.4

Se ajusta nota de max y skip

 

1.5

Se agregan datos al servicio item del campo url

 

1.6

Se agrega la lista de canales que pueda haberse asociado a una imagen de un item

 

1.7

Se agrega nuevo servicio brandAttribute para obtener los atributos asociados a una marca

 

1.8

Se agrega la lista de precios fijos para el servicio itemPriceCurrent (fixedPrice) 

 

1.9

Se agregan los servicios de consulta de Jerarquías y Proveedores.



CONTENIDO




Este documento detalla la importación de todos los maestros desde Bridge API

  1. 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
  2. Se invoca vía POST


Tener en cuenta:

  1. Primero se debe invocar al servicio de autenticación para obtener un token.
  2. 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.
  3.  Si al llamar al servicio el token expiró, se recibirá respuesta de token inválido y se deberá volver a pedir uno nuevo.

Ver BRIDGE API - REST – Autenticación: token


Ejemplo de request con CURL: 

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

  • Se podrá consultar por un código específico para cualquiera de los servicios de maestros
    • 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]


CampoTipoDescripción
descriptionStringDescripción o nombre del canal
codeStringCódigo del canal
storesChannelLista

Lista de tiendas para el canal 

  • por cada tienda se indica
    • código de la tienda (store)
    • código de la tienda/comercio asignado al canal (storeId) 
    • indicador de habilitado o no para el canal (disabledForChannel)
tendersLista

Lista de medios de pago habilitados para el canal

(por cada medio de pago se indica su código: tenderCode)

Ejemplo de respuesta
{
   "ack":0,
   "data":[
      {
         "description":"MARTI",
         "code":"FARMA",
         "storesChannel":[
            {
               "_id":"6481fc0199927d1b9c8e994b",
               "store":"1",
               "disabledForChannel":true
            },
            {
               "_id":"6481fc0199927d1b9c8e994c",
               "store":"2",
               "disabledForChannel":true
            }
         ],
         "disabled":false,
         "tenders":[
            {
               "tenderCode":"Peso"
            },
            {
               "tenderCode":"NCC"
            }
         ]
      }
   ]
}




  • 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]

CampoTipoDescripción
descriptionStringDescripción o nombre de la moneda
codeISOStringCódigo ISO de la moneda
Ejemplo de respuesta
{
	"ack":0,
	"data":[{ 
    	"description" : "Dolar", 
	    "codeISO" : "USD"
	}]
}




  • 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]

CampoTipoDescripción
codeNumberCódigo del tipo de identificación
descriptionStringNombre o descripción del tipo de identificación


Ejemplo de respuesta
{
	"ack":0,
	"data":[{ 
    "code" : 1, 
    "description" : "DNI"
}]
}




  • 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] 

CampoTipoDescripción
codeStringCódigo de la ciudad
nameStringNombre de la ciudad
stateStringEstado o provincia a la que pertenece la ciudad


Ejemplo de respuesta
{
	"ack":0,
	"data":[{ 
    "code" : "ENT_0136", 
    "name" : "Irazusta", 
    "state" : "BSAS"
}]
}




  • 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]

CampoTipoDescripción
codeStringCódigo del estado o provincia
nameStringNombre del estado o provincia
countryStringPaís al que pertenece el estado o provincia
Ejemplo de respuesta
{
	"ack":0,
	"data":[{ 
    "code" : "BSAS", 
    "name" : "BUENOS AIRES", 
    "country" : "ARG"
}]
}




  • 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]

CampoTipoDescripción
codeStringCódigo del país
nameStringNombre del país
Ejemplo de respuesta
{
	"ack":0,
	"data":[{ 
    "code" : "ARG", 
    "name" : "Argentina"
}]
}




  • 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
}


CampoTipoDescripciónEjemplo
internalCodeStringCódigo SKU del ítem

"internalCode""C123456",

descriptionStringDescripción del ítem

"description""Articulo C123456",

itemDepthDecimalLongitud del ítem

 "itemDepth""0",

itemWidthDecimalAncho del ítem

"itemWidth""0",

itemHeight DecimalAltura del ítem

"itemHeight""0",

itemGrossWeightDecimalPeso bruto del ítem

"itemGrossWeight""0",

disabledBooleanIndica si se encuentra deshabilitado

 "disabled"false,


notForSaleBooleanIndicador de si está disponible para la venta

"notForSale"false,

discountsNotAllowedBooleanIndicador si permite recibir descuentos 

"discountsNotAllowed"false,

priceRequiredBooleanIndicador si requiere el ingreso de precio al ser vendido

"priceRequired"false,

sellerRequiredBooleanIndicador si requiere el ingreso del vendedor

"sellerRequired"false,


magnitudeRequiredBooleanIndicador si requiere el ingreso de la magnitud/peso

"magnitudeRequired"false,

quantityRequiredBooleanIndicador si requiere el ingreso de la cantidad a vender

"quantityRequired"false,

quantityAllowedBooleanIndicador si permite la venta por cantidad

"quantityAllowed"true,

restrictedSalesHourBooleanIndicador si no se permite su venta en horario restringido 

 "restrictedSalesHour"true,

recordInExceptionLogBooleanIndica si se guarda su venta en el log de excepciones 

"recordInExceptionLog"false,

authorizationRequiredBooleanIndica si su venta requiere de autorización del supervisor

"authorizationRequired"false,

foodStampTenderBooleanIndica si aplica para pago con cupones de alimento

 "foodStampTender"false,

serialNumberRequiredBooleanIndica si requiere del nro de serie

"serialNumberRequired"false,

refundNotAllowedBooleanIndica si permite su devolución

 "refundNotAllowed"false,

genericItemBooleanIndica si es un item del tipo genérico (solo utilizado para items de recargo)

"genericItem"false,

fullDescriptionStringDescripción extendida "fullDescription""Articulo C123456 con atributos",
kitComponentBooleanIndica si es un componente de un kit (hijo) 

 "kitComponent"false,

stockReservationRequiredBooleanIndica si requeire reserva de stock (para validar si tiene stock teórico para su venta y deja registro de su reserva) 

 "stockReservationRequired"false,

importDocReqBooleanIndica si requiere lote o despacho
pricenumberDecimalPrecio de venta del maestro

 "price""525.0000",

promotionalPricenumberDecimalPrecio promocional

"promotionalPrice""0.0000",

promotionalPriceStartdateVigencia inicio de precio promocional

"promotionalPriceStart""1969-12-31T00:00:00",

promotionalPriceEnddateVigencia fin de precio promocional

"promotionalPriceEnd""1969-12-31T00:00:00",

unitCostnumberDecimalPrecio de costo

 "unitCost""230.0000",

updatedAtdateFecha de ultima actualización

 "updatedAt""2023-03-30T14:47:55",


ivaTypeStringCódigo del tipo de iva

"ivaType""2",

itemType


calculateCommisionBooleanIndicador si calcula comisión

"calculateCommission"false,


detailedDescriptionStringDescripción detallada

 "detailedDescription""Articulo C123456 con atributos",


unitOfMeasureStringCódigo de la unidad de medida

"unitOfMeasure""u",

locationStringCódigo del depósito

  "location""DEP1",


taxCategoryStringCódigo de categoría de impuestos (para percepciones de IVA o IB en Argentina) 

 "taxCategory""G",

hierarchyGroup

StringCódigo de la categoría departamental

"hierarchyGroup""ALMA",


brand

StringCódigo de la marca

 "brand""MERCEDES",


relevance

NumberRelevancia (para el ordenamiento en búsquedas)

"relevance"1,


supplier

StringCódigo del proveedor

"supplier""37719221",


manufacturer

StringCódigo del fabricante

 "manufacturer""FAB1"


published

BooleanIndica si se publica o no (no está en uso) 

 "published"true,


upc

StringCódigo universal de producto (utilizado para agrupar artículos que suman para la lista de precios mayoristas)

"upc""C123",

exemptFlagBooleanIndica si es un item exento de impuestos "exemptFlag"false,
maxStockNumberCantidad máxima de stock (para pedido sugerido)

"maxStock""100",     

securituStockNumberCantidad de stock de seguridad (para pedido sugerido) 

"securityStock""5",

blockedForIcdBooleanIndica si se encuentra bloqueado para compras en docs de inventario

 "blockedForIcd"true,


requiresPrescriptionFlagBooleanIndica si requiere receta (vertical farmacia)

  "requiresPrescriptionFlag"false,

stockItemListaIndica si es un ítem que maneja stock y sus características

"stockItem": {
                "looseWeight""false",
                "itemDepth""0",
                "itemHeight""0",
                "itemNetWeight""0",
                "itemCost""0",
                "gainWeight""false",
                "baseCost""0",
                "unitsPerSellingUnit""0",
                "itemGrossWeight""0",
                "itemDiameter""0",
                "itemDrainedWeight""0",
                "itemWidth""0",
                "netCost""0",
                "availableDate""Tue Mar 28 2023 19:12:34 GMT-0300 (hora estándar de Argentina)"
            }

attributes:

[           

],

Lista

Lista de atributos conteniendo por cada uno:

  • código del atributo
  • nombre del atributo
  • flag si puede ser editado en el POS
  • opción o valor del atributo para el artículo 

"attributes": [
                {
                    "code": "23001",
                    "name": "Envase de plástico",
                    "editOptionsFlag": true,
                    "option": "true"
                },             
                {
                    "code": "Rec",
                    "name": "Receta",
                    "editOptionsFlag": true,
                    "option": "true"
                }
            ]

barcode: [

            ],

Lista

Lista de códigos de barra asociados al ítem

 "barcode": [
                "77123456789",
                "77111111111",
                "44332211"
            ],

"images": [

  ],

Lista

Lista de imágenes asociadas al ítem

"images": [
{
"internalCode": "C123456",
"filename": "C123456_1686068382842.jpg",
"created": "2023-06-06T13:19:42",
"directory": "C:/napse/Central74/images\/item/C123456/",

"addressUrl": https://static.vecteezy.com/system/resources/previews/001/187/438/original/heart-png.png,

"priority": 1,
"isActive": true
},
{
"internalCode": "C123456",
"filename": "C123456_1686143316817.jpg",
"created": "2023-06-07T10:08:36",
"directory": "C:/napse/Central74/images\/item/C123456/",

"addressUrl": https://png.pngtree.com/png-clipart/20190515/original/pngtree-colorful-smoke-effect-frame-border-png-image_3687571.jpg,

"priority": 2,
"isActive": true

 "channels": [
            {
              "channel": "5f36ecea202cb01e8bbc9d2b",
              "channelCode": "online",
              "priority": 1
            }
          ]
}],


La unidad de peso: “kg

Para las dimensiones:  “cm


Ejemplo de respuesta
{   
 "ack": 0,
    "data": [
        {
            "internalCode": "GF01",
            "description": "TV65 4K",
            "itemDepth": "220.50",
            "itemWidth": "220.50",
            "itemHeight": "220.50",
            "itemGrossWeight": "5"
        }

  ]
}


Ejemplo de respuesta con el parámetro "moreDetail"true

Ejemplo de respuesta
{
    "ack": 0,
    "data": [
        {
            "attributes": [
                {
                    "code": "23001",
                    "name": "Envase de plástico",
                    "editOptionsFlag": true,
                    "option": "true"
                },
                {
                    "code": "23006",
                    "name": "Fecha de envase",
                    "editOptionsFlag": true,
                    "option": "2022-10-01"
                },
                {
                    "code": "23008",
                    "name": "Laboratorio",
                    "editOptionsFlag": true,
                    "option": "Gador"
                },
                {
                    "code": "Rec",
                    "name": "Receta",
                    "editOptionsFlag": true,
                    "option": "true"
                }
            ],
            "internalCode": "C123456",
            "description": "Articulo C123456",
            "price": "525.0000",
            "unitCost": "230.0000",
            "updatedAt": "2023-03-30T14:47:55",
            "disabled": false,
            "notForSale": false,
            "discountsNotAllowed": false,
            "priceRequired": false,
            "sellerRequired": false,
            "magnitudeRequired": false,
            "quantityRequired": false,
            "quantityAllowed": true,
            "restrictedSalesHour": true,
            "recordInExceptionLog": false,
            "authorizationRequired": false,
            "foodStampTender": false,
            "serialNumberRequired": false,
            "refundNotAllowed": false,
            "kitComponent": false,
            "stockReservationRequired": false,
            "genericItem": false,
            "fullDescription": "Articulo C123456 con atributos",
            "promotionalPrice": "0.0000",
            "calculateCommission": false,
            "detailedDescription": "Articulo C123456 con atributos",
            "unitOfMeasure": "u",
            "ivaType": "2",
            "location": "DEP1",
            "taxCategory": "G",
            "itemDepth": "0",
            "itemWidth": "0",
            "itemHeight": "0",
            "itemGrossWeight": "0",
            "hierarchyGroup": "ALMA",
            "brand": "MERCEDES",
            "relevance": 1,
            "supplier": "37719221",
            "published": true,
            "upc": "C123",
            "exemptFlag": false,
            "maxStock": "100",
            "securityStock": "5",
            "blockedForIcd": true,
            "requiresPrescriptionFlag": false,
            "manufacturer": "FAB1",
            "images": [
                {
                    "internalCode": "C123456",
                    "filename": "C123456_1686068382842.jpg",
                    "created": "2023-06-06T13:19:42",
                    "directory": "C:/napse/Central74/images\/item/C123456/",
                    "priority": 1,
                    "isActive": true
                },
                {
                    "internalCode": "C123456",
                    "filename": "C123456_1686143316817.jpg",
                    "created": "2023-06-07T10:08:36",
                    "directory": "C:/napse/Central74/images\/item/C123456/",
                    "priority": 2,
                    "isActive": true
                }],
             "barcode": [
                "77123456789",
                "77111111111",
                "44332211"
            ],
            "stockItem": {
                "looseWeight": "false",
                "itemDepth": "0",
                "itemHeight": "0",
                "itemNetWeight": "0",
                "itemCost": "0",
                "gainWeight": "false",
                "baseCost": "0",
                "unitsPerSellingUnit": "0",
                "itemGrossWeight": "0",
                "itemDiameter": "0",
                "itemDrainedWeight": "0",
                "itemWidth": "0",
                "netCost": "0",
                "availableDate": "Tue Mar 28 2023 19:12:34 GMT-0300 (hora estándar de Argentina)"
            }
        }
    ]
}




  • 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
}

CampoTipoDescripciónEjemplo
internalCodeStringCódigo de la tienda"internalCode": "16122022",
nameStringNombre de la tienda"name": "Artículo Crédito",
storeStringCódigo de la tienda "store": "1"
channelStringCódigo del canal"channel": "online",
originString

Origen del precio informado

"ListaPrecios"

(ó "Catalogo" para el maestro de ítems si no está en lista de precios)

"origin": "ListaPrecios",
priceNumberPrecio de venta "price": 175667,
unitCostNumberPrecio de costo"unitCost": 10,
sellingPriceListNumberNumberNro de lista de precios "sellingPriceListNumber": 99,
validFromDateFecha de validez desde "validFrom": "2022-12-19T00:00:00",    
validToDateFecha de validez hasta"validTo": "2028-01-19T23:59:59",
marginAsNumberNumberMargen (margen del precio de venta sobre el precio de costo) "marginAsNumber": 175657,
marginAsPercentNumberPorcentaje de margen (porcentaje de margen del precio de venta sobre el precio de costo)"marginAsPercent": 1756570,
barcodeString

Código de barras

(sólo si la lista de precios tuviera un código asignado)

"barcode": null,
updatedAtDate

Fecha de actualización


itemFixedPrices Lista 

Lista con los precios fijos que puede tener asociado un artículo

Estos son los que se hayan asociado desde Administración/artículos/precios fijos por canal

Por cada precio fijo (vigente o futuro) se informa:

  • código del artículo
  • código del canal
  • precio fijo 
  • fecha de vigencia desde
  • fecha de vigencia hasta
  • descripción del precio fijo 

 "itemFixedPrices": [

{ "internalCode": "c10",

"channelCode": "Farma",

"fixedPrice": "2500",

"validFrom": "2024-01-09T11:50:00", "validTo": "2024-01-24T15:00:00", "description": "" } ],


Ejemplo de respuesta
Body
{
  "store": "1",
  "channel": "online",
  "max": 50
}

Respuesta
{
  "ack": 0,
  "data": [
    {
      "_id": "642d689eec1542a9e5b37d6b",
      "price": 175667,
      "unitCost": 10,
      "sellingPriceListNumber": 99,
      "marginAsNumber": 175657,
      "marginAsPercent": 1756570,
      "internalCode": "16122022",
      "origin": "ListaPrecios",
      "name": "Artículo Crédito",
      "validFrom": "2022-12-19T00:00:00",
      "validTo": "2028-01-19T23:59:59",
      "barcode": null,
      "channel": "online",
      "itemFixedPrices": [
                {
                    "internalCode": "c10",
                    "channelCode": "Farma",
                    "fixedPrice": {
                        "$numberDecimal": "2500"
                    },
                    "validFrom": "2024-01-09T11:50:00",
                    "validTo": "2024-01-24T15:00:00",
                    "description": ""
                }
            ],
    "store": "1"
    }
  ]
}




  • 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

CampoTipoDescripciónEjemplo 
brandNameStringCódigo de la tienda

"Puma"

brandDescriptionStringNombre o descripción de la marca

"Indumentaria"

codeStringCódigo del atributo

"Talle"

optionStringValor del atributo

"XL"

updatedAtdateFecha de actualización

"2023-07-17T17:54:33"

disabledbooleanIndicador 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]

CampoTipoDescripción
codeStringCódigo de la tienda
nameStringNombre de la tienda
digitalStoreBooleanIndicador si es tienda digital o no
addressStringDirección de la tienda
addressNumberStringNúmero de la dirección de la tienda
cityStringCiudad de la tienda
zipCodeStringCódigo postal de la tienda
Ejemplo de respuesta
{
	"ack":0,
	"data":[{ 
    "code" : "1", 
    "name" : "UNICENTER",
	"digitalStore": false, 
    "address":"Venezuela",
    "addressNumber":"1234",
    "city": "ENT123",
    "zipCode" : "C1221" 
     },
 	{
	"code": "online",
	"name": "Bridge Online",
	"digitalStore": true,
    "address":"Jujuy",
    "addressNumber":"1134",
    "city": "ENT123",
    "zipCode" : "A3215"
	}
	]
}




  • 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]

CampoTipoDescripción
codeStringCódigo de depósito
nameStringNombre del depósito
locationStores (lista de las tiendas en las cuales se encuentra ese depósito) array
storeStringCódigo de la Tienda a la que pertenece el depósito
erpCodeStringCódigo del ERP del depósito
disabledBooleanIndicador de deshabilitado

crossSaleAllowed

BooleanIndicador si permite la venta de otra tienda
Ejemplo de respuesta
{
	"ack":0,
	"data":[{ 
    "code" : "DEP1", 
    "name" : "Ventas VENTA 2", 
    "locationStores" :[ {
        "store": "Unicenter",
        "erpCode": "7130",
        "disabled": "false",
        "crossSaleAllowed": "false"
}]
}]
}




  • 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]

CampoTipoDescripción
codeStringCódigo de centro de retiro
nameStringNombre de centro del retiro
addressStringDirección del centro del retiro
adressNumberStringNúmero de la dirección del centro del retiro
stateStringEstado o provincia del centro del retiro
cityStringCiudad del centro del retiro
zipCodeStringCódigo postal del centro del retiro
telephoneStringTeléfono del centro del retiro
mailStringMail del centro del retiro
isStorebooleanIndicador si es o no una tienda
Ejemplo de respuesta
{
	"ack":0,
	"data":[{ 
    "code" : "Codigo1", 
    "name" : "Nombre 1",
    "address":"Venezuela",
    "addressNumber":"1234",
    "state": "B123",
    "city": "ENT123",
    "zipCode" : "Codigo1",
    "telephone" : "3253265",
    "mail": "[email protected]",
    "isStore" : "true"
}]
}




  • 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]

CampoTipoDescripción
codeStringCódigo del medio de pago
descriptorStringDescripción del medio de pago
Ejemplo de respuesta
{
	"ack":0,
	"data":[{ 
    "code" : "Peso", 
    "descriptor" : "EFECTIVO"
}
]
}


  • ORDERTYPE

TIPO DE ORDEN o PEDIDO: indica el tipo de pedido (ej: order)

https://[direccion_ip]:[puerto]/orderType/all  o https://[direccion_ip]:[puerto]/orderType/[código]

CampoTipoDescripción
codeStringCódigo del tipo de orden
nameStringNombre del tipo de orden
Ejemplo de respuesta
{
	"ack":0,
	"data":[
	{ 
    	"code" : "order", 
    	"name" : "Pedido",
	}
]
}




  • 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]

CampoTipoDescripción
codeStringCódigo del estado de un pedido
nameStringNombre del estado de un pedido

description

StringDescripción del estado de un pedido
Ejemplo de respuesta
{
	"ack":0,
	"data":[
	{ 
    	"code" : "confirmed", 
    	"name" : "Confirmado",
		"description" : "El pedido se ha confirmado en cuanto a la cantidad de productos a ingresar."
	}
]
}


  • 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]

CampoTipoDescripción
codeStringCódigo del operador logístico
nameStringNombre del operador logístico


Ejemplo de respuesta
{
    "ack": 0,
    "data": [
        {
            "code": "Andreani",
            "name": "Andreani"
        }
    ]
}


  • 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

Ejemplo de respuesta
{
    "ack":0,
    "data":[{
	    "code" : "BA",
    	"name" : "Buenos Aires"
	},		
	{
    "code" : "CABA",
    "name" : "CABA"
		}]
}


  • 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

Ejemplo de respuesta
{
    "ack":0,
    "data":[{
 		" jurisdictionCode" : "ARG",
	    " jurisdictionName" : "Argentina",
	    " taxTypeCode" : "IVA",
	    " taxTypeName" : "IVA",
	    " taxCategoryCode" : "RI",
	    " taxCategoryName " : "Responsable inscripto"
		}]
}
  • Supplier

Proveedores: Por medio de este servicio, se podrá consultar las distintos proveedores teniendo en cuenta los parámetros enviados:

https://[direccion_ip]:[puerto]/supplier/all 


Propiedad

Tipo de dato

Descripción

Requerido

code

String (25)

Código del Proveedor

No


name

String (25)

Nombre del Proveedor

No

address

String (25)

Dirección del Proveedor

No

cuit

String (25)

Identificación fiscal del Proveedor

No

email

string (25)

Email del Proveedor

No

telephone

number (25)

Teléfono del Proveedor

No

fantasyName

String (25)

Nombre de Fantasía del Proveedor

No


Ejemplo 1: Filtro por todos los proveedores

Url: http://10.4.203.65:8081/supplier/all

Ejemplo de respuesta:
{
    "ack": 0,
    "data": [
        {
            "asn": false,
            "code": "1234",
            "caiRequired": false,
            "fantasyName": "Manu Proveedor",
            "automaticMail": false,
            "phone": "2234565656",              
            "cuit": "1", 
            "address": "Brown 4237",
            "name": "Manuel Repetto",
            "email": "[email protected]"
        },
        {
            "asn": false,
            "code": "456",
            "caiRequired": false,
            "automaticMail": false,
            "phone": "2234778899",
             "cuit": "37719221",  
             "address": "Mardel 1234",
            "name": "Proveedor Test",
            "email": "[email protected]"
        },
        {
            "asn": false,
            "code": "77",
            "caiRequired": false,
            "automaticMail": false,
            "phone": "2235120461",
             "cuit": "38960888",               
            "address": "Avenida Colón 1475",
            "name": "Lorena Ruiz",
            "email": "[email protected]",
            "fantasyName": "Lolo"
        }
    ]
}

Ejemplo 2 Filtro por un código de proveedor específico:

Url: http://10.4.203.65:8081/supplier/all

Ejemplo de request:
{"code": "1234"}
Ejemplo de respuesta:
{
    "ack": 0,
    "data": [
        {
            "asn": false,
            "code": "1234",
            "cuit": "32563255",
            "caiRequired": false,
            "fantasyName": "FEMSA S.A",
            "automaticMail": true,
            "phone": "3215-3253",
            "address": "Oro 9658",
            "name": "Manuel Repetto",
            "email": "[email protected]",
            "frequency": {
                "$numberDecimal": "15"
            },
            "mail": "[email protected]"
        }
    ]
}

Ejemplo 3 Filtro por un cuit específico:

Url: http://10.4.203.65:8081/supplier/all

Ejemplo de request:
{"cuit": "27318219074"}
Ejemplo de respuesta:
{
    "ack": 0,
    "data": [
        {
            "asn": false,
            "code": "Deshabilitado",
            "caiRequired": false,
            "automaticMail": false,
            "name": "prueba deshabilitarlo",
            "frequency": {
                "$numberDecimal": "0"
            },
            "cuit": "27318219074"
        }
    ]
}
Autenticación
Para poder realizar la consulta del servicio, es necesario generar un token.

El mismo se generará:

URL: API de Central:Puerto/auth/login

Ejemplo: http://10.4.203.65:8081/auth/login

Dentro del Body, enviaremos la siguiente consulta:
{
"clientId": "bridge-api",
"clientSecret":"DA39A3EE5E6B4B0D3255BFEF95601890AFD80709"
}

{
"clientId": "bridge-api",
"clientSecret":"DA39A3EE5E6B4B0D3255BFEF95601890AFD80709"
}
Como response, obtendremos el token que utilizaremos en la consulta de proveedores.

  • MerchandiseHierarchy

Jerarquía:  Por medio de este servicio, se podrá consultar las distintas jerarquías teniendo en cuenta los parámetros enviados:

https://[direccion_ip]:[puerto]/merchandiseHierarchy/all 


Propiedad

Tipo de dato

Descripción

Requerido

code

String (25)

Código del Proveedor

No


description

String (25)

Descripción de la Jerarquía

No

levelCode

String (25)

Nivel de la Jerarquía

No

Ejemplo de request
{ "code": "", "description": "", "levelCode": "1" }
Ejemplo de respuesta
{
    "ack": 0,
    "data": [
        {
            "code": "H",
            "description": "Hombre",
            "disabled": false,
            "level": "Rubro",
            "children": []
        },
        {
            "code": "M",
            "description": "Mujer",
            "disabled": false,
            "level": "Rubro",
            "children": []
        },
        {
            "code": "CA",
            "description": "Con Alcohol",
            "disabled": false,
            "level": "Rubro",
            "children": []
        },
        {
            "code": "SA",
            "description": "Sin Alcohol",
            "disabled": false,
            "level": "Rubro",
            "children": []
        },
        {
            "code": "ELE",
            "description": "Electronicos",
            "disabled": true,
            "level": "Rubro",
            "children": []
        },
        {
            "code": "INF",
            "description": "Inform�tica",
            "disabled": false,
            "level": "Rubro",
            "children": []
        },
        {
            "code": "VID",
            "description": "Consolas y videojuegos",
            "disabled": false,
            "level": "Rubro",
            "children": []
        },
        {
            "code": "FFD",
            "description": "Fast Food",
            "disabled": false,
            "level": "Rubro",
            "children": []
        },
        {
            "code": "POS",
            "description": "Postres",
            "disabled": false,
            "level": "Rubro",
            "children": []
        },
        {
            "code": "FYV",
            "description": "Frutas y verduras",
            "disabled": false,
            "level": "Rubro",
            "children": []
        }
    ]
}
Autenticación
Para poder realizar la consulta del servicio, es necesario generar un token.

El mismo se generará:

URL: API de Central:Puerto/auth/login

Ejemplo: http://10.4.203.65:8081/auth/login

Dentro del Body, enviaremos la siguiente consulta:
{
"clientId": "bridge-api",
"clientSecret":"DA39A3EE5E6B4B0D3255BFEF95601890AFD80709"
}

{
"clientId": "bridge-api",
"clientSecret":"DA39A3EE5E6B4B0D3255BFEF95601890AFD80709"
}
Como response, obtendremos el token que utilizaremos en la consulta de jerarquías.

  • Sem rótulos