BRIDGE API - Rabbit - Informa pedidos generados por BRIDGE a canales (queueNewOrderTransaction)
Cada canal, posee asignada una cola RabbitMQ, con el nombre "queue_new_orderTransaction".
BRIDGE informa aquellos pedidos u ordenes que se hayan creado en BRIDGE a partir de ventas generadas en tiendas físicas con stock de otra tienda o de envío a domicilio, operaciones que tendrán asociada un pedido para su posterior surtido en la tienda del stock.
Esta exportación está basada en el TLOG del pedido, el cual nos permite contar con mayor información
Entidad a habilitar
Desde el menú de Bridge Manager Central se debe habilitar la entidad desde Configuración/Colas de exportación
Cola en el canal
Desde Bridge Manager Central/Administración/Omni/Canales, se debe habilitar la cola de novedades de ordenes
Exportación de pedido mediante acción del workflow
Exportación del pedido completa (a partir del tlog del pedido) No se requiere de una acción
- No es requerido el agregado de una acción en el workflow del canal para esta exportación
Monitor de exportaciones
- La exportación es del tipo "NewOrder"
Exportación ejemplo
JSON del request enviado a Rabbit
Allí, recibirá, en formato JSON, lo siguiente:
[ { "channelCode": "ODV", "queue": "queueForNewOrderTransaction_ODV", "message": { "externalNumber": "000130100000087", "internalNumber": "bridge0000000120", "creationDate": "2024-05-15 19:07:30", "terminalCode": "3010", "channelCode": "ODV", "currencyCode": "PESO ARGENTINO", "netAmount": "3495.4", "manualDiscountAmount": "0", "orderTypeCode": "order", "isPaid": true, "perceptionAmount": "0", "notes": "Orden creada desde POS", "erpCode": "", "company":"napse", "storeCode":"1", "storeName":"Tienda 1 - 7.5", "party": { "person": false, "organization": false, "identificationType": "DNI", "partyContactMethods": { "delivery": { "name": "Facturacion", "erpCode": "", "address": { "firstLine": "Saenz", "secondLine": null, "cityCode": "CABA_009", "stateCode": "CABA", "countryCode": "ARG", "postalCode": null }, "emailAddress": "[email protected]", "telephone": { } }, "billing": { "name": "Facturacion", "erpCode": "", "address": { "firstLine": "Saenz", "secondLine": null, "cityCode": "CABA_009", "stateCode": "CABA", "countryCode": "ARG", "postalCode": null }, "emailAddress": "[email protected]", "telephone": { } } }, "taxCategory": "CF", "denomination": "Rodrigo Gonzalez" }, "detail": [ { "storeCode": "1", "locationCode": "DEP1", "itemStock": { "unitsPerSellingUnit": 0, "availableDate": "2024-05-09T08:50:18", "baseCost": 0, "netCost": 0, "itemCost": 0, "looseWeight": false, "gainWeight": false, "itemDepth": 0, "itemWidth": 0, "itemHeight": 0, "itemDiameter": 0, "itemGrossWeight": 0, "itemNetWeight": 0, "itemDrainedWeight": 0 }, "itemCode": "PEPITOS", "description": "Pepitos", "barcode": "P001", "units": 5, "price": 100, "packagePrice": false, "quantity": 1, "netAmount": 413.22, "extendedPrice": 500, "discountTotal": 0, "discountPromoTotal": 0, "percentIva": 21, "priceIvaAmount": 86.78, "totalInternalTax": 0, "totalPerceptions": 0, "unitOfMeasureCode": "u", "deliveryOrPickup": "delivery", "pickupLocationCode": "1", "pickupInformation": "INFORMACION", "requiredDate": "2024-05-15T19:09:27", "partyContactMethodName": "Facturacion", "taxDetail": [ { "taxType": "VAT", "taxableAmount": 413.22, "taxAuthority": "2", "amount": 86.78, "taxablePercentage": 21 } ], "priceModifiers": [ ], "serializedUnits": [ ], "voiding": false, "voidFlag": false }, { "storeCode": "1", "locationCode": "DEP1", "itemStock": { "unitsPerSellingUnit": 0, "availableDate": "2024-05-09T08:50:18", "baseCost": 0, "netCost": 0, "itemCost": 0, "looseWeight": false, "gainWeight": false, "itemDepth": 0, "itemWidth": 0, "itemHeight": 0, "itemDiameter": 0, "itemGrossWeight": 0, "itemNetWeight": 0, "itemDrainedWeight": 0 }, "itemCode": "PEPITOS", "description": "Pepitos", "barcode": "P002", "units": 10, "price": 545.4, "packagePrice": true, "quantity": 1, "netAmount": 450.75, "extendedPrice": 545.4, "discountTotal": 0, "discountPromoTotal": 0, "percentIva": 21, "priceIvaAmount": 94.65, "totalInternalTax": 0, "totalPerceptions": 0, "unitOfMeasureCode": "u", "deliveryOrPickup": "delivery", "pickupLocationCode": "1", "pickupInformation": "INFORMACION", "requiredDate": "2024-05-15T19:09:27", "merchandiseHierarchyGroup":"Comida", "partyContactMethodName": "Facturacion", "taxDetail": [ { "taxType": "VAT", "taxableAmount": 450.75, "taxAuthority": "2", "amount": 94.65, "taxablePercentage": 21 } ], "priceModifiers": [ ], "serializedUnits": [ ], "voiding": false, "voidFlag": false }, { "storeCode": "1", "locationCode": "DEP1", "itemCode": "PESABLEBC", "description": "Artoculo pesable con barcode", "magnitude": 1.5, "units": 1.5, "price": 1000, "packagePrice": false, "quantity": 1, "netAmount": 1239.67, "extendedPrice": 1500, "discountTotal": 0, "discountPromoTotal": 0, "percentIva": 21, "priceIvaAmount": 260.33, "totalInternalTax": 0, "totalPerceptions": 0, "unitOfMeasureCode": "kg", "deliveryOrPickup": "delivery", "pickupLocationCode": "1", "pickupInformation": "INFORMACION", "requiredDate": "2024-05-15T19:09:27", "partyContactMethodName": "Facturacion", "taxDetail": [ { "taxType": "VAT", "taxableAmount": 1239.67, "taxAuthority": "2", "amount": 260.33, "taxablePercentage": 21 } ], "priceModifiers": [ ], "voiding": false, "voidFlag": false }, { "storeCode": "1", "locationCode": "DEP1", "itemCode": "500500", "description": "Galletitas sonrisas x3", "units": 1, "price": 950, "packagePrice": false, "quantity": 1, "barcode": "P001", "barcodeDescription":"Galletitas sonrisas x3", "netAmount": 785.12, "extendedPrice": 950, "discountTotal": 0, "discountPromoTotal": 0, "percentIva": 21, "priceIvaAmount": 164.88, "totalInternalTax": 0, "totalPerceptions": 0, "unitOfMeasureCode": "u", "deliveryOrPickup": "delivery", "pickupLocationCode": "1", "pickupInformation": "INFORMACION", "requiredDate": "2024-05-15T19:09:27", "partyContactMethodName": "Facturacion", "taxDetail": [ { "taxType": "VAT", "taxableAmount": 785.12, "taxAuthority": "2", "amount": 164.88, "taxablePercentage": 21 } ], "priceModifiers": [ ], "voiding": false, "voidFlag": false } ], "transactions": [ { "storeCode": "1", "terminalCode": "3010", "trxNumber": "87", "trxDate": "2024-05-15 19:08:00" } ], "payments": [ ], "iva0Amount": 0, "iva21Amount": 2888.76, "iva105Amount": 0, "iva27Amount": 0, "iva18Amount": 0, "netSalesAmount": 3495.4, "grossAmount": "0", "taxAmount": "606.64", "promoDiscountAmount": "0", "globalMargin": 302.3875, "operatorCode": "Andre", "operatorName": "Andrea Asato", "ivaTaxAmount": "0", "internalTaxAmount": "0", "itemCount": 4 }, "sent": true, "info": "Se envio con exito" } ]
Descripción de campos
Importante: los campos que poseen este ícono
, son valores tipificados que informan los valores expuestos por BRIDGE en sus servicios.Campo | Tipo | Descripción | Ejemplos | |
---|---|---|---|---|
externalNumber | String | Código de la orden del originante | "externalNumber": "000130100000087", | |
internalNumber | String | Nro de pedido interno de BRIDGE | "internalNumber": "bridge0000000120", | |
notes | String | Comentarios sobre la orden | "notes": "Orden creada desde POS", Enviar por la tarde | |
creationDate | String | Fecha de creación | "creationDate": "2024-05-15 19:07:30", Formato: yyyy-MM-dd HH:mm:ss | |
channelCode | String | Canal de Origen | "channelCode": "ODV", Este código será asignado por Napse de acuerdo al canal. | |
terminalCode | String | Código de la terminal donde se crea el pedido | "terminalCode": "3010", T125 (a partir de 7.5.5) | |
company | String | Código de la compañía | "company": "napse", Napse (a partir de 7.5.5) | |
currencyCode | String | Moneda | "currencyCode": "PESO ARGENTINO", peso | |
netAmount | Number | Monto final del pedido, incluyendo el costo de entrega, menos los descuentos. | "netAmount": "3495.4", 1000 | |
manualDiscountAmount | Number | Importe de descuentos a la transacción | "manualDiscountAmount": "0", Informar 0 si no existe ninguno | |
orderTypeCode | String | Código del tipo de orden | "orderTypeCode": "order", Por default: 'web' | |
isPaid | Boolean | Indicador de cobrado | "isPaid": true | |
externalSellerID | String | ID del vendedor externo (no es un usuario BRIDGE) | ||
externalSellerName | String | Nombre del vendedor externo (no es un usuario de BRIDGE) | ||
perceptionAmount | Number | Monto de percepciones del pedido | ||
storeCode | String | Código de la tienda | "storeCode": "1", | |
storeName | String | Nombre de la tienda | "storeName": "Tienda 1 - 7.5", | |
iva0Amount | Number | Neto gravado iva del 0% | "iva0Amount": 0, | |
iva21Amount | Number | Neto gravado iva del 21% | "iva21Amount": 2888.76, | |
iva105Amount | Number | Neto gravado iva del 10.5% | "iva105Amount": 0, | |
iva27Amount | Number | Neto gravado iva del 27% | "iva27Amount": 0, | |
iva18Amount | Number | Neto gravado iva del 18% | "iva18Amount": 0, | |
netSalesAmount | Number | Monto del pedido | "netSalesAmount": 3495.4, | |
grossAmount | String | "grossAmount": "0", | ||
taxAmount | String | Monto total de impuesto (iva y percepciones) | "taxAmount": "606.64", | |
promoDiscountAmount | String | "promoDiscountAmount": "0", | ||
globalMargin | Number | Margen global del pedido (porcentaje) | "globalMargin": 302.3875, | |
operatorCode | String | Código del operador que crea el pedido | "operatorCode": "Andre", | |
operatorName | String | Nombre del operador que crea el pedido | "operatorName": "Andrea Asato", | |
ivaTaxAmount | String | Monto del iva acumulado | "ivaTaxAmount": "0", | |
internalTaxAmount | String | Monto de impuestos internos | "internalTaxAmount": "0", | |
itemCount | Number | Cantidad de ítems en el pedido | "itemCount": 4 | |
attachNote | String | Nota del pedido (ingresados en el POS) | ||
perceptionAmount | Number | Monto de percepciones (IB e IVA) | "perceptionAmount": "0", | |
orderReference(orden de referencia). Requerido si la orden es de devolución(orderTypeCode == "return") | ||||
externalNumber | String | Código de la orden | 000001 | |
party (cliente asociado a la transacción). Requerido | ||||
code | String | Código del cliente | 024314537 | |
taxCategory | String | Categoría impositiva del cliente ante el IVA | RI (a partir de 7.5.5) | |
firstName | String | Nombre del Cliente | Martin | |
lastName | String | Apellido del cliente | Malievac | |
String | Correo del cliente | [email protected] | ||
identificationType | Number | Tipo de documento | 1, valores posibles: 1: DNI "identificationType": "DNI", | |
identifier | String | Número de documento | 24314537 | |
birthYearNumber | Number | Año de nacimiento | 1975 | |
birthMonthNumber | Number | Mes de nacimiento | 3 | |
birthDayNumber | Number | Día de nacimiento | 1 | |
person | String | Si es del tipo persona | "person": true, | |
organization | String | Si es del tipo empresa u organización | ||
genderType | String | Sexo del cliente | Valores: M, F, NB "genderType": "M", | |
typeCode | String | Tipo de cliente | "typeCode": "PRS", | |
denomination | String | |||
partyContactMethods (direcciones del cliente). Requerido | ||||
delivery.name | String | Nombre del método de contacto | Personal, Trabajo, etc. Se informará el método de contacto elegido para envío a domicilio o el que se encuentre definido como "principalForDelivery" | |
delivery,address.firstLine | String | Calle y número | Almafuerte 1000 | |
delivery.address.secondLine | String | Otra info | Piso 10, Puerta 12 | |
delivery.address.cityCode | String | Ciudad | MUN. Importante: código del listado de ciudades existentes, ver servicio city/all | |
delivery.address.stateCode | String | Provincia | BsAs. Importante: código del listado de provincias existentes, ver servicio state/all | |
delivery.address.countryCode | String | Pais | ARG. Importante: código del listado de países existentes, ver servicio country/all | |
delivery.address.postalCode | String | |||
delivery.emailAddress | String | Email asociado a ese método de contacto | Se puede poner el principal si no es diferente | |
billing,address.firstLine | String | Calle y número | Almafuerte 1000 Se informará el método de contacto elegido como domicilio de facturación o el que se encuentre definido como "principalForBilling" | |
billing.address.secondLine | String | Otra info | Piso 10, Puerta 12 | |
billing.address.cityCode | String | Ciudad | MUN. Importante: código del listado de ciudades existentes, ver servicio city/all | |
billing.address.cityName | String | Nombre de la ciudad | "BUENOS AIRES" | |
billing.address.stateCode | String | Provincia | BsAs. Importante: código del listado de provincias existentes, ver servicio state/all | |
billing.address.stateName | String | Nombre de la provincia | BUENOS AIRES | |
billing.address.countryCode | String | Pais | ARG. Importante: código del listado de países existentes, ver servicio country/all | |
billing.address.countryName | String | Nombre del país | ||
billing.address.postalCode | String | Código postal | ||
billing.emailAddress | String | Email asociado a ese método de contacto | Se puede poner el principal si no es diferente | |
billing.telephone.countryCode | String | código de País | 54 | |
billing.telephone.areaCode | String | código de area | 11 | |
billing.telephone.telephoneNumber | String | número de teléfono | 36637777 | |
billing.telephone.countryCode | String | código de País | 54 | |
billing.telephone.areaCode | String | código de area | 11 | |
billing.telephone.telephoneNumber | String | número de teléfono | 36637777 | |
extensionNumber | String | extensión | 066 | |
principalForDelivery | Boolean | Opcional: true/false. En caso de enviar más de una dirección 'marcada' para delivery se va a tomar una sola. Idem para la dirección de facturación. | ||
principalForBilling | Boolean | Opcional: true/false. En caso de enviar más de una dirección 'marcada' para delivery se va a tomar una sola. Idem para la dirección de facturación. | ||
postalCode | String | Código postal | "postalCode": "1323" | |
erpCode | String | Código del ERP | "erpCode": "", | |
allPartyContactMethods | Array | Se quita | ||
code | String | Código del método de contacto | "allPartyContactMethods": [ | |
name | String | Nombre del método de contacto | ||
partyAddressFirstLine | String | Dirección | ||
partyAddressCityName | String | Nombre de la ciudad | ||
partyAddressCityCode | String | Código de la ciudad | ||
partyAddressStateName | String | Nombre de la provincia o estado | ||
partyAddressStateCode | String | Código de la provincia o estado | ||
partyAddressCountryName | String | Nombre del país | ||
partyAddressCountryCode | String | Código del país | ||
partyEmail | String | Dirección de mail | ||
detail (Detalle del pedido). Debe haber al menos uno | ||||
itemCode | String | SKU del producto | "itemCode": "PEPITOS", | |
description | String | Descripción del producto | "description": "Pepitos", | |
quantity | Number | Cantidad pedida | "quantity": 1, | |
price | Number | Precio unitario | 1000 "price": 100, | |
packagePrice | String | Indica si es precio por paquete o no | "packagePrice": false, | |
deliveryOrPickup | String | Si la linea será con retiro en tienda o envío | "deliveryOrPickup": "delivery", delivery o pickup | |
pickupLocationCode | String | Código de la locación en donde retirará | "pickupLocationCode": "1", UNICENTER. El código debe estar estipulado. Ver servicio customerOrderPickupLocation/all | |
pickupInformation | String | Descripción de quien hará el retiro | "pickupInformation": "INFORMACION", Juan Perez retirará, teléfono: XXXXX | |
requiredDate | String | Fecha de envío requerida o de retiro en tienda | "requiredDate": "2024-05-15T19:09:27", Formato: yyyy-MM-dd HH:mm:ss | |
partyContactMethodName | String | Dirección de envío del cliente | "partyContactMethodName": "Facturacion", Personal, debe existir entre una de las direcciones informadas para el cliente | |
barcode | Number | Código de barras del articulo (si fue ingresado con ese dato) | "barcode": "P001", | |
barcodeDescription | String | Descripción del código de barras | "barcodeDescription":"Shampoo Johnson's Baby pH Balanceado x 200 ml", | |
magnitude | Number | Magnitud (peso, longitud, etc) del item si su unidad de medida asociada tiene manejo de decimales | "magnitude": 1.5, | |
units | String | Cantidad de unidades de la presentación (asociado al código de barras) | "units": 5, | |
storeCode | String | Código de Tienda | "storeCode": "1", | |
locationCode | String | Código del depósito | "locationCode": "DEP1", | |
netAmount | Number | Monto neto | "netAmount": 413.22, | |
extendedPrice | Number | Precio extendido (cantidad x precio - descuentos) | "extendedPrice": 500, | |
discountTotal | Number | Monto total de descuento del item | "discountTotal": 0, | |
discountPromoTotal | Number | Monto total de descuento por promoción del item | "discountPromoTotal": 0, | |
percentIva | Number | Porcentaje de iva del item | "percentIva": 21, | |
priceIvaAmount | Number | Monto de iva del item | "priceIvaAmount": 86.78, | |
totalInternalTax | Number | Monto de impuestos internos del item | "totalInternalTax": 0, | |
totalPerceptions | Number | Monto de percepciones | "totalPerceptions": 0, | |
unitOfMeasureCode | String | Código de unidad de medida | "unitOfMeasureCode": "u", | |
merchandiseHierarchyGroup | String | Código de la categoría departamental | "merchandiseHierarchyGroup":"pepep", | |
itemstock | Object | Datos de dimensiones del item cuando maneja stock | "itemStock": { | |
taxDetail | Array | Detalle de los impuestos (iva e impuestos internos) | "taxDetail": [ | |
voiding | String | Indicador del item anulado (esto permite conocer si se debe considerar o no el item) | "voiding": false, | |
voidFlag | String | Indicador del item que anula (esto permite conocer si se debe considerar o no el item) | "voidFlag": false | |
detail.priceModifiers : descuentos otorgados a los productos, esto se encuentra dentro de la colección detail | ||||
percent | Number | Porcentaje de descuento | 5 | |
amount | Number | Monto de descuento | 1000 | |
reasonText | String | Razón del descuento | Oferta del día | |
serializedUnits: en caso de que BRIDGE ya haya surtido el pedido en las tiendas, se detallan los números de serie | ||||
SerialNumber | String | Nro de serie del item | Requerido sólo si se envía lista de series | |
importDocNumber | String | Nro de despacho | ||
customsNumber | String | Aduana | ||
customsDate | String | Fecha de despacho | ||
unitCount | Number | Cantidad | Requerido sólo si se envía lista de series | |
transaction: este campo se usa en el caso de que la transacción haya sido facturada en bridge, no se usa en caso de que la orden venga de canales externos. | ||||
id | String | El ID de mongodb de la transacción | "transactions": [ { "storeCode": "1", "terminalCode": "3010", "trxNumber": "87", "trxDate": "2024-05-15 19:08:00" } ], | |
storeCode | String | El código de tienda BRIDGE | ||
terminalCode | String | El código de terminal BRIDGE | ||
operatorCode | String | El código de operador BRIDGE | ||
trxNumber | Number | El número de transacción BRIDGE | ||
trxDate | Date | La fecha de la transacción BRIDGE Formato: yyyy-MM-dd HH:mm:ss | ||
payments (pagos asociados al pedido) | ||||
tender | String | Código del medio de pago | peso. Importante: ver servicio tender/all para los códigos de pago permitidos. | |
amount: | Number | Monto del pago | 1000 | |
planDescriptor | String | Descripción del plan de pagos elegido | 9 meses sin intereses | |
sellerName | String | Nombre de la entidad | Mirgor | |
authorizationCode | String | Codigo de autorización de la tarjeta |
| |
couponNumber | String | Número de cupón | 1 | |
lotNumber | String | Número de Lote | 1 | |
installments | String | Cuotas | 9 | |
referenceNumber | String | Referencia de la tarjeta | 44444444, en el caso de MercadoPago, allí va el id de la cuenta. |