Inserindo um pedido externo na plataforma

Para inserir um pedido externo na plataforma Tray Corp, utilize o endpoint Insere um novo pedido na f-store.

Primeiramente, antes de inserir o pedido, é necessário verificar algumas informações relacionais que precisam existir na base de dados para garantir o sucesso da operação.

No esquema abaixo evidenciamos todos os passos necessários para inserir o pedido com sucesso:

Agora que você já tem uma visão geral das etapas, confira o passo a passo detalhado como realizar cada processo.

Consultar se o cliente está cadastrado no site

A consulta pode ser realizada por e-mail, CPF ou CNPJ, utilizando os seguintes endpoints:

GET/usuarios/email/{email}
GET/usuarios/cpf{cpf}
GET/usuários/cnpj{cnpj}

Caso o cliente não esteja cadastrado, será necessário realizar o cadastro do cliente utilizando o endpoint POST/usuarios.

📘

Armazene o ID do cliente, pois essa informação será necessária na inserção do pedido.

Consultar se o endereço do clientes está cadastrado no site

Assim como o cliente precisar estar cadastrado no site, também é obrigatório que o endereço desse cliente esteja cadastrado.

A consulta do endereço pode ser feita por e-mail ou código do usuário, utilizando os seguinte endpoints:
GET/usuarios/{email}/enderecos
GET/usuarios/{usuarioId}enderecos

Se o endereço do cliente não estiver cadastrado, utilize estes endpoints para cadastro:

POST/usuarios
POST/usuarios/{email}/enderecos

📘

Armazene o ID do endereço do cliente, visto que será solicitado na inserção do pedido.

Consultar se o parceiro está cadastrado

Todo pedido externo precisa estar vinculado a um Parceiro, pois é dessa forma que identificamos a origem do pedido. A consulta pode ser realizada pelo nome do parceiro, utilizando o endpoint GET/Parceiros.

Caso o parceiro não esteja cadastrado, realize o cadastro utilizando o endpoint POST/parceiros.

❗️

Ao enviar o campo "Is Marketplace" com o valor "true", não haverão disparos de e-mails transacionais de pedidos.

📘

Armazene o ID do parceiro, pois esse será solicitado na inserção do pedido.

Consultar a situação do pedido

No POST do pedido é obrigatório informar a situação do pedido, utilizando os códigos pré-definidos pela plataforma.

Consulte as situações disponíveis no endpoint Situação dos Pedidos.

Consultar o ID do Centro de Distribuição

O código dos Centros de Distribuição envolvidos no pedido, também precisam ser informados no post do pedido.

Realize a consultar no endpoint Retorna todos os centros de distribuição.

Inserindo o Pedido

Agora que já sabe como obter as informações necessárias para realizar o POST do pedido, vamos partir para etapa inserindo o pedido, mas antes é extremamente importante:

1. Ter as informações mapeadas antes do POST

  1. Código do Usuário
  2. Código do Endereço
  3. Código do Parceiro
  4. Código da Situação Pedido
  5. Código do Centro de Distribuição
  6. Código do Produto Variante

2. O Valor do Frete deve ser enviado nos Ajustes por Produto

  1. Frete por Produto

3. Informações Adicionais de Pagamento

  1. Todas as informações enviadas serão apresentadas no detalhe do pedido no Backoffice
  2. Enviar em Chave e Valor quantas informações forem necessárias

4. O Valor Total é a Soma dos Produtos + Ajustes

📘

Informamos que a API não insere pedidos em duplicidade. Sendo assim, ao tentar inserir um pedido com Id já existente na plataforma, a API retornará uma mensagem informando a existência do pedido com a negativa da solicitação.

Exemplo do JSON

{
  "pedidoId": 0,
  "carrinhoId": "string",
  "situacaoPedidoId": 0,
  "data": "2022-06-17T13:36:23.427Z",
  "valorTotal": 0,
  "valorJuros": 0,
  "valorDesconto": 0,
  "usuarioId": 0,
  "enderecoId": 0,
  "isMobile": true,
  "eventoId": 0,
  "produtos": [
    {
      "produtoVarianteId": 0,
      "quantidade": {
        "quantidadeTotal": 0,
        "quantidadePorCentroDeDistribuicao": [
          {
            "centroDistribuicaoId": 0,
            "quantidade": 0
          }
        ]
      },
      "precoVenda": 0,
      "isBrinde": true,
      "ajustes": [
        {
          "tipo": "Frete",
          "valor": 0,
          "observacao": "string",
          "nome": "string"
        }
      ]
    }
  ],
  "fretes": [
    {
      "centroDistribuicaoId": 0,
      "freteContratoId": 0,
      "peso": 0,
      "pesoCobrado": 0,
      "volume": 0,
      "volumeCobrado": 0,
      "prazoEnvio": 0,
      "valorFreteEmpresa": 0,
      "valorFreteCliente": 0,
      "dataEntrega": "2022-06-17T13:36:23.428Z",
      "informacoesAdicionais": [
        {
          "chave": "string",
          "valor": "string"
        }
      ]
    }
  ],
  "pagamento": {
    "formaPagamentoId": 0,
    "numeroParcelas": 0,
    "valorParcela": 0,
    "informacaoAdicional": [
      {
        "chave": "string",
        "valor": "string"
      }
    ]
  },
  "canalId": 0,
  "omniChannel": {
    "pedidoIdPublico": "string",
    "pedidoIdPrivado": "string",
    "integrador": {
      "nome": "string",
      "pedidoId": "string",
      "pedidoUrl": "string"
    }
  },
  "transacaoId": 0,
  "observacao": "string",
  "valido": true,
  "cupomDesconto": "string",
  "ip": "string",
 " usuarioMaster": "integer"
}

Informações Adicionais de Frete

Ao inserir um novo pedido informando no campo chave do array "informacoesAdicionais" como "Transportadora" ou "ServicoMeta" e, em seguida, realizar a consulta (GET) desse novo pedido, será apresentado no campo "referenciaConector" o valor correspondente a chave do array. Além disso, esse array também será apresentado na consulta.

Caso seja informado algo diferente de "Transportadora" ou "ServicoMeta" no array de "informacoesAdicionais", quando o pedido for consultado o campo "referenciaConector", apresentará null e exibirá o array de "informacoesAdicionais" conforme realizado no POST.

Mapeando o Frete

Para obter os dados de frete é necessário realizar o mapeamento de frete prévio.

Veja como obter os ID's de frete no artigo Cotação de Frete via API.

Veja como mapear uma tabela de frete via API Pública no artigo Contratos de Frete.

Ao concluir os passos informados nos artigos, insira o pedido e em instantes ele será exibido no Painel Administrativo da loja.