Compreendendo o Pedido de Peças
Esta seção baseia-se nas informações fornecidas na Começando seção e entra em mais detalhes sobre os diferentes serviços da API de pedidos de peças.
Visão Geral do Processo de Negócios de Pedidos de Peças
Esta seção apresenta uma visão geral do processo de negócios de pedidos de peças. Os sistemas de backend da BRP gerenciam os pedidos de peças, principalmente usando SAP, e seu impacto no seu DMS é sentido através da API de pedidos de peças.

O processo começa quando o revendedor cria um pedido de peça em seu DMS.
Seu DMS deve chamar o API de Concessionárias para recuperar os métodos de envio disponíveis para o revendedor e mostrá-los na tela.
O revendedor deve ter acesso ao catálogo de peças BRP, obtido através do API de Peças, para pesquisar e selecionar as peças a serem encomendadas.
Se ainda não foi feito, o revendedor faz login no BOSSWeb usando suas credenciais através do seu DMS, e você salva o access_token retornado pelo API de Autenticação do Revendedor.
O revendedor usa o Validar função no seu DMS para enviar o pedido de peças para validação.
- A API de Pedido de Peças recebe a carga útil e a envia para o SAP.
- O SAP valida o pedido de peças e retorna o resultado para a API de Pedido de Peças.
- Seu DMS recebe a resposta e exibe o resultado para o revendedor.
- Se mensagens de erro aparecerem, elas são exibidas ao revendedor, que deve corrigir o pedido de peças e validar o pedido modificado.
- O revendedor verifica o pedido de peças e os custos resultantes, incluindo taxas de entrega, para garantir que estão conforme o esperado.
🛑 Você tem que lidar com o tempo limite no Validar função que ocorre se houver mais de 30 itens de linha no pedido de peças.
Veja o Ver Fluxo de Dados seção abaixo para informações sobre como lidar com o tempo limite.
Quando o revendedor está satisfeito com o pedido de peças, ele usa o Criar função no seu DMS.
- A API de Pedido de Peças recebe a carga útil e a envia para o SAP.
- O SAP valida o pedido de peças e, se for válido, cria e salva o pedido.
- O resultado é retornado para a API de Pedido de Peças: ou o pedido de peças criado ou uma mensagem de erro é retornada.
- Se o pedido de peças for criado, você o salva no banco de dados do DMS. Se uma mensagem de erro aparecer, ela é exibida para o revendedor.
🛑 Você tem que lidar com o tempo limite no Criar função que ocorre se houver mais de 25 itens de linha no pedido de peças.
Veja o Ver Fluxo de Dados seção abaixo para informações sobre como lidar com o tempo limite.
O pedido de peças retornado é não completo quando o SAP o retorna pela primeira vez. Por exemplo, as informações de entrega não estão disponíveis quando o pedido de peças é criado.
🚴♂️ Leva em média 2 segundos por item de linha para o SAP processar o pedido de peças. Portanto, processar um pedido de peças com 60 itens de linha leva pelo menos 2 minutos.
Sua interface de usuário DMS deve lidar com esse longo processamento em segundo plano.
O SAP trabalha no backend para completar o pedido de peças. As principais atividades são:
- Confirme a disponibilidade das peças e em qual armazém elas estão disponíveis.
- Prepare o pedido de envio do(s) armazém(s) onde as peças estão disponíveis para o revendedor.
- Por favor, note que as peças podem ser enviadas de diferentes armazéns; neste caso, o revendedor receberá mais de um envio.
- Se uma peça não estiver disponível, o SAP tenta determinar uma data de disponibilidade e atualizar o pedido de peças com a informação.
Seu DMS deve chamar a API de Pedido de Peças Obter serviço para atualizar as informações do pedido de peças. Uma chamada para o Obter serviço deve ser feita enquanto o pedido de peças estiver aberto (não concluído).
A chamada pode ser feita regularmente ou quando o pedido de peças é exibido ao revendedor. O revendedor pode ver as informações de entrega para cada item do pedido atualizando o pedido de peças.
Dependendo do número de itens na ordem de peças, o SAP pode levar de 10 a 15 minutos para processá-la completamente.
Quando a SAP prepara o pedido de peças, as informações de entrega são enviadas para o(s) armazém(ns) e os itens são entregues ao revendedor.
A principal informação a lembrar no processo de negócios:
- Leva tempo para o SAP processar o pedido de peças, e a API de Pedido de Peças retorna um tempo limite se houver mais de 25 itens de linha ao chamar o serviço Criar.
- Leva tempo para o SAP processar o pedido de peças, e seu DMS deve chamar o serviço Obter para atualizar o pedido de peças no banco de dados do DMS.
- O SAP processa o pedido de peças em uma média de 2 segundos por item de linha, então um pedido de peças com 60 itens de linha leva pelo menos 2 minutos para ser processado.
No seu DMS, o botão de enviar/criar não deve estar habilitado se a validação não foi feita para todos os pedidos de peças com 30 itens de linha ou menos.
Login do Revendedor
Na primeira vez que o revendedor usa uma operação da API de Pedido de Peças, ele deve fazer login no BOSSWeb através do API de Autenticação do Revendedor. O processo de login fornece a você um access_token e refresh_token.
❗ ❗ As seções a seguir fornecem informações essenciais sobre o processo de Autenticação do Revendedor ❗ ❗
👉 Reserve um tempo para ler todas elas!
Autenticação do Revendedor e Múltiplas Lojas de Revendedores
Algumas concessionárias fazem parte de um grupo de revendedores com várias localizações. Em alguns casos, cada concessionária gerencia seus pedidos, enquanto em outros casos, uma das localizações cria pedidos para todas as concessionárias.
No primeiro cenário, cada concessionária deve obter um access_token o API de Autenticação do Revendedor.
No segundo cenário, a concessionária que gerencia os pedidos para todos os locais deve obter um access_token o API de Autenticação do Revendedor.
❗❗ A informação vital a lembrar é que o access_token obtido através da API de Autenticação do Revendedor deve ser para o concessionário cujo número de concessionário é usado no dealer_no campo da carga útil ou do cabeçalho ❗❗
Por exemplo, digamos que temos os concessionários 000069001 e 0000690002, e que o concessionário 000069001 cria pedidos para ambos os locais.
O access_token deve ser obtido para o revendedor 000069001, e o dealer_no campo na carga útil deve ser 0000690001.
Ao fazer um pedido para outro local, os partner.bill_to_no e partner.ship_to_no campos são usados para especificar o revendedor para o qual o pedido é criado.
❗❗ Em resumo, não podemos usar um access_token para todos os seus revendedores, a menos que eles façam parte do grupo com um revendedor criando pedidos para todos os locais ❗❗
Permissões do Revendedor no BOSSWeb
As credenciais de qualquer pessoa da concessionária podem ser usadas para fazer login no BOSSWeb através do API de Autenticação do Revendedor.
No entanto, para o Dealer Authentication retornado access_token a ser usado em chamadas para a API de Pedido de Peças, a pessoa da concessionária que está fazendo login deve ter as permissões de Pedido PAA.
❗ ❗ Se a pessoa da concessionária que faz login no BOSSWeb não tiver as permissões de Pedido PAA, você receberá um código de status 401 Não Autorizado ao chamar a API de Pedido de Peças ❗ ❗

Token de Atualização
Conforme descrito na Autenticação do Concessionário seção, o access_token retornado pela API de Autenticação do Revendedor expira após 2 horas.
O refresh_token, também retornado pela API de Autenticação do Revendedor, deve ser salvo e usado para obter um novo access_token quando, ou antes, o atual expirar.
Apenas um conjunto de access_token e refresh_token deve ser usado para acessar a API de Pedido de Peças.
Isso significa que apenas uma pessoa da concessionária pode fazer login no BOSSWeb, e todos os usuários do DMS que têm acesso às funções de pedido de peças podem usar o mesmo conjunto de tokens.
Como lembrete, o refresh_token nunca expira, a menos que suas credenciais do DMS sejam revogadas.
Operações
Esta seção apresenta detalhes sobre as operações da API de Pedido de Peças.
Validar, Criar e Verificar
A API de Pedido de Peças Validar e Criar operações são as mais críticas, e um entendimento profundo delas é essencial para fornecer aos revendedores a funcionalidade esperada e atender aos requisitos de certificação.
O fluxo do processo começa com o revendedor preparando um pedido de peças em seu DMS, conforme mostrado no Passo 1 da seção Visão Geral do Processo de Negócio do Pedido de Peças.
O segundo passo é obter o access_token e refresh_token se você já os tiver.
As chamadas para o Validar e Criar serviço podem então ser feitas.
❗ Uma vez que um pedido de peças foi criado com uma chamada para o Criar Pedido serviço, não pode ser modificado ❗
Você não pode adicionar ou remover itens do pedido de peças criado.
A única ação é cancelar um item chamando o Cancelar Linha do Pedido serviço.
Somente um item de linha no pedido em atraso ou bloqueado pode ser cancelado se o pedido estiver completo!
Se o estado do pedido for em processo ou pendente, qualquer item pode ser cancelado.
Cenário 1: Menos de 25 Itens de Linha
Neste cenário, o revendedor cria um pedido com menos de 25 itens de linha.
O diagrama de sequência mostra que o primeiro passo é chamar o Validar serviço para verificar o pedido. A API de Pedido de Peças retorna a resposta recebida do SAP para o DMS.
Seu DMS deve exibir a resposta recebida, incluindo quaisquer mensagens de aviso e erro, bem como os custos de envio.
Uma vez que o revendedor tenha feito as correções necessárias, ele enviará o pedido, e seu DMS chamará a API para criá-lo.
Se não houver erros, a API retorna o pedido de peças criado pelo SAP para o seu DMS. Este pedido de peças deve ser salvo no banco de dados do DMS para visualização posterior.
Se ocorrerem erros, eles são exibidos para o revendedor.
sequenceDiagram
DMS->>DMS: O revendedor prepara o pedido
DMS->>DMS: O revendedor valida o pedido
DMS->>BOSSWeb: Login
BOSSWeb-->>DMS: Código de acesso
DMS->>API: Validar
API->>SAP: Validar
SAP-->>API: Resposta de validação
API-->>DMS: Resposta de validação
DMS->>DMS: Exibir mensagens de aviso e erro
DMS->>DMS: O revendedor faz correções e valida o pedido
DMS->>API: Validar
API->>SAP: Validar
SAP-->>API: Resposta de validação
API-->>DMS: Resposta de validação
DMS->>DMS: O revendedor envia o pedido
DMS->>API: Criar
API->>SAP: Criar
SAP-->>API: Resposta de criação
API-->>DMS: Resposta de criação
DMS->>DMS: Atualizar o pedido no banco de dados Cenário 2: 26 a 30 Itens de Linha
O revendedor cria um pedido com 26 a 30 itens de linha neste cenário.
Neste cenário, a questão chave é que o serviço de Validação opera corretamente (é ligeiramente mais rápido que Criar), mas o Criar serviço retorna um 504 Gateway Timeout.
O diagrama de sequência mostra que o primeiro passo é chamar o serviço de Validação para verificar o pedido. A API de Pedido de Peças retorna a resposta recebida do SAP para o DMS.
Seu DMS deve exibir a resposta recebida, incluindo quaisquer mensagens de aviso e erro, bem como os custos de envio.
Uma vez que o revendedor tenha feito as correções necessárias, ele enviará o pedido, e seu DMS chamará a API para criar o pedido.
Neste cenário, a chamada para o serviço de Criar retorna um código de status 504 Gateway Timeout.
Para lidar com o timeout, aguarde um momento e então chame o serviço de Verificação .
Sugerimos esperar por um período calculado assim:
esperar = (contagem de itens * 2 segundos) + 10 segundos
Como leva cerca de 2 segundos por item para o SAP criar o pedido, esta é a maneira mais eficiente de esperar.
O serviço Check retorna o pedido de peças criado se não houver erros. Este pedido de peças deve ser salvo no banco de dados DMS para visualização posterior.
Se ocorrerem erros, eles são exibidos para o revendedor.
sequenceDiagram
DMS->>DMS: Revendedor prepara pedido
DMS->>DMS: Revendedor valida pedido
DMS->>BOSSWeb: Login
BOSSWeb-->>DMS: Código de acesso
DMS->>API: Validar
API->>SAP: Validar
SAP-->>API: Resposta de validação
API-->>DMS: Resposta de validação
DMS->>DMS: Exibir mensagens de aviso e erro
DMS->>DMS: Revendedor faz correções e valida pedido
DMS->>API: Validar
API->>SAP: Validar
SAP-->>API: Resposta de validação
API-->>DMS: Resposta de validação
DMS->>DMS: Revendedor envia pedido
DMS->>API: Criar
API->>SAP: Criar
API-->>DMS: status 504 Gateway Timeout
DMS->>DMS: Esperar (2 segundos x contagem de itens) + 10 segundos
DMS->>API: Verificar
API->>SAP: Verificar
SAP-->>API: Resposta de verificação
API-->>DMS: Resposta de verificação
DMS->>DMS: Atualizar o pedido no banco de dados Cenário 3: Mais de 30 Itens
Neste cenário, o revendedor cria um pedido com mais de 30 itens de linha.
Como mostrado no diagrama de sequência, o primeiro passo é, como de costume, chamar o serviço de Validar para verificar o pedido.
No entanto, o serviço de Validar retorna um erro 504 Gateway Timeout neste caso.
sequenceDiagram
DMS->>DMS: Revendedor prepara pedido
DMS->>DMS: Revendedor valida pedido
DMS->>BOSSWeb: Login
BOSSWeb-->>DMS: Código de acesso
DMS->>API: Validar
API->>SAP: Validar
API-->>DMS: status 504 Gateway Timeout
DMS->>DMS: Esperar 2 segundos x contagem de itens de linha
DMS->>API: Verificar
API->>SAP: Verificar
SAP-->>API: Resposta de Verificação/Validação
API-->>DMS: Resposta de Verificação/Validação
DMS->>DMS: Exibir mensagens de aviso e erro
DMS->>DMS: Revendedor faz correções e valida pedido
DMS->>API: Validar
API->>SAP: Validar
API-->>DMS: status 504 Gateway Timeout
DMS->>DMS: Esperar 2 segundos x contagem de itens de linha
DMS->>API: Verificar
API->>SAP: Verificar
SAP-->>API: Resposta de Verificação
API-->>DMS: Resposta de Verificação
DMS->>DMS: Revendedor envia pedido
DMS->>API: Criar
API->>SAP: Criar
API-->>DMS: status 504 Gateway Timeout
DMS->>DMS: Esperar 2 segundos x contagem de itens de linha
DMS->>API: Verificar
API->>SAP: Verificar
SAP-->>API: Resposta de Verificação
API-->>DMS: Resposta de Verificação
DMS->>DMS: Atualizar o pedido no banco de dados Se o pedido de peças tiver mais de 30 itens, você deve usar o Verificar serviço para obter o Validar status da resposta.
Neste cenário, a chamada para o Criar serviço retorna um código de status 504 Gateway Timeout.
Para lidar com o timeout, aguarde um momento e então chame o Verificar serviço.
❗ ❗ Não permita que o revendedor reenvie o pedido de peças após um timeout ❗ ❗
Isso resultaria na mesma ordem sendo criada muitas vezes no SAP!
Sugerimos esperar de 20 a 30 segundos entre as chamadas para o Verificar serviço até que o pedido seja processado.
👉 Observe que pode levar mais de 2 segundos para o SAP processar um item de linha para algumas peças! Além disso, o Verificar serviço pode retornar um erro indicando que o pedido não está pronto.
O Verificar serviço retorna o pedido de peças criado se não houver erros. Este pedido de peças deve ser salvo no banco de dados DMS para visualização posterior.
Se ocorrerem erros, eles são exibidos para o revendedor.
Cenário 4: Erros de Validação e Criar
A etapa de validação do pedido de peças tem dois objetivos principais:
- Detectar erros e avisos antes que o serviço seja chamado, permitindo que o revendedor faça as alterações necessárias.
- Exemplo de erros:
- Número de peça inválido (número de peça não-BRP).
- Peça obsoleta ou não vendável.
- Peça vintage.
- Peça descontinuada.
- Peça em uma linha de produto não autorizada para o revendedor.
- Exemplo de avisos:
- Parte em atraso.
- Custos de frete.
- Status especial.
- Pacotes.
- Arredondamento da quantidade para a Quantidade Mínima de Pedido (MoQ).
- Exibir as taxas de envio e o custo total do pedido para o revendedor. O revendedor pode então modificar o pedido de peças para reduzir as taxas de envio e/ou o preço total.
O método de envio do revendedor afeta as taxas de envio quando o pedido de peças é criado.
Veja o API de Concessionárias para informações sobre os métodos de envio.
sequenceDiagram
DMS->>DMS: Revendedor prepara pedido
DMS->>DMS: Revendedor valida pedido
DMS->>BOSSWeb: Login
BOSSWeb-->>DMS: Código de acesso
DMS->>API: Validar
API->>SAP: Validar
SAP-->>API: Resposta de validação
API-->>DMS: Resposta de validação
DMS->>DMS: Exibir mensagens de aviso e erro
DMS->>DMS: Revendedor faz correções e valida pedido
DMS->>API: Validar
API->>SAP: Validar
SAP-->>API: Resposta de validação
API-->>DMS: Resposta de validação
DMS->>DMS: Revendedor envia pedido
DMS->>API: Criar
API->>SAP: Criar
SAP-->>API: Resposta de criação
API-->>DMS: Resposta de criação
DMS->>DMS: Atualizar o pedido no banco de dados Cenário 5: Criar Erros
A API não deve retornar um erro se o pedido de peças for validado antes do método Criar for chamado.
No entanto, você deve gerenciar todos os erros retornados pela API em todos os cenários.
Neste caso, o Criar pode retornar um erro, por exemplo:
- Número de peça inválido (número de peça não-BRP).
- Peça obsoleta ou não vendável.
- Peça vintage.
- Peça descontinuada.
- Peça em uma linha de produto não autorizada para o revendedor.
Se houver um erro, o Criar serviço retorna um status 400 Bad Request, como este retornado quando o revendedor inclui uma peça descontinuada no pedido:
{
"status": 400,
"id": "rrt-034a69794cf75546f-d-ea-6489-65327577-1.1",
"title": "not_found",
"meta": [
{
"service": "07",
"payload": {
"errors": [
{
"code": "Not Saleable",
"title": "PAA Order Validate (API/Method)",
"detail": "Part number is not saleable- please contact your PAA analyst",
"meta": {
"product_code": "1301200012",
"item_id": "16137d90-a062-4465-9e42-4e6c91c6f595",
"message": "014 - Warning - Your part is not available for item_id = 16137d90-a062-4465-9e42-4e6c91c6f595 product_code = 1301200012 (/BRP/PART_ORDER/061)"
}
}
]
}
}
]
}Isso significa que o pedido de peças não foi criado.
Neste caso, o revendedor pode fazer as correções necessárias removendo a peça descontinuada e reenviando o pedido.
Obter Pedidos
O Obter serviço é usado para recuperar um ou muitos pedidos de peças enviados pelo revendedor.
👉Uma chamada para o Obter serviço para recuperar uma lista de pedidos de peças, por exemplo, usando um intervalo de datas, também retorna os pedidos de peças criados pelo revendedor no BOSSWeb.
❗❗ O Obter serviço é essencial para ajudar o revendedor no processo de recepção de pedidos de peças. ❗❗
Se os pedidos de peças não forem carregados e atualizados em seu banco de dados DMS, o API de Entregas e API de Faturas não podem ser usados para vincular as peças recebidas ao pedido de peças.
A busca é feita usando um conjunto de parâmetros:
- O ID do pedido de peças retornado pela Criar chamada.
- O número do pedido de venda que foi retornado pela Criar chamada.
- O número do pedido do revendedor.
- O tipo de pedido.
- Uma faixa de datas de criação (de/para).
- O status do pedido.
Você pode encontrar mais informações sobre os Obter parâmetros de serviço na Listar Pedidos documentação da chamada.
Ao recuperar um pedido de peças com uma chamada para Obter, informações não disponíveis na Criar a resposta do serviço é obtida.
Na Criar resposta, a entregas propriedade de um item shipping_lines não contém as informações de faturamento.
Na Criar resposta, a entregas propriedade se parece com isso.
"deliveries": [
{
"status_code": "allocated",
"status_date": "2023-07-18T10:14:42Z",
"status_descr": "",
"qty": 1,
"availability_date": "2023-07-20",
"no": "",
"item_no": "",
"delivery_qty": 0,
"creation_date": null,
"carrier_name": "",
"billings": []
}
],O status_code propriedade alocado valor indica que a parte foi atribuída ao pedido de peças, mas ainda não foi enviada.
Chamando o Obter serviço mais tarde para recuperar o pedido de peças, a entregas propriedade parece assim.
"deliveries": [
{
"status_code": "shipped",
"status_date": "2022-01-27T13:42:35.000Z",
"status_descr": null,
"qty": 1,
"availability_date": "2022-01-27",
"no": "8020007398",
"item_no": "000030",
"delivery_qty": 1,
"creation_date": "2022-01-27T06:39:28.000Z",
"carrier_name": "FEDEX",
"billings": [
{
"billing_no": "9027150046",
"billing_item_no": "000803",
"billing_creation_date": "2022-01-27T17:59:56.000Z",
"billing_qty": 1,
"is_cancelled": false
}
]
}
],A entregas propriedade agora contém o número do documento de entrega (no), o nome do transportador e as informações de faturamento, incluindo o número da fatura (billing_no).
👉 Observe que o status_code do item agora é enviado.
Esta seção explica por que é essencial ligar para o Obter serviço para atualizar as informações do pedido de peças, mesmo que alguns itens ainda estejam alocados.
O melhor é atualizar o pedido de peças no seu DMS em lotes em intervalos regulares, ou quando o pedido de peças for exibido ao revendedor.
Você deve ligar para o Obter serviço para atualizar o pedido até que seu status seja enviado.
"header_statuses": [
{
"type": "success",
"code": "completed",
"descr": "Your order has been shipped"
}
],Cancelar Item
O Cancelar serviço permite que o revendedor cancele um item de uma ordem de peças se o item estiver em atraso ou bloqueado.
Apenas um item em atraso ou bloqueado pode ser cancelado se o pedido estiver concluído!
Se o estado do pedido for 'em processo' ou 'pendente', qualquer item pode ser cancelado.
O status do pedido de peças é encontrado no header_statuses array. Se um dos status for em_processo ou pendente, qualquer item pode ser cancelado.
"header_statuses": [
{
"type": "success",
"code": "in_process",
"descr": "Your order is in process"
},
{
"type": "warning",
"code": "",
"descr": "Pay special attention to the status of certain parts"
},
{
"type": "warning",
"code": "",
"descr": "If your order is blocked for more info please open a case"
}
],A chamada é simples: você fornece a lista de itens a serem cancelados em um Cancelamento de Pedido de Peças recurso. Se os itens forem canceláveis, você receberá uma ordem de peças atualizada que deve ser salva em seu banco de dados DMS.
sequenceDiagram
DMS->>DMS: O revendedor seleciona um pedido
DMS->>DMS: O revendedor seleciona um ou mais itens de linha
DMS->>DMS: O revendedor cancela os itens de linha
DMS->>BOSSWeb: Login
BOSSWeb-->>DMS: Código de acesso
DMS->>API: Cancelar
API->>SAP: Cancelar
SAP-->>API: Resposta de cancelamento
API-->>DMS: Resposta de cancelamento
DMS->>DMS: Atualizar o pedido no banco de dados👉 Como você atualizou o pedido de peças com uma chamada para o Obter serviço quando o pedido de peças é exibido, você pode habilitar a função de cancelamento apenas em itens de linha que têm um status de pedido em atraso ou bloqueado. 😁
Observe que se todos os itens de linha forem cancelados, o próprio pedido de peças é cancelado, e isso é refletido na header_statuses propriedade.
"header_statuses": [
{
"type": "success",
"code": "completed",
"descr": "Your order has been cancelled"
}Pedido de Peças
Esta seção explica as informações essenciais sobre o pedido de peças encontradas na Recurso: Pedido de Peças seção.
Métodos de Envio
Um campo importante do Pedido de Peças recurso é a shipping_condition propriedade (também chamada de método de envio, que é a mesma coisa), que indica como o pedido de peças é enviado ao revendedor.
O método de envio selecionado afeta diretamente o custo total do pedido de peças, pois alguns métodos são mais caros do que outros.
Os métodos de envio disponíveis para o revendedor estão listados no Revendedores recurso do API de Concessionárias.
Os métodos de envio disponíveis do revendedor podem mudar com base no nível de certificação do revendedor.
Seu DMS deve chamar o API de Concessionárias pelo menos uma vez por dia para recuperar a lista mais recente de métodos de envio disponíveis para o revendedor.
O primeiro método de envio no shipping_methods array é o padrão, e seu DMS deve selecioná-lo por padrão.
Esta é uma API de Concessionárias resposta para o revendedor 0000690095.
{
"dealer_no": "0000690095",
"dealer_name": "ENGELHART SPORTS CENTER",
"legal_name": "ENGELHART, INC.",
"address": {
"street": "1589 GREENWAY CROSS",
"city": "MADISON",
"state": "WI",
"country": "US",
"postal_code": "53713-3112"
},
"language": "EN",
"time_zone": "UTC-06000",
"partners": [
{
"partner_type": "BP",
"partner_no": "0000690095",
"partner_name": "ENGELHART SPORTS CENTER",
"address": {
"street": "1589 GREENWAY CROSS",
"city": "MADISON",
"state": "WI",
"country": "US",
"postal_code": "53713-3112"
}
},
{
"partner_type": "SH",
"partner_no": "0000690095",
"partner_name": "ENGELHART SPORTS CENTER",
"address": {
"street": "1589 GREENWAY CROSS",
"city": "MADISON",
"state": "WI",
"country": "US",
"postal_code": "53713-3112"
}
}
],
"shipping_methods": [
{
"shipping_method": "S2",
"shipping_method_descr": "Vehicle Down"
},
{
"shipping_method": "S3",
"shipping_method_descr": "Veh. Down Saturday"
}
],
"product_lines": [
"SNO",
"ATV",
"3WV"
]
}A tela de pedido de peças correspondente no BOSSWeb, com o método de envio padrão selecionado, também está incluída.

As informações para outro revendedor (0000694380) estão mostradas abaixo e indicam que apenas 2 métodos de envio estão disponíveis para o revendedor.
{
"dealer_no": "0000694380",
"dealer_name": "BAYCO SALES RENTALS LIMITED",
"legal_name": "BAYCO SALES RENTALS LIMITED",
"address": {
"street": "12-16 WATER STREET",
"city": "BAIE VERTE",
"state": "NL",
"country": "CA",
"postal_code": "A0K 1B0"
},
"language": "EN",
"partners": [
{
"partner_type": "BP",
"partner_no": "0000694380",
"partner_name": "BAYCO SALES & RENTALS LIMITED",
"address": {
"street": "12-16 WATER STREET",
"city": "BAIE VERTE",
"state": "NL",
"country": "CA",
"postal_code": "A0K 1B0"
}
},
{
"partner_type": "SH",
"partner_no": "0000694380",
"partner_name": "BAYCO SALES & RENTALS LIMITED",
"address": {
"street": "12-16 WATER STREET",
"city": "BAIE VERTE",
"state": "NL",
"country": "CA",
"postal_code": "A0K 1B0"
}
}
],
"shipping_methods": [
{
"shipping_method": "S1",
"shipping_method_descr": "Expedited Ground"
},
{
"shipping_method": "S2",
"shipping_method_descr": "Rush"
}
],
"product_lines": [
"SNO",
"ATV",
"SSV"
],
"ev_qualification_level": "E1",
"business_hours": [
"Mon: 09:00-17:00",
"Tue: 09:00-17:00",
"Wed: 09:00-17:00",
"Thu: 09:00-17:00",
"Fri: 09:00-17:00",
"Sat: 00:00-00:00",
"Sun: 00:00-00:00"
],
"service_hours": [
"Mon: 09:00-17:00",
"Tue: 09:00-17:00",
"Wed: 09:00-17:00",
"Thu: 09:00-17:00",
"Fri: 09:00-17:00",
"Sat: 00:00-00:00",
"Sun: 00:00-00:00"
],
"sales_attributes": {
"sales_territory_code": "001",
"sales_district": "NA0001",
"sales_office": "NA01",
"sales_group": "NAA"
}
}Isso está refletido no BOSSWeb.

Seu DMS deve se comportar de maneira semelhante: apresentar apenas os métodos de envio disponíveis para o revendedor e selecionar o padrão.
🛑 Os métodos de envio variam de região para região. Verifique a lista de métodos de envio por região.
De qualquer forma, a fonte da verdade é a informação retornada por o API de Concessionárias.
Parceiros
Ao validar ou criar um pedido de peças, o parceiro indica onde o pedido é enviado (ship_to_no) e o revendedor que é faturado (bill_to_no).
Na maioria dos casos, o ship_to_no e bill_to_no números do revendedor são os mesmos que o dealer_no, o revendedor que está submetendo o pedido.
{
"pac_order_id": "guid",
"dealer_no": "0000700710",
"dealer_po_no": "PO inter1234",
"shipping_carrier": {
"shipping_condition": "30"
},
"partner": {
"bill_to_no": "0000700710",
"ship_to_no": "0000700710"
},A API de Pedido de Peças permite que um pedido seja enviado e faturado para um número de revendedor diferente daquele que está submetendo o pedido de peças.
Esse recurso não é frequentemente utilizado, mas permite que uma concessionária com várias lojas gerencie pedidos de peças a partir de um local central e os envie para vários lugares.
Os números de revendedores parceiros estão configurados para o revendedor e não podem ser selecionados aleatoriamente.
Um revendedor pode optar por faturar outra pessoa por seu pedido de peças...
Se o revendedor tiver diferentes números de revendedores parceiros disponíveis, eles estão listados no Revendedores recurso, como mostrado no exemplo fictício abaixo.
{
"dealer_no": "0000700754",
"dealer_name": "NEW 3 LACS LE MANS",
"legal_name": "NEW TROIS LACS SARL",
"address": {
"street": "AVENUE DU PANORAMA",
"city": "LE MANS",
"state": "59",
"country": "FR",
"postal_code": "72100"
},
"language": "FR",
"partners": [
{
"partner_type": "SH",
"partner_no": "0000700754",
"partner_name": "N3L NANTES SARL NEW 3 LACS NANTES",
"address": {
"street": "AVENUE DU PANORAMA",
"city": "LE MANS",
"state": "59",
"country": "FR",
"postal_code": "72100"
}
},
{
"partner_type": "BP",
"partner_no": "0000700800",
"partner_name": "NEW 3 LACS LE MANS NEW TROIS LACS SARL",
"address": {
"street": "15 RUE DES MOULINS",
"city": "KEDANGE SUR CANNER",
"state": "",
"country": "FR",
"postal_code": "57920"
}
}
],
"shipping_methods": [
{
"shipping_method": "30",
"shipping_method_descr": "BRPED-RÉGULIER"
},
{
"shipping_method": "33",
"shipping_method_descr": "BRPED-RUSH"
}
],
"product_lines": [
"PWC",
"ATV",
"SSV",
"3WV",
"PTN"
]
}Se o revendedor tiver um número de revendedor diferente para entrega, ele deve ser capaz de selecionar seu endereço ou o endereço de entrega para o envio.
Resposta do Pedido de Peças
Esta seção explica as informações importantes do pedido de peças encontradas na Recurso: Resposta do Pedido de Peças seção.
Variações Entre V3 e V4
ID do Pedido PAC
Na resposta retornada pelo Criar serviço, a primeira propriedade é o pac_order_id.
O pac_order_id é o identificador único para o pedido de peças usado pelo SAP.
Na versão V3, o valor GUID fornecido pelo seu DMS no pac_order_id propriedade é usado pelo SAP e retornado na Validar e Criar respostas.
Na versão V4, o SAP usa o valor GUID fornecido pelo seu DMS na pac_order_id propriedade e o retorna na resposta de Validar.
No entanto, o SAP retorna um valor diferente na resposta de Criar.
🛑 O pac_order_id propriedade retornada na Criação a resposta deve ser salva, pois é necessária para identificar o pedido de peças em uma chamada para o Cancelar e Obter serviços.
Número do Pedido de Venda
O sales_order_no propriedade contém o número do documento de venda que o revendedor pode usar para rastrear o pedido.
Na versão V3 da API, a sales_order_no propriedade é repetida em cada objeto de item de linha.
Na versão V4 da API, a sales_order_no propriedade é encontrada apenas no cabeçalho.
ID do Item de Linha Pedido
A item_id propriedade de um item identifica exclusivamente o item no SAP em todos os pedidos.
Na versão V3 a GUID fornecida pelo seu DMS na item_id propriedade é usada pelo SAP e retornada na Validar e Criar respostas.
Na versão V4 o SAP usa o valor GUID fornecido pelo seu DMS na propriedade item_id e o retorna na Validar resposta.
No entanto, a SAP retorna um valor diferente na resposta de Criação.
🛑 O item_id propriedade retornada na resposta de Criação deve ser salva, pois é necessária para identificar o pedido de peças em uma chamada para o Cancelar e Obter serviços.
Status do Pedido
O status global do pedido é encontrado no header_statuses campo.
"header_statuses": [
{
"type": "success",
"code": "in_process",
"descr": "Your order is in process"
},
{
"type": "warning",
"code": "",
"descr": "Pay special attention to the status of certain parts"
},
{
"type": "warning",
"code": "",
"descr": "Your PAA order is less than 250.00$, handling fee of 40.00$ will be applied to the invoice."
}
],A primeira entrada do array é o status geral do pedido. Se houver outras entradas, elas geralmente contêm uma mensagem de aviso para o revendedor.
Status do Cabeçalho
Quando o header_statuses.type valor é sucesso, o header_statuses.codecampo contém um dos valores abaixo.
Código | Descrição |
|---|---|
pendente | O processamento do pedido não começou. |
em_processo | O pedido está sendo entregue. |
concluído | O processamento do pedido está finalizado e foi enviado. Isso não significa que todos os itens foram alocados e enviados! Você precisa verificar o status de cada item. Veja abaixo. |
em_espera | O pedido está em espera, e o revendedor deve entrar em contato com a central de atendimento da BRP. Quando o pedido está em espera, isso é causado por uma regra de negócios. Os revendedores estão cientes disso e sabem o que fazer. |
Quando o header_statuses.code está completo, o status de cada item pode ser verificado.
❗ Isso não significa que todos os itens foram alocados e enviados! Você deve verificar o status de cada item ❗
Status de Entrega do Item
Para cada item, o campo items.shipping_lines.deliveries.status_code contém um dos valores abaixo.
Código | Descrição |
|---|---|
alocado | A peça está disponível, há estoque e será enviada. |
não_alocado | A peça está indisponível; o revendedor deve entrar em contato com o suporte da BRP. |
bloqueado | A peça está bloqueada e o revendedor deve entrar em contato com o suporte da BRP. |
pedido em atraso | A peça está em pedido e será enviada mais tarde. |
rejeitado | A peça foi rejeitada. A peça pode estar obsoleta ou o revendedor não possui a linha de produtos onde a peça é utilizada. |
enviado | A peça foi enviada. |
Exemplo com BOSSWeb
No BOSSWeb, o revendedor pode recuperar o status de uma ou várias peças de um pedido. O BOSSWeb exibe uma tela de resumo com os pedidos das peças encontradas.
No exemplo abaixo, o status do pedido das peças é Concluído, indicando que o processamento está finalizado.

Se o revendedor clicar no Número do PO link, o BOSSWeb exibe o status detalhado do pedido de peças.

Neste exemplo, o pedido de peças contém apenas um item, que foi cancelado, por isso o status do pedido de peças é Concluído.
Se você olhar para o mesmo pedido de peças através da API de Pedido de Peças, a seguinte carga útil é recebida.
{
"items": [
{
"pac_order_id": "VzdGH9}I7k{O{zPIwQJddW",
"sales_order_no": "1031037087",
"creation_date": "2024-08-26T19:09:20Z",
"dealer_po_no": "BU089431",
"dealer_no": "0000690095",
"order_type": "regular",
"shipping_carrier": {
"shipping_condition": "S0",
"shipping_condition_descr": "Standard Ground"
},
"payment_terms": "F030",
"payment_terms_descr": "Fin. (PA&A) - Due in 30 days",
"partners": [],
"pricings": [
{
"condition_type": "gross_amt",
"total_amount": 1134.8,
"currency": "USD"
},
{
"condition_type": "subtotal_amt",
"total_amount": 1134.8,
"currency": "USD"
},
{
"condition_type": "tax_amt",
"total_amount": 62.41,
"currency": "USD"
}
],
"header_texts": [],
"header_statuses": [
{
"type": "success",
"code": "completed",
"descr": "Your order has been cancelled"
},
{
"type": "warning",
"code": "",
"descr": "Pay special attention to the status of certain parts"
}
],
"items": [
{
"ordered_line": {
"item_id": "7FD9D0449FD21EEF98FBD652E9A5279E",
"item_no": "000100",
"parent_item_no": "000000",
"product_code": "278001882",
"product_descr": "BATTERY_12 VOLT 30AH",
"order_qty": 10,
"dealer_po_item_no": "1",
"dealer_product_code": "278001882",
"sales_uom": "PC",
"min_order_qty": 1,
"is_sales_bom": false,
"product_line": "SNO",
"product_type": "30",
"texts": []
},
"shipping_lines": [
{
"item_no": "000101",
"parent_item_no": "000100",
"product_code": "415130650",
"product_descr": "BATTERY_12 VOLT 30AH",
"ship_qty": 10,
"sales_uom": "PC",
"price_uom": "PC",
"package_uom": "PC",
"in_package": {
"qty": 1,
"uom": "PC"
},
"package_count": 10,
"msrp_unit_price": 174.99,
"wholesale_unit_price": 113.48,
"net_unit_price": 113.48,
"currency": "USD",
"is_substitute_product": true,
"substituted_product_code": "278001882",
"product_line": "SNO",
"product_type": "30",
"plant": {
"name": "BRP - BELOIT",
"city": "BELOIT",
"state": "WI",
"country": "US"
},
"pricings": [
{
"condition_type": "gross_amt",
"total_amount": 1134.8,
"currency": "USD"
},
{
"condition_type": "subtotal_amt",
"total_amount": 1134.8,
"currency": "USD"
},
{
"condition_type": "tax_amt",
"total_amount": 62.41,
"currency": "USD"
}
],
"deliveries": [
{
"status_code": "rejected",
"status_date": "2024-08-26T15:09:20Z",
"status_descr": "Cancelled by customer",
"qty": 10,
"availability_date": "2024-08-27",
"no": "",
"item_no": "",
"delivery_qty": 0,
"creation_date": "",
"carrier_name": "",
"split_delivery_no": "",
"split_delivery_item_no": "",
"billings": []
}
],
"statuses": [
{
"type": "success",
"code": "in_process",
"descr": "Your part is in process"
}
]
}
]
}
]
}
],
"links": {
"previous": null,
"next": null
}
}O header_statuses mostra que o pedido de peças está Completo e foi cancelado. Olhando para o estado do item, o deliveries informa que o item foi cancelado.
Parceiros
No cabeçalho do pedido de peças, o dealer_no indica qual revendedor enviou o pedido.
A seção de parceiros fornece informações sobre onde o pedido de peças é enviado (Para) e quem é faturado pelo pedido de peças (Cobrar).
"partners": [
{
"type": "BP",
"no": "0000702933",
"name": "PERFORMANCE NC - GRANBY",
"address": {
"street": "125 PIERRE-PARADIS",
"city": "ST-ALPHONSE DE GRANBY",
"state": "QC",
"country": "CA",
"postal_code": "J0E 2A0"
}
},
{
"type": "SH",
"no": "0000702933",
"name": "PERFORMANCE NC - GRANBY",
"address": {
"street": "125 PIERRE-PARADIS",
"city": "ST-ALPHONSE DE GRANBY",
"state": "QC",
"country": "CA",
"postal_code": "J0E 2A0"
}
}
],Na maior parte do tempo, os endereços de entrega e de cobrança são os mesmos que os listados no pedido de peças.
Preços
O cabeçalho do pedido de peças contém o preços array de objetos que documenta os custos gerais do pedido, conforme mostrado abaixo.
O mesmo preços array de objetos é encontrado para cada item do pedido de peças para documentar os custos dos itens.
Existem diferentes tipos de valores, e nem todos eles estão sempre presentes. No mínimo, o princings array contém os gross_amt , subtotal_amt, e tax_amt objetos de valor.
"pricings": [
{
"condition_type": "gross_amt",
"total_amount": 68.48,
"currency": "USD"
},
{
"condition_type": "tax_amt",
"total_amount": 6.32,
"currency": "USD"
},
{
"condition_type": "handling_fee",
"total_amount": 20,
"currency": "USD"
},
{
"condition_type": "subtotal_amt",
"total_amount": 90.25,
"currency": "USD"
},
{
"condition_type": "surcharge_amt",
"total_amount": 1.77,
"currency": "USD"
}
],Valor Bruto
O valor bruto (gross_amt ) é o custo total do pedido ou item, excluindo outros custos como taxas de manuseio, frete, sobretaxas, impostos, etc.
Valor Subtotal
O valor subtotal ( subtotal_amt ) é o custo total do pedido ou item, incluindo todos os outros custos como taxas de manuseio, frete, sobretaxas, etc., mas excluindo impostos.
Valor do Imposto
O valor do imposto ( tax_amt ) é o total de imposto cobrado pelo pedido ou item. Se houver mais de um imposto cobrado, o valor total é indicado nesta propriedade.
Valor Total
Não há campo que contenha o valor total do item ou do pedido. Se você quiser exibir o valor total em seu DMS, pode adicionar o gross_amt e tax_amt campos.
Linhas de Itens
Para cada item no pedido de peças, duas seções estão presentes:
- Linha Pedida para documentar o que é pedido pelo revendedor.
- Linhas de Envio para documentar o que é enviado para o revendedor.
Por que há uma diferença?
Porque o revendedor pode ter solicitado uma peça que não pode ser enviada.
Por exemplo, se o revendedor solicitou uma peça substituta, isso é documentado na linha_solicitada seção, mas a linha_de_envio seção contém as informações sobre a peça substituta.
👉 Em geral, você deve exibir as linhas_de_envio informações para o revendedor.
Você pode exibir tanto a linha_solicitada e linhas_de_envio se desejar, mas as linhas_de_envio devem ser exibidas, pois o documento mostra as peças que o revendedor receberá.
Linha Solicitada
Documentos o que o revendedor solicitou para este item. O objeto também fornece informações sobre a peça, como a quantidade mínima de pedido (min_qty_pedido), se a peça é um kit (BOM), etc.
"ordered_line": {
"item_id": "005056840C891EEE89B74E33AF157B9B",
"item_no": "000100",
"parent_item_no" : "000000",
"product_code": "250300016",
"product_descr": "STUD_BALL M5 X 15",
"order_qty": 1,
"dealer_po_item_no": "A-0010",
"dealer_product_code": "BRP-250300016",
"sales_uom": "PC",
"min_order_qty": 1,
"is_sales_bom": false,
"product_line": "PWC",
"product_type": "30",
"texts": [
{
"code": "memo_field",
"descr": "Multi valid"
}
]
},Linhas de Envio
Você pode ter visto que shipping_lines é um array de objetos.
Por quê?
Porque um ordered_line pode representar várias partes sendo enviadas ou envios parciais.
No exemplo abaixo, o item pedido é um kit (is_sales_bom é verdadeiro), então uma parte pedida representa várias partes sendo enviadas. Neste exemplo, cinco partes são enviadas.
👉 Quando a parte pedida é um kit, na resposta, a primeira ordered_line objeto é para a parte do kit.
❗ Como esta parte não é a que está sendo enviada, não há shipping_lines ❗
Veja a seção Kits (BOM) abaixo para mais informações sobre kits.
"items": [
{
"ordered_line": {
"item_id": "99D2429AE98C1EEFA09E88AE04114FF7",
"item_no": "000100",
"parent_item_no": "000000",
"product_code": "267000084",
"product_descr": "IMPELLER HOUSING",
"order_qty": 1,
"dealer_po_item_no": "",
"dealer_product_code": "",
"sales_uom": "PC",
"min_order_qty": 1,
"is_sales_bom": true,
"product_line": "PWC",
"product_type": "30",
"texts": [
{
"code": "memo_field",
"descr": "Kit part"
}
]
},
"shipping_lines": []
},
{
"ordered_line": {
"item_id": "99D2429AE98C1EEFA09E88AE0411AFF7",
"item_no": "000200",
"parent_item_no": "000100",
"product_code": "267000417",
"product_descr": "IMPELLER HOUSING",
"order_qty": 1,
"dealer_po_item_no": "",
"dealer_product_code": "",
"sales_uom": "PC",
"min_order_qty": 1,
"is_sales_bom": false,
"product_line": "PWC",
"product_type": "30",
"texts": []
},
"shipping_lines": [
{
"item_no": "000201",
"parent_item_no": "000200",
"product_code": "271002161",
"product_descr": "HOUSING IMPELLER ANODIZED",
"ship_qty": 1,
"sales_uom": "PC",
"price_uom": "PC",
"package_uom": "PC",
"in_package": {
"qty": 1,
"uom": "PC"
},
"package_count": 1,
"msrp_unit_price": 289.99,
"wholesale_unit_price": 172.98,
"net_unit_price": 190.22,
"currency": "USD",
"is_substitute_product": true,
"substituted_product_code": "267000417",
"product_line": "PWC",
"product_type": "30",
"plant": {
"name": "BRP - BELOIT",
"city": "BELOIT",
"state": "WI",
"country": "US"
},
"pricings": [
{
"condition_type": "gross_amt",
"total_amount": 172.98,
"currency": "USD"
},
{
"condition_type": "tax_amt",
"total_amount": 10.46,
"currency": "USD"
},
{
"condition_type": "subtotal_amt",
"total_amount": 190.22,
"currency": "USD"
},
{
"condition_type": "handling_fee",
"total_amount": 17.24,
"currency": "USD"
}
],
"deliveries": [
{
"status_code": "allocated",
"status_date": "2024-10-02T15:26:53Z",
"status_descr": "",
"qty": 1,
"availability_date": "2024-10-07",
"no": "",
"item_no": "",
"delivery_qty": 0,
"creation_date": "",
"carrier_name": "",
"split_delivery_no": "",
"split_delivery_item_no": "",
"billings": []
}
],
"statuses": []
}
]
},
{
"ordered_line": {
"item_id": "99D2429AE98C1EEFA09E88AE04120FF7",
"item_no": "000300",
"parent_item_no": "000100",
"product_code": "267000469",
"product_descr": "PLUG PLASTIC, BLACK",
"order_qty": 1,
"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",
"parent_item_no": "000300",
"product_code": "267000469",
"product_descr": "PLUG PLASTIC, BLACK",
"ship_qty": 1,
"sales_uom": "PC",
"price_uom": "PC",
"package_uom": "PC",
"in_package": {
"qty": 1,
"uom": "PC"
},
"package_count": 1,
"msrp_unit_price": 6.79,
"wholesale_unit_price": 4.09,
"net_unit_price": 4.5,
"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": 4.09,
"currency": "USD"
},
{
"condition_type": "tax_amt",
"total_amount": 0.25,
"currency": "USD"
},
{
"condition_type": "subtotal_amt",
"total_amount": 4.5,
"currency": "USD"
},
{
"condition_type": "handling_fee",
"total_amount": 0.41,
"currency": "USD"
}
],
"deliveries": [
{
"status_code": "allocated",
"status_date": "2024-10-02T15:26:53Z",
"status_descr": "",
"qty": 1,
"availability_date": "2024-10-07",
"no": "",
"item_no": "",
"delivery_qty": 0,
"creation_date": "",
"carrier_name": "",
"split_delivery_no": "",
"split_delivery_item_no": "",
"billings": []
}
],
"statuses": []
}
]
},
{
"ordered_line": {
"item_id": "99D2429AE98C1EEFA09E88C8DD752FF7",
"item_no": "000400",
"parent_item_no": "000100",
"product_code": "271000785",
"product_descr": "WATER OUTLET",
"order_qty": 1,
"dealer_po_item_no": "",
"dealer_product_code": "",
"sales_uom": "PC",
"min_order_qty": 1,
"is_sales_bom": false,
"product_line": "PWC",
"product_type": "30",
"texts": []
},
"shipping_lines": [
{
"item_no": "000401",
"parent_item_no": "000400",
"product_code": "271000785",
"product_descr": "WATER OUTLET",
"ship_qty": 1,
"sales_uom": "PC",
"price_uom": "PC",
"package_uom": "PC",
"in_package": {
"qty": 1,
"uom": "PC"
},
"package_count": 1,
"msrp_unit_price": 3.59,
"wholesale_unit_price": 2.13,
"net_unit_price": 2.34,
"currency": "USD",
"is_substitute_product": false,
"substituted_product_code": null,
"product_line": "PWC",
"product_type": "30",
"plant": {
"name": "BRP - BELOIT",
"city": "BELOIT",
"state": "WI",
"country": "US"
},
"pricings": [
{
"condition_type": "gross_amt",
"total_amount": 2.13,
"currency": "USD"
},
{
"condition_type": "tax_amt",
"total_amount": 0.13,
"currency": "USD"
},
{
"condition_type": "subtotal_amt",
"total_amount": 2.34,
"currency": "USD"
},
{
"condition_type": "handling_fee",
"total_amount": 0.21,
"currency": "USD"
}
],
"deliveries": [
{
"status_code": "allocated",
"status_date": "2024-10-02T15:26:53Z",
"status_descr": "",
"qty": 1,
"availability_date": "2024-10-07",
"no": "",
"item_no": "",
"delivery_qty": 0,
"creation_date": "",
"carrier_name": "",
"split_delivery_no": "",
"split_delivery_item_no": "",
"billings": []
}
],
"statuses": []
}
]
},
{
"ordered_line": {
"item_id": "99D2429AE98C1EEFA09E88C8DD758FF7",
"item_no": "000500",
"parent_item_no": "000100",
"product_code": "267000428",
"product_descr": "IMPELLER COVER",
"order_qty": 1,
"dealer_po_item_no": "",
"dealer_product_code": "",
"sales_uom": "PC",
"min_order_qty": 1,
"is_sales_bom": false,
"product_line": "PWC",
"product_type": "30",
"texts": []
},
"shipping_lines": [
{
"item_no": "000501",
"parent_item_no": "000500",
"product_code": "267000428",
"product_descr": "IMPELLER COVER",
"ship_qty": 1,
"sales_uom": "PC",
"price_uom": "PC",
"package_uom": "PC",
"in_package": {
"qty": 1,
"uom": "PC"
},
"package_count": 1,
"msrp_unit_price": 16.49,
"wholesale_unit_price": 9.88,
"net_unit_price": 10.86,
"currency": "USD",
"is_substitute_product": false,
"substituted_product_code": null,
"product_line": "PWC",
"product_type": "30",
"plant": {
"name": "BRP - BELOIT",
"city": "BELOIT",
"state": "WI",
"country": "US"
},
"pricings": [
{
"condition_type": "gross_amt",
"total_amount": 9.88,
"currency": "USD"
},
{
"condition_type": "tax_amt",
"total_amount": 0.6,
"currency": "USD"
},
{
"condition_type": "subtotal_amt",
"total_amount": 10.86,
"currency": "USD"
},
{
"condition_type": "handling_fee",
"total_amount": 0.98,
"currency": "USD"
}
],
"deliveries": [
{
"status_code": "allocated",
"status_date": "2024-10-02T15:26:53Z",
"status_descr": "",
"qty": 1,
"availability_date": "2024-10-07",
"no": "",
"item_no": "",
"delivery_qty": 0,
"creation_date": "",
"carrier_name": "",
"split_delivery_no": "",
"split_delivery_item_no": "",
"billings": []
}
],
"statuses": []
}
]
},
{
"ordered_line": {
"item_id": "99D2429AE98C1EEFA09E88C8DD75EFF7",
"item_no": "000600",
"parent_item_no": "000100",
"product_code": "205562560",
"product_descr": "SOCKET HEAD SCREW M6 X 25, SCOTCH GRIP",
"order_qty": 10,
"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": "000601",
"parent_item_no": "000600",
"product_code": "205562560",
"product_descr": "SOCKET HEAD SCREW M6 X 25, SCOTCH GRIP",
"ship_qty": 10,
"sales_uom": "PC",
"price_uom": "PC",
"package_uom": "PAC",
"in_package": {
"qty": 10,
"uom": "PC"
},
"package_count": 10,
"msrp_unit_price": 1.99,
"wholesale_unit_price": 1.16,
"net_unit_price": 1.28,
"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": 11.6,
"currency": "USD"
},
{
"condition_type": "tax_amt",
"total_amount": 0.7,
"currency": "USD"
},
{
"condition_type": "subtotal_amt",
"total_amount": 12.76,
"currency": "USD"
},
{
"condition_type": "handling_fee",
"total_amount": 1.16,
"currency": "USD"
}
],
"deliveries": [
{
"status_code": "allocated",
"status_date": "2024-10-02T15:26:53Z",
"status_descr": "",
"qty": 10,
"availability_date": "2024-10-07",
"no": "",
"item_no": "",
"delivery_qty": 0,
"creation_date": "",
"carrier_name": "",
"split_delivery_no": "",
"split_delivery_item_no": "",
"billings": []
}
],
"statuses": [
{
"type": "success",
"code": "",
"descr": "Your part has been created successfully"
}
]
}
]
}
]Além disso, se a parte for substituída, as linhas_de_envio contêm as partes sendo enviadas em substituição à parte encomendada. Veja a seção Substituição abaixo para mais informações.
Você vê no exemplo que as entregas têm propriedades em sua maioria vazias.
Este é sempre o caso na carga de resposta retornada pelo Criar serviço. Como mencionado na Obter Pedidos seção, você deve chamar o Obter serviço para recuperar o pedido de peças atualizado com as entregas propriedades atualizadas.
Uma vez que o pedido de peças esteja totalmente processado, o Obter serviço retorna o pedido de peças concluído, e as entregas propriedades estão disponíveis, como mostrado abaixo.
"deliveries": [
{
"status_code": "shipped",
"status_date": "2022-01-04T16:12:37.000Z",
"status_descr": null,
"qty": 1,
"availability_date": "2022-01-03",
"no": "8019846141",
"item_no": "000020",
"delivery_qty": 1,
"creation_date": "2022-01-03T09:33:59.000Z",
"carrier_name": "FEDEX",
"billings": [
{
"billing_no": "9026960406",
"billing_item_no": "002005",
"billing_creation_date": "2022-01-06T01:03:15.000Z",
"billing_qty": 1,
"is_cancelled": false
}
]
}Informações Especiais do Item
Kits (BOM)
Um kit (ou BOM) é um número de peça que é um conjunto de peças que são vendidas e enviadas juntas.
Um exemplo é a peça 505074936, "CHOQUE FRONTAL," para uma moto de neve. Duas peças são enviadas ao revendedor quando solicitadas, então há três itens no array de itens.
👉 É essencial exibir as informações no objeto shipping_lines para o revendedor para garantir que todos os itens enviados do kit sejam visíveis.
A seguinte resposta é retornada para um pedido com o número da peça 505074936 (alguns campos foram removidos para simplificar o exemplo).
Como mostrado, a resposta contém:
- O primeiro item tem um ordered_line para a parte do kit e uma shipping_lines. As shipping_lines estão vazias porque nenhuma remessa é feita para a parte do kit.
- Cada parte do kit tem um item com um ordered_line e uma shipping_lines com as partes sendo enviadas.
{
"pac_order_id": "919f2871-ec31-4b4a-9218-e96516d88186",
"sales_order_no": "",
"creation_date": "2024-10-02T16:38:22Z",
"dealer_po_no": "PO 0001234",
"dealer_no": "0000690012",
"order_type": "regular",
... some fields removed ....
"items": [
{
"ordered_line": {
"item_id": "19afa98d-67f6-412c-88bc-99eda7740691",
"item_no": "000100",
"parent_item_no": "000000",
"product_code": "505074936",
"product_descr": "FRONT SHOCK",
"order_qty": 1,
"dealer_po_item_no": "",
"dealer_product_code": "",
"sales_uom": "PC",
"min_order_qty": 1,
"is_sales_bom": true,
"product_line": "SNO",
"product_type": "30",
"texts": [
{
"code": "memo_field",
"descr": "Kit part"
}
]
},
"shipping_lines": []
},
{
"ordered_line": {
"item_id": "",
"item_no": "000200",
"parent_item_no": "000100",
"product_code": "505074897",
"product_descr": "FRONT SHOCK",
"order_qty": 1,
"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": "000201",
"parent_item_no": "000200",
"product_code": "505074897",
"product_descr": "FRONT SHOCK",
"ship_qty": 1,
"sales_uom": "PC",
"price_uom": "PC",
"package_uom": "PC",
"in_package": {
"qty": 1,
"uom": "PC"
},
"package_count": 1,
"msrp_unit_price": 819.99,
"wholesale_unit_price": 573.98,
"net_unit_price": 573.98,
"currency": "USD",
"is_substitute_product": false,
... some fields removed ....
}
]
},
{
"ordered_line": {
"item_id": "",
"item_no": "000300",
"parent_item_no": "000100",
"product_code": "505074898",
"product_descr": "FRONT SHOCK",
"order_qty": 1,
"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",
"parent_item_no": "000300",
"product_code": "505074898",
"product_descr": "FRONT SHOCK",
"ship_qty": 1,
"sales_uom": "PC",
"price_uom": "PC",
"package_uom": "PC",
"in_package": {
"qty": 1,
"uom": "PC"
},
"package_count": 1,
"msrp_unit_price": 819.99,
"wholesale_unit_price": 573.98,
"net_unit_price": 573.98,
"currency": "USD",
"is_substitute_product": false,
... some fields removed ....
}
]
}
]
}👉 Observe o seguinte para as peças incluídas em um kit, como qualquer peça.
- O código_do_produto no linha_de_envio pode ser diferente da linha_pedida código_do_produto. Isso acontece quando a peça é automaticamente substituída.
- Uma peça pode ter mais de uma linha_de_envio em um item. Isso ocorre quando as peças são enviadas de diferentes armazéns.
Pacote
Um pacote é uma parte que é vendida apenas em uma caixa com uma quantidade específica. Por exemplo, arruelas geralmente são vendidas em pacotes: quando o revendedor pede uma, ele recebe um pacote de 10.
No exemplo abaixo, o revendedor pediu 2 partes (20037), mas você pode ver nas linhas_de_envio que uma quantidade de 10 é enviada.
"ordered_line": {
"item_id": "005056840C891EEE89B666B2DB26B162",
"item_no": "000100",
"product_code": "20037",
"product_descr": "Washers A4,3 DIN9021-St m Zne(1=10pcs)",
"order_qty": 10,
"dealer_po_item_no": "A-0010",
"dealer_product_code": "BRP-20037",
"sales_uom": "PC",
"min_order_qty": 1,
"is_sales_bom": false,
"product_line": "ATV",
"product_type": "30",
"texts": [
{
"code": "memo_field",
"descr": "Multi valid"
}
]
},
"shipping_lines": [
{
"item_no": "000101",
"product_code": "20037",
"product_descr": "Washers A4,3 DIN9021-St m Zne(1=10pcs)",
"ship_qty": 10,
"sales_uom": "PC",
"price_uom": "PC",
"package_uom": "PAC",
"in_package": {
"qty": 10,
"uom": "PC"
},
"package_count": 10,
"msrp_unit_price": 1.79,
"wholesale_unit_price": 1.09,
"net_unit_price": 1.11,
"currency": "USD",Substituição
Uma substituição ocorre quando uma parte é substituída por outra. Você pode encontrar uma descrição completa da substituição na Substituição de Parte seção da API de Peças página.
Se o revendedor solicitar uma peça substituída, o shipping_lines documentos de propriedade indicam a peça que está substituindo a peça substituída.
No exemplo, o revendedor solicitou a peça 20104, que é substituída pela peça 23408141. O shipping_lines propriedade indica que a peça 20104 é substituída (is_substitute_product é verdadeiro).
{
"ordered_line": {
"item_id": "005056840C891EEE89B644DA48AC301E",
"item_no": "000100",
"product_code": "20104",
"product_descr": "RONDELLE*FLAT WASHER",
"order_qty": 1,
"dealer_po_item_no": "A-0010",
"dealer_product_code": "BRP-20104",
"sales_uom": "PC",
"min_order_qty": 1,
"is_sales_bom": false,
"product_line": "SNO",
"product_type": "30",
"texts": [
{
"code": "memo_field",
"descr": "Multi valid"
}
]
},
"shipping_lines": [
{
"item_no": "000101",
"product_code": "234081410",
"product_descr": "FLAT WASHER 8 MM",
"ship_qty": 1,
"sales_uom": "PC",
"price_uom": "PC",
"package_uom": "PAC",
"in_package": {
"qty": 10,
"uom": "PC"
},
"package_count": 1,
"msrp_unit_price": 0.95,
"wholesale_unit_price": 0.57,
"net_unit_price": 0.57,
"currency": "CAD",
"is_substitute_product": true,
"substituted_product_code": "20104",
"product_line": "PTN",
"product_type": "30",
"plant": {
"name": "BRP - SAINT-JEAN-SUR-RICHELIEU",
"city": "ST-JEAN-SUR-RICHELIEU",
"state": "QC",
"country": "CA"
},
"pricings": [
{
"condition_type": "gross_amt",
"total_amount": 0.57,
"currency": "CAD"
},
{
"condition_type": "tax_amt",
"total_amount": 0.09,
"currency": "CAD"
},
{
"condition_type": "subtotal_amt",
"total_amount": 0.57,
"currency": "CAD"
}
],
"deliveries": [
{
"status_code": "allocated",
"status_date": "2023-07-18T17:29:04Z",
"status_descr": "",
"qty": 1,
"availability_date": "2023-07-20",
"no": "",
"item_no": "",
"delivery_qty": 0,
"creation_date": null,
"carrier_name": "",
"billings": []
}
],
"statuses": [
{
"type": "success",
"code": null,
"descr": "Your part has been created successfully"
}
]
}
]
}Recuperando Pedido de Peças
Tempo Limite de Pedidos
O Obter Pedidos ponto final é usado para recuperar uma lista de pedidos de peças com base em critérios, como a data de criação do pedido de peças ou o status do pedido.
Vamos supor que você queira recuperar os pedidos de peças dos últimos 30 dias para uma grande concessionária com muitos pedidos de peças de 50, 60 e mais itens. Seu DMS usa a seguinte chamada para a API de Pedidos de Peças.
curl --location 'https://cloud-api.brp.com/dcp/v4/parts/orders?dealer_no=0000690012&limit=100&creation_date_from=2024-01-01&creation_date_to=2024-02-01' \
--header 'Authorization-Dealer: THE_ACCESS_TOKEN' \
--header 'Authorization: Bearer REPLACE_ME'Vamos supor que a API de Pedidos de Peças retorne um 504 Gateway erro de tempo limite porque o SAP demora muito para responder em segundo plano.
Uma opção é solicitar o pedido de peças para um intervalo de tempo mais curto, como dois dias de cada vez.
Pode funcionar, mas a API de Pedidos de Peças ainda pode retornar um tempo limite se muitos pedidos de peças grandes forem criados em um dia.
👉 Durante os testes, também recebemos o erro 413 Conteúdo Muito Grande, o que significa que o backend retornou uma resposta maior que 10 MB...
Resumo do Pedido de Peças
A solução é solicitar o pedido de peças resumo em vez da resposta completa.
O resumo do pedido de peças é obtido usando o resumo parâmetro de consulta na chamada para o Obter Pedidos ponto final.
A abordagem é chamar o Obter Pedidos ponto final para obter a seção do cabeçalho do pedido de peças.
curl --location 'https://cloud-api.brp.com/dcp/v4/parts/orders?dealer_no=0000690012&creation_date_from=2024-01-01&creation_date_to=2024-02-01&summary=header_status,pricing&limit=3' \
--header 'Authorization-Dealer: THE_ACCESS_TOKEN' \
--header 'Authorization: Bearer REPLACE_ME'Quando o revendedor quer ver os detalhes do pedido de peças, você chama o Obter Pedido ponto final para recuperar o pedido completo de peças usando o número do pedido de venda.
curl --location 'https://cloud-api.brp.com/dcp/v4/parts/order/1030781664?dealer_no=0000690012' \
--header 'Authorization-Dealer: THE_ACCESS_TOKEN' \
--header 'Authorization: Bearer REPLACE_ME'