Orden, Factura y Entrega: La Historia Completa
Resumen
Un objetivo importante de las API de DCP es proporcionar a los concesionarios funciones comerciales en su DMS, ayudándoles a mejorar sus operaciones.
Para alcanzar este objetivo, una API importante es la API de Orden de Piezas que permite al concesionario realizar un pedido de Piezas, Accesorios y Ropa (PA&A) desde su DMS.
La API de Orden de Piezas por sí sola es algo compleja.
Para proporcionar a sus concesionarios la mejor experiencia de pedido de piezas, debe comprender el proceso de pedido de piezas, así como los procesos relacionados de entrega y facturación.
Resumen del Proceso de Negocio de Pedido de Piezas
Esta sección presenta una visión general del proceso de negocio de pedido de piezas. Es esencial entender cómo los sistemas backend de BRP gestionan los pedidos de piezas, siendo el principal SAP, y el impacto en su DMS a través de la API de Orden de Piezas.
Proceso de Pedido de Piezas

El proceso comienza cuando el concesionario crea un pedido de piezas en su DMS.
Tu DMS debe llamar al API de distribuidores para recuperar los métodos de envío disponibles para el concesionario y mostrarlos en la pantalla.
El concesionario debe tener acceso al catálogo de piezas BRP, obtenido a través del API de piezas, para buscar y seleccionar las piezas a pedir.
Si aún no se ha hecho, el concesionario inicia sesión en BOSSWeb con sus credenciales a través de su DMS, y guarda el access_token devuelto por el API de Autenticación de Concesionarios.
El concesionario utiliza el Validar función en su DMS para enviar el pedido de piezas a validar.
- La API de pedido de piezas recibe la carga útil y la envía a SAP.
- Su DMS recibe la respuesta y muestra el resultado al concesionario.
- Si aparecen mensajes de error, se muestran al concesionario, quien debe corregir el pedido de piezas y validar el pedido modificado.
- El concesionario verifica el pedido de piezas y los costos resultantes, incluidos los gastos de envío, para asegurarse de que sean los esperados.
🛑 Tienes que manejar el tiempo de espera en el Validar función si hay más de 30 artículos en el pedido de piezas.
Vea el Ver Flujo de Datos sección del API de Orden de Piezas para información sobre cómo manejar el tiempo de espera.
Cuando el concesionario está satisfecho con el pedido de piezas, utiliza el Crear función en su DMS.
- SAP valida el pedido de piezas; si es válido, crea y guarda el pedido.
- El resultado se devuelve a el API de Orden de Piezas: ya sea que se devuelva la orden de partes creada, o se devuelva un mensaje de error.
- Si se crea el pedido de piezas, lo guardas en la base de datos del DMS. Si hay un mensaje de error, se muestra al concesionario.
🛑 El pedido de piezas devuelto es no completo cuando SAP lo devuelve por primera vez. Por ejemplo, la información de entrega no está disponible cuando se crea el pedido de piezas.
🚴♂️ Toma, en promedio, 2 segundos por línea de artículo para que SAP procese un pedido de piezas. Así que, un pedido de piezas con 60 líneas de artículo toma al menos 2 minutos para procesar.
Tu interfaz de usuario DMS debe manejar este largo procesamiento en segundo plano.
SAP trabaja en segundo plano para completar el pedido de piezas. Las actividades principales son:
- Confirme la disponibilidad de las piezas y en qué almacén están disponibles.
- Prepare la solicitud de envío desde el(los) almacén(es) donde las piezas están disponibles.
- Tenga en cuenta que las partes pueden ser enviadas desde diferentes almacenes; en este caso, el concesionario recibe más de un envío.
- Si una pieza no está disponible, SAP determina una fecha de disponibilidad y actualiza el pedido de piezas con la información.
Tu DMS debe llamar al API de Orden de Piezas Obtener el servicio para actualizar la información de la orden de piezas. Se debe realizar una llamada al Obtener servicio siempre que la orden de piezas esté abierta (no completada).
La llamada a la API de Orden de Piezas Obtener el servicio puede realizarse a intervalos regulares o cuando el pedido de piezas se muestra al concesionario. Al actualizar el pedido de piezas, el concesionario puede ver la información de entrega y factura para cada línea de artículo.
Dependiendo del número de artículos en el pedido de piezas, SAP puede tardar de 10 a 15 minutos en procesarlo completamente.
Cuando SAP prepara el pedido de piezas, la información de entrega se envía al/los almacén(es), y los artículos se entregan al concesionario.
El concesionario recibe el documento(s) de entrega y la(s) factura(s) relacionadas con el pedido de piezas. ¡Continúa leyendo para conocer la historia completa!
La información principal a recordar en el proceso empresarial:
- Toma tiempo para que SAP procese el pedido de piezas, y tu DMS debe llamar al API de Orden de Piezas Obtener servicio para actualizar el pedido de piezas en la base de datos de tu DMS.
- SAP procesa los pedidos de piezas en un promedio de 2 segundos por línea de artículo, por lo que un pedido de piezas con 60 líneas de artículos toma al menos 120 segundos, o aproximadamente 2 minutos.
- Una vez que los sistemas de backend procesan el pedido, el API de Orden de Piezas Obtener servicio devuelve el pedido de piezas completado, y la respuesta contiene los documentos de entrega y las referencias de la factura.
- Una vez que el pedido se envía al concesionario, reciben el(los) documento(s) de entrega y la(s) factura(s).
Proceso de Recepción de Piezas
Ves que el proceso de negocio de pedido de piezas a alto nivel es bastante simple.
Cuando el concesionario recibe una entrega, quiere vincular las piezas con el pedido de piezas correspondiente. Es una forma para que el concesionario se asegure de que todas las piezas ordenadas han sido recibidas.
El departamento de servicio puede necesitar las piezas para apoyar las actividades de mantenimiento y reparación.
A veces, las piezas pueden haber sido ordenadas específicamente para un cliente, y el concesionario quiere informar al cliente que las piezas están listas.
Cuando la entrega del pedido de piezas y las facturas se dividen, las cosas se complican para los concesionarios.
Es cuando el API de entregas y API de facturas vienen al rescate.
Conectando los Puntos
Veamos cómo podemos conectar los diferentes elementos del pedido de piezas para ayudar a los concesionarios.
Los Tipos de Documentos
Hay tres tipos de documentos involucrados en el proceso de pedido de piezas.
Tipo de Documento | Descripción |
|---|---|
Orden de Compra / Orden de Venta | Se crea una orden de compra con una llamada a la API de Orden de Piezas. El número de orden de venta devuelto en el API de Orden de Piezas Crear la respuesta del servicio identificó la orden de compra. 👉 En las cargas útiles devueltas por la triada de la API, la orden de compra se identifica por el número de orden de venta. 👉 El API de Orden de Piezas Obtener el servicio también devuelve las órdenes de compra creadas en BOSSWeb. |
Documento de Entrega | El documento de entrega es recibido por el concesionario con cada paquete que se entrega. El número del documento de entrega se encuentra en el documento de entrega y en la orden de compra, en el delivery_progress propiedad de cada artículo cuando el status_code del artículo es shipped. Este número de documento de entrega se puede utilizar para recuperar un documento de entrega con una llamada a la API de entregas. |
Factura | El concesionario recibe la factura, que está vinculada tanto a una orden de compra como a una entrega, ya que solo se facturan los artículos entregados. El número de factura se encuentra en la factura, y también en la orden de compra, en el delivery_progress.billing_documents propiedad de cada artículo cuando el status_code del artículo es shipped. Este número de factura se puede utilizar para recuperar un documento de factura con una llamada a la API de facturas. |
¿Cómo se conectan?
Una vez que se envía el pedido de piezas, el(los) documento(s) de entrega y la(s) factura(s) están disponibles.
A veces, un pedido de piezas puede ser enviado al concesionario en muchas entregas.
Esto significa que el concesionario recibe más de un documento de entrega y factura.
Como se muestra en la imagen a continuación, los tipos de documentos enumerados anteriormente pueden estar vinculados a otros tipos de documentos utilizando las propiedades de referencia cuando se envía el pedido de piezas!

👉 La información más importante es que el documento de entrega y la factura pueden estar vinculados al pedido de piezas.
No Olvides BOSSWeb
Los concesionarios a menudo crean el pedido de piezas en BOSSWeb. Para que el proceso de recepción de piezas funcione con API de entregas y API de facturas, todos los pedidos de piezas deben estar cargados en su DMS.
Por eso, el API de Orden de Piezas Obtener servicio debe ser utilizado para recuperar los pedidos de piezas y cargarlos en su base de datos DMS.
Una Entrega No Es Una Caja
👉 Ten en cuenta que una entrega no es necesariamente solo una caja!
Una entrega es un grupo de artículos de pedido de piezas enviados juntos y puede contener muchas cajas.
Por ejemplo, un pedido de piezas que contiene 10 artículos puede ser enviado en tres cajas. Esto es visible en la información de seguimiento de los artículos (descrito a continuación): encuentras tres números de seguimiento diferentes. Esto significa que el transportista está enviando tres cajas.
También es posible que un pedido de piezas se entregue a través de muchos documentos de entrega. Por ejemplo, los artículos en un pedido de piezas pueden ser enviados desde diferentes almacenes.
Transportista y Número de Seguimiento
BRP utiliza transportistas de terceros para entregar los pedidos de piezas a los concesionarios. El número de seguimiento del transportista también es información importante en el documento de entrega.
Cuando el artículo del pedido de piezas está en envío, el tracking_details array para el artículo encontrado en el API de entregas la respuesta contiene la lista de tracking_no y tracking_url proporcionados por el transportista.
"tracking_details": [
{
"tracking_no": "1ZA6V7586880873601",
"tracking_url": "https://wwwapps.ups.com/WebTracking/track?loc=en_CA&AgreeToTermsAndConditions=yes&track.x=26&track.y=5&trackNums=1ZA6V7586880873601"
},
{
"tracking_no": "1ZA6V7586880873594",
"tracking_url": "https://wwwapps.ups.com/WebTracking/track?loc=en_CA&AgreeToTermsAndConditions=yes&track.x=26&track.y=5&trackNums=1ZA6V7586880873594"
}
]¡Pero espera!
¿Por qué es tracking_details un array?
Según el tamaño y peso del artículo, el transportista puede necesitar enviar más de una caja para un artículo, lo que resulta en múltiples números de seguimiento.
El concesionario podría usar el número de seguimiento para encontrar el documento de entrega correspondiente.
Desafortunadamente, la API interna de BRP no proporciona un servicio de "búsqueda por número de seguimiento".
💯¡Si tu DMS puede proporcionar una función de "búsqueda por número de seguimiento", sería de gran valor para el concesionario!
Entrega Dividida: Una Pesadilla para el Concesionario
Volviendo al proceso de pedido de piezas, una vez que el pedido de piezas está listo en el almacén de BRP, las cajas se preparan y se coloca una etiqueta de envío con el número de entrega en cada caja.
Digamos que tenemos un pedido con 10 cajas.
El camión del transportista llega al almacén de BRP y se carga con todas las cajas disponibles, no solo las 10 cajas que solicitamos. ¡Pero luego, el camión está lleno y 3 de las 10 cajas no se cargan!
El camión se va, y otro llega más tarde. Las últimas tres cajas se cargan en este camión. Desde que se enviaron las primeras cajas, las últimas tres han sido asignadas a un nuevo número de entrega.
👉 Un número de entrega comienza con "85". Un número de entrega dividido comienza con "89".
Cuando el distribuidor recibe las últimas tres cajas, el número de entrega en la etiqueta de envío es 8500163056.
Pero el número de entrega dividido es algo como 8900031064.
¿Cómo conectas los 2?
Primero, puedes obtener el pedido de piezas actualizado llamando al API de Orden de Piezas Obtener servicio. La información de entrega para el artículo se verá así:
"delivery_progress": [
{
"status_code": "shipped",
"status_date": "2023-03-17T14:25:56Z",
"status_descr": "",
"qty": 1,
"availability_date": "2023-03-17",
"delivery_no": "8900031064",
"delivery_item_no": "000040",
"delivery_qty": 1,
"delivery_creation_date": "2023-03-17T14:25:40Z",
"pgi_date": "2023-03-17T14:25:56Z",
"carrier_name": "",
"split_delivery_no": "8500163056",
"split_delivery_item_no": "000040"El split_delivery_no propiedad proporciona el número de entrega original, y el delivery_no propiedad ahora contiene el nuevo número de entrega dividido.
¿Por qué es importante?
❗❗ Porque el documento de entrega original no se actualizará con la información de envío ❗❗
Si llamas a la API de entregas para obtener el documento de entrega 8500163056, la tracking_nos propiedad está vacía.
Cuando se llama para el documento de entrega 8900031064, la información de seguimiento está disponible.
Algunos Escenarios
Esta sección presenta algunos de los diferentes escenarios de pedido de piezas, entrega y factura, y cómo usar la API de Orden de Piezas, API de entregas y API de facturas para ayudar al concesionario a gestionar el procesamiento y recepción de pedidos.
El caso más fácil: Uno a Uno a Uno
La situación más fácil es cuando el distribuidor recibe un pedido de piezas como una entrega única con una sola factura.

Al recibir la entrega, el distribuidor puede usar el número de entrega (8500001234) que se encuentra en la etiqueta de envío para encontrar el pedido de piezas correspondiente utilizando el número de pedido de venta (1000005678).
Una entrega parcial
En este escenario, el distribuidor realiza un pedido de piezas con cinco artículos. BRP puede enviar rápidamente tres artículos, por lo que el distribuidor recibe una entrega con tres artículos.

Al recibir la entrega, el distribuidor puede usar el número de entrega (8500001234) que se encuentra en la etiqueta de envío para encontrar el pedido de piezas correspondiente utilizando el número de pedido de venta (1000005678).
El pedido de piezas puede ser actualizado en el DMS del distribuidor para indicar que se han recibido tres artículos y dos aún están pendientes.
Si BRP ha enviado los dos artículos restantes, la propiedad de tracking_nos del pedido de piezas contiene los números de seguimiento del transportista. El distribuidor puede usar estos números de seguimiento para localizar los paquetes.
Múltiples entregas
En este escenario, el distribuidor realiza un pedido de piezas con 5 artículos, y BRP envía los artículos en 2 entregas, posiblemente porque los artículos se envían desde diferentes almacenes.

Nuevamente, al recibir una entrega, el concesionario puede usar el número de entrega en la etiqueta de envío para encontrar el pedido de piezas correspondiente utilizando el número de pedido de venta.
Múltiples Entregas de Múltiples Pedidos
En este escenario, el concesionario tiene dos pedidos de piezas: uno con cinco artículos y otro con dos artículos. Se realizan dos entregas.
Como se muestra en el diagrama a continuación, la primera entrega contiene dos artículos del primer pedido de piezas y dos artículos del segundo pedido de piezas.

Al recibir la primera entrega (8500001234), los artículos 1 y 2 se pueden vincular al pedido de piezas utilizando el número de pedido de venta (1000005678). Los artículos 10 y 11 están vinculados al otro pedido de piezas utilizando su número de pedido de venta (1000001234).
Cuando se recibe la segunda entrega (8500005678), los artículos se vinculan al pedido de piezas utilizando su número de orden de venta (1000005678).
❗ Tenga en cuenta que hay dos facturas diferentes para la primera entrega (8500001234) porque las piezas son de dos pedidos de piezas diferentes (1000005678 y 1000001234).
Implementación de un Proceso de Recepción de Piezas
Esta sección presenta un ejemplo de implementación de un proceso de recepción de piezas utilizando el API de Orden de Piezas, API de entregas y API de facturas.
Se utilizan tres escenarios para presentar el proceso de recepción de piezas:
- Un pedido simple con un artículo y una entrega.
- Un pedido con muchos artículos y muchas entregas.
- Un pedido con muchos artículos y entregas divididas (ver la sección Entrega Dividida: Una Pesadilla para el Concesionario).
Cada escenario comienza con el distribuidor recibiendo una caja con una etiqueta de envío.
👉 En estos ejemplos, el pedido de piezas se recupera con una llamada a la API de Orden de Piezas.
Sin embargo, en la API de Pedido de Piezas Requisitos de DSP sección, los requisitos 10 y 11 especifican que su DMS debe recuperar el pedido de piezas existente llamando al servicio de la API de Pedido de Piezas Obtener.
Esto significa que cuando se obtiene un número_de_pedido_de_venta de la API de entregas o API de facturas, el pedido de piezas debe ser recuperado de su base de datos DMS.
Colección de Postman
La DMS - Recepción de Piezas la colección contiene las consultas en los escenarios presentados a continuación.
👉 Puedes probar estos ejemplos en el entorno de QA, pero debes usar los mismos números de distribuidor.
Un Pedido Simple - Con la Entrega
El distribuidor recibe una caja, y la etiqueta de envío indica un número de entrega: 8500045713.
El proceso de recepción comienza llamando al API de entregas para obtener la información de entrega.
Obtener la Entrega
curl --location 'https://qa-cloud-api.brp.com/dcp/v4/delivery/8900000704' \
--header 'Dealer-Number: 0000690005' \
--header 'Authorization: Bearer REPLACE_ME' Obtener la Orden de Piezas
El sales_order_no encontrado en el API de entregas respuesta se utiliza para obtener la orden de piezas.
👉 En realidad, su DMS debería buscar la orden de piezas en su base de datos.
curl --location 'https://qa-cloud-api.brp.com/dcp/v4/parts/orders?dealer_no=0000690005&sales_order_no=1030223136' \
--header 'Authorization-Dealer: THE_ACCESS_TOKEN' \
--header 'Authorization: Bearer REPLACE_ME'En este ejemplo, la parte recibida está fácilmente vinculada al pedido de partes.
Obtener la factura
El número de factura se puede recuperar de la lista de pedidos de piezas deshipping_lines.deliveries.billings.billing_no objetos, y llamando a la API de facturas para obtener la factura.
curl --location 'https://qa-cloud-api.brp.com/dcp/v4/invoice/9030149646' \
--header 'Dealer-Number: 0000690005' \
--header 'Authorization: Bearer REPLACE_ME'Un Pedido Simple - Con la Factura
El concesionario recibe una factura con el número 9030149646.
El proceso de recepción comienza llamando al API de facturas para obtener la información de la factura.
Obtener la Factura
curl --location 'https://qa-cloud-api.brp.com/dcp/v4/invoice/9030149646' \
--header 'Dealer-Number: 0000690005' \
--header 'Authorization: Bearer REPLACE_ME'Obtener la Entrega
Podemos obtener la entrega y/o el pedido de piezas de la factura.
👉 Recuerda que en la respuesta de la factura, el sales_order_no y delivery_no son por artículo!
¡Debes escanear los artículos para recuperar todos los valores de sales_order_no y delivery_no!
Este ejemplo es simple, así que solo tenemos 1 artículo.
curl --location 'https://qa-cloud-api.brp.com/dcp/v4/delivery/8500045713' \
--header 'Dealer-Number: 0000690005' \
--header 'Authorization: Bearer REPLACE_ME' Obtener el Pedido de Piezas
El sales_order_no encontrado en el API de facturas o el API de entregas respuesta se utiliza para obtener el pedido de piezas.
curl --location 'https://qa-cloud-api.brp.com/dcp/v4/parts/orders?dealer_no=0000690005&sales_order_no=1030223136' \
--header 'Authorization-Dealer: THE_ACCESS_TOKEN' \
--header 'Authorization: Bearer REPLACE_ME'Un pedido con múltiples artículos y múltiples entregas
En este ejemplo, un pedido con muchos artículos se envía en muchas entregas.
El distribuidor recibió una caja con el número de entrega 8500045915, y el API de entregas se llama para obtener la información de la entrega.
👉 Tenga en cuenta que el proceso de recepción de piezas también puede comenzar con la factura, como se muestra en la sección Un Pedido Simple - Con la Factura arriba.
Obtener la Entrega
curl --location 'https://qa-cloud-api.brp.com/dcp/v4/delivery/8500045915' \
--header 'Dealer-Number: 0000690377' \
--header 'Authorization: Bearer REPLACE_ME'La entrega contiene 2 artículos. Tienes que procesar los artículos y extraer de cada uno de ellos el sales_order_no y sales_order_item_no.
👉 ¡Recuerda que una entrega puede tener artículos de muchos pedidos parciales!
No puedes asumir que todos los artículos son del mismo pedido, así que tienes que extraer todos los sales_order_no y sales_order_item_no.
El código se vería así (esto es un extracto de un script de Postman).
// Get the response from the API
var response = pm.response.json();
// We keep the delivery number
var deliveries = [];
var delivery_no = response.delivery_no;
// save the all delivery items
response.items.every( delivery => {
console.log( delivery );
var delivery_item_no = delivery.item_no;
var sales_order_no = delivery.sales_order_no;
var sales_order_item_no = delivery.sales_order_item_no;
var deliveryObj = { delivery_no: delivery_no,
delivery_item_no: delivery_item_no,
sales_order_no: sales_order_no,
sales_order_item_no : sales_order_item_no };
deliveries.push( deliveryObj );
return true;
});
pm.collectionVariables.set( "DELIVERY_RECEIVED", deliveries );
Obtener el Pedido de Piezas
El sales_order_no encontrado en el API de entregas respuesta se utiliza para obtener el pedido de piezas.
Esta consulta utiliza el primer sales_order_no del array de entregas creado arriba.
👉 En realidad, tu DMS debería buscar el pedido de piezas en su base de datos.
curl --location 'https://qa-cloud-api.brp.com/dcp/v4/parts/orders?sales_order_no=1030382589&dealer_no=0000690377' \
--header 'Authorization-Dealer: THE_ACCESS_TOKEN' \
--header 'Authorization: Bearer REPLACE_ME'Encuentra los artículos
El pedido de piezas contiene 12 artículos, por lo que el siguiente paso es identificar los artículos que corresponden a las piezas recibidas.
Al revisar los artículos del pedido de piezas, encuentra aquellos que coincidan con los artículos de la entrega. Coinciden si tienen los mismos delivery_no y delivery_item_no valores.
var response = pm.response.json();
// Look to all the parts order items and find those matching the delivery
response.order.items.every( item => {
// For each item, look at the shipping lines
//console.log( item );
item.shipping_lines.every( shipping_line => {
// find the item corresponding to the delivery
deliveries.every( delivery => {
// check the order item delivery for a match
shipping_line.deliveries.every( item_delivery => {
if( item_delivery.no == delivery.delivery_no &&
item_delivery.item_no == delivery.delivery_item_no ) {
console.log( "Found " + item_delivery.no +
" " + item_delivery.item_no );
return false;
}
return true;
});
return true;
});
return true;
});
return true;
});
La información de entrega de los 2 artículos se copia aquí.
"deliveries": [
{
"status_code": "shipped",
"status_date": "2023-06-26T12:17:32Z",
"status_descr": "",
"qty": 1,
"availability_date": "2023-06-28",
"no": "8500045915",
"item_no": "000010",
"delivery_qty": 1,
"creation_date": "2023-06-26T11:16:16Z",
"carrier_name": "",
"split_delivery_no": "",
"split_delivery_item_no": "",
"billings": [
{
"billing_no": "9030153034",
"billing_item_no": "000202",
"billing_creation_date": "2023-06-26T22:00:16Z",
"billing_qty": "1.000",
"is_cancelled": false,
"cancellation_billing_no": ""
}
]
}
],
"deliveries": [
{
"status_code": "shipped",
"status_date": "2023-06-26T12:17:32Z",
"status_descr": "",
"qty": 1,
"availability_date": "2023-06-28",
"no": "8500045915",
"item_no": "000020",
"delivery_qty": 1,
"creation_date": "2023-06-26T11:16:16Z",
"carrier_name": "",
"split_delivery_no": "",
"split_delivery_item_no": "",
"billings": [
{
"billing_no": "9030153034",
"billing_item_no": "000203",
"billing_creation_date": "2023-06-26T22:00:16Z",
"billing_qty": "1.000",
"is_cancelled": false,
"cancellation_billing_no": ""
}
]
}
],Una vez que se encuentran los artículos, se pueden marcar como recibidos.
Obtener la factura
Al mismo tiempo, se puede recuperar la información de la factura para estos artículos, y el API de facturas se puede llamar para obtener la factura.
curl --location 'https://qa-cloud-api.brp.com/dcp/v4/invoice/9030153034' \
--header 'Dealer-Number: 0000690377' \
--header 'Authorization: Bearer REPLACE_ME'Verás en la respuesta devuelta que la factura contiene 14 artículos de 3 órdenes de partes diferentes: 1030382581, 1030382589 y 1030382592.
Una vez más, los elementos de la factura relacionados con nuestros dos artículos de pedido se pueden encontrar utilizando el sales_order_no y sales_order_item_no propiedades de ambas respuestas.
👉 Ten en cuenta que también puedes obtener el PDF de la factura.

Obtener la Siguiente Entrega
Al día siguiente, el concesionario recibió otra caja con el número de entrega 8500045963.
curl --location 'https://qa-cloud-api.brp.com/dcp/v4/delivery/8500045963' \
--header 'Dealer-Number: 0000690377' \
--header 'Authorization: Bearer REPLACE_ME'Esta entrega también contiene dos artículos, y el proceso para encontrar el pedido de piezas correspondiente se repite.
Un Pedido con Entrega Dividida
Como se explicó en la sección Entrega Dividida: Una Pesadilla para el Concesionario, una entrega dividida ocurre cuando algunas cajas no se envían como se esperaba, y se crea una nueva entrega, pero la etiqueta de envío no se actualiza.
El concesionario recibe una caja, y la etiqueta de envío indica un número de entrega: 8500013805.
El proceso de recepción comienza llamando al API de entregas para obtener la información de entrega.
Obtener la Entrega
curl --location 'https://qa-cloud-api.brp.com/dcp/v4/delivery/8500013805' \
--header 'Dealer-Number: 0000690005' \
--header 'Authorization: Bearer REPLACE_ME' 👉 Tenga en cuenta que la delivery_qty propiedad es nula para los artículos. Esto indica que la entrega fue dividida, pero la confirmación se encuentra en el pedido de partes.
Obtenga el Pedido de Partes
El sales_order_no se encuentra en la API de entregas respuesta y se utiliza para obtener el pedido de partes.
👉 En realidad, tu DMS debería buscar el pedido de piezas en su base de datos.
curl --location 'https://qa-cloud-api.brp.com/dcp/v4/parts/orders?dealer_no=0000690005&sales_order_no=1030223136' \
--header 'Authorization-Dealer: THE_ACCESS_TOKEN' \
--header 'Authorization: Bearer REPLACE_ME'En este ejemplo, la parte recibida está fácilmente vinculada al pedido de partes.
Obtener la factura
El número de factura se puede recuperar de la lista de pedidos de piezas deshipping_lines.deliveries.billings.billing_no objetos, y llamando a la API de facturas para obtener la factura.
curl --location 'https://qa-cloud-api.brp.com/dcp/v4/invoice/9030149646' \
--header 'Dealer-Number: 0000690005' \
--header 'Authorization: Bearer REPLACE_ME'Obtener la Entrega Dividida
Dado que su DMS recibe pedidos de piezas todos los días, el concesionario puede recuperar la información de entrega dividida utilizando el número de entrega 8900000704.
curl --location 'https://qa-cloud-api.brp.com/dcp/v4/delivery/8900000704' \
--header 'Dealer-Number: 0000690005' \
--header 'Authorization: Bearer REPLACE_ME' Procesar los Artículos
Veamos el artículo de la respuesta de entrega con la delivery_item_no propiedad establecida en "000020".
{
"delivery_item_no": "000020",
"product_code": "420931795",
"product_description": "OIL SEAL",
"order_qty": null,
"delivery_qty": null,
"package_qty": 1,
"sales_order_no": "1030223136",
"sales_order_item_no": "000301",
"dealer_po_no": "test",
"tracking_details": []
}Dado que tenemos el pedido de piezas, podemos buscar la deliveries de cada artículo pedido para encontrar el que tenga la delivery_item_no propiedad igual a "000020". Encontramos este artículo.
{
"ordered_line": {
"item_id": "0050568414291EECBA9EA6F32052A8E9",
"item_no": "000300",
"product_code": "420931795",
"product_descr": "OIL SEAL",
"order_qty": 5,
"dealer_po_item_no": "",
"dealer_product_code": "",
"sales_uom": "PC",
"min_order_qty": 1,
"is_sales_bom": false,
"product_line": "SNO",
"product_type": "30",
"texts": []
},
"shipping_lines": [
{
"item_no": "000301",
"product_code": "420931795",
"product_descr": "OIL SEAL",
"ship_qty": 5,
"sales_uom": "PC",
"price_uom": "PC",
"package_uom": "PC",
"in_package": {
"qty": 1,
"uom": "PC"
},
"package_count": 5,
"msrp_unit_price": 18.49,
"wholesale_unit_price": 10.98,
"net_unit_price": 11.2,
"currency": "USD",
"is_substitute_product": false,
"substituted_product_code": null,
"product_line": "SNO",
"product_type": "30",
"plant": {
"name": "BRP - BELOIT",
"city": "BELOIT",
"state": "WI",
"country": "US"
},
"pricings": [
{
"condition_type": "gross_amt",
"total_amount": 54.9,
"currency": "USD"
},
{
"condition_type": "tax_amt",
"total_amount": 3.36,
"currency": "USD"
},
{
"condition_type": "subtotal_amt",
"total_amount": 56,
"currency": "USD"
},
{
"condition_type": "surcharge_amt",
"total_amount": 1.1,
"currency": "USD"
}
],
"deliveries": [
{
"status_code": "shipped",
"status_date": "2022-06-17T14:05:14Z",
"status_descr": "",
"qty": 5,
"availability_date": "2022-06-16",
"no": "8900000704",
"item_no": "000020",
"delivery_qty": 5,
"creation_date": "2022-06-16T16:19:06Z",
"carrier_name": "",
"split_delivery_no": "8500013805",
"split_delivery_item_no": "000020",
"billings": [
{
"billing_no": "9030033039",
"billing_item_no": "000301",
"billing_creation_date": "2022-06-16T22:00:10Z",
"billing_qty": "5.000",
"is_cancelled": false,
"cancellation_billing_no": ""
}
]
},
{
"status_code": "shipped",
"status_date": "2023-08-14T19:23:24Z",
"status_descr": "",
"qty": null,
"availability_date": "2022-06-15",
"no": "8500013805",
"item_no": "000020",
"delivery_qty": 0,
"creation_date": "2022-06-10T15:43:11Z",
"carrier_name": "",
"split_delivery_no": "",
"split_delivery_item_no": "",
"billings": []
}
],
"statuses": []
}
]
}Al observar el deliveries array, encontramos la entrada con el número de entrega que usamos (8500013805) y otra con un número de entrega de 8900000704. Esa última entrada tiene la split_delivery_no propiedad establecida en 8500013805, el número de entrega que se encuentra en la etiqueta de envío.
La entrada de entrega 8900000704 contiene la información de factura correcta (facturación).
👉 Si no encuentras el artículo mientras miras la delivery_item_no, busca de nuevo usando la split_delivery_item_no.
Es raro, pero no imposible que el delivery_item_no sea diferente entre las entregas originales y divididas.
Obtener la Factura
La información de la factura para estos artículos se puede recuperar, y se puede llamar a la API de facturas para obtener la factura.
Tenga en cuenta que los datos de la factura contienen el número de entrega dividido (8900000704).
curl --location 'https://qa-cloud-api.brp.com/dcp/v4/invoice/9030033039' \
--header 'Dealer-Number: 0000690377' \
--header 'Authorization: Bearer REPLACE_ME'Rastreo del Envío
Para el concesionario, rastrear el envío es un aspecto esencial del pedido y recepción de piezas. La información de seguimiento se obtiene en dos pasos:
- Obtén el pedido de piezas actualizado a través del API de Orden de Piezas para obtener la información de entrega.
👉 Recuerda que en la API de Pedido de Piezas Requisitos de DSP la sección, el requisito 11 especifica que tu DMS debe recuperar el pedido de piezas existente diariamente llamando a la API de Pedido de Piezas Get servicio.
El concesionario puede acceder a la información de entrega y facturación recuperando el pedido de piezas actualizado diariamente.
Digamos que su DMS recuperó el siguiente pedido de piezas.
El pedido de piezas contiene nueve artículos. Verá en la entregas sección que hay tres números de entrega (no):
- 8502050884 con ocho artículos.
- 8502049960 con 1 artículo.
- 8502051148 con 1 artículo.
Los números de entrega se pueden usar para obtener información de entrega llamando a la API de entregas.
{
"delivery_no": "8502050884",
"dealer_no": "0000690012",
"customer_address": {
"street": "1601 MAIN STREET",
"city": "LUXEMBURG",
"state": "WI",
"country": "US",
"postal_code": "54217-1311"
},
"shipping_condition": "S0",
"ship_to_no": "0000690012",
"ship_to_address": {
"street": "1601 MAIN STREET",
"city": "LUXEMBURG",
"state": "WI",
"country": "US",
"postal_code": "54217-1311"
},
"last_change_date": "2024-05-17T00:00:00Z",
"items": [
{
"delivery_item_no": "000010",
"product_code": "271001039",
"product_description": "SPACER",
"order_qty": 2,
"delivery_qty": 2,
"package_qty": 1,
"sales_order_no": "1031012033",
"sales_order_item_no": "000101",
"dealer_po_no": "9329",
"tracking_details": [
{
"tracking_no": "1Z65R5V50303332698",
"tracking_url": "https://wwwapps.ups.com/WebTracking/track?loc=en_US&AgreeToTermsAndConditions=yes&track.x=26&track.y=5&trackNums=1Z65R5V50303332698"
}
]
},El distribuidor puede usar la URL para acceder al sitio del transportista y verificar el estado del envío.
Por ejemplo, seguir el tracking_url enlace abre el sitio de FedEx aquí:

Recibe las Entregas con Anticipación
Otra forma de ayudar al distribuidor es recuperar la información de entrega con anticipación.
👉 En la API de Entregas Requisitos Funcionales sección, hay un requisito opcional que su DMS recupere las entregas existentes diariamente.
Por ejemplo, las entradas de entrega que han cambiado en los últimos 7 a 30 días pueden ser solicitadas diariamente.
curl --location 'https://cloud-api.brp.com/dcp/v4/deliveries?last_change_date_from=2023-10-31' \
--header 'Dealer-Number: 0000693441' \
--header 'Authorization: Bearer REPLACE_ME' Ves que las primeras y últimas entregas tienen información de seguimiento en la trackings propiedad. Esto indica que los artículos han sido enviados. La otra entrega, sin la información de seguimiento, está lista y esperando ser recogida por el transportista.
En la última información de entrega, hay dos diferentes tracking_no, lo que significa que los 2 artículos han sido enviados en diferentes paquetes.
Usar la URL para visitar el sitio del transportista muestra los dos paquetes en el envío.