Seguir

Integração de pedidos via API - visão geral do fluxo

Este documento é auxiliar do artigo https://eccosys.zendesk.com/hc/pt-br/articles/221224328-Fluxo-da-Integra%C3%A7%C3%A3o-de-Pedidos
 
A visão geral do fluxo é a seguinte:
 
  1. Consultar o cliente e cadastrá-lo caso não esteja no Eccosys
  2. Criar o pedido
  3. Adicionar ítens ao pedido.
 
 
 
Cliente:
Para validar se o contato já existe no Eccosys pode-se fazer a chamada GET http://<empresa>.eccosys.com.br/api/clientes?cpf=xxxxxxxxxxx ou GET http://<empresa>.eccosys.com.br/api/clientes?cnpj=xxxxxxxxxxxxxx (sem formatação no CPF nem CNPJ, apenas números).
Caso não haja o cliente, você pode cadastrá-lo com um POST http://<empresa>.eccosys.com.br/api/clientes com as informações disponíveis do contato em formato JSON no corpo da mensagem (payload) de acordo com o mapa descrito na documentação dos métodos acima
 
 
Criar o pedido no Eccosys
Criar o pedido no Eccosys com a chamada POST http://<empresa>.eccosys.com.br/api/pedidos enviando o ID do contato obtido das requests acima.

Dentre os dados do pedido, a única questão que vale ressaltar é o campo numeroDaOrdemDeCompra que deve ser um identificador do pedido usado por vocês (pode ser o número do pedido no marketplace, por exemplo).

Este campo é de essencial importância pois será a forma como vocês buscarão pelo pedido aqui. O campo numeroPedido pode ser tranquilamente omitido; o Eccosys gerá um número sequencial de identiicação interna e um ID para o pedido.

Segue um exemplo do JSON abaixo:

[{
"idContato": "100608466",
"data": "2016-11-27 00:00:00",
"situacao": 0,
"situacaoSecundaria": 0,
"desconto": "0",
"observacoes": "Loja: SHOPTIME",
"totalProdutos": 119.90,
"totalVenda": 138.96,
"numeroDaOrdemDeCompra": "106193364301",
"frete": 19.06,
"transportador": "JadLog",
"dtCriacaoVenda": "2016-11-27 00:00:00",
"servicePlatformOrigin": "SHOPTIME-00k-Eccosys",
"formaFrete": "",
"idMarketplaceIntegrado": 96114198,
"opcEnderecoDiferente": "S",
"_OutroEndereco": {
"nome": "JOAQUIM ALVES FERREIRA JUNIOR",
"endereco": "Rua Jorge Bruno",
"bairro": "cidade nobre",
"cep": "37925000",
"cidade": "Piumhii",
"uf": "MG",
"enderecoNro": "300",
"complemento": "BANCO BRADESCO",
"nomePais": "Brasil"
}
}]
 
Notas importantes:
  • transportador: deve conter o nome fantasia de um transportador válido, obtido a partir da listagem disponível em GET http://<empresa>.eccosys.com.br/api/transportadoras
  • servicePlatformOrigin: é totalmente opcional, serve para vocês identificarem alguma engine usada.
  • formaFrete: deve ser o ID de uma forma de frete - usado APENAS para correios, identificando a forma de serviço que será usada. Para despachos via transportadora, não é necessário enviar nada neste campo. A lista dos IDs de formaFrete vem junto com a chamada para transportadoras acima mencionada, conforme exemplo no print abaixo:
Imagem inline 1
  • idMarketplaceIntegrado: Proveniente da chamada https://<empresa>.eccosys.com.br/api/canaisDeVenda, conforme print abaixo:
Imagem inline 3
  • opcEnderecoDiferente: deve vir marcado como "S" e apresentar o atributo _OutroEndereco quando o endereço de entrega é diferente do endereço de cobrança. Por padrão, o endereço do cliente é o endereço de cobrança.
Após a criação do pedido, o retorno é um JSON similar a este:
 
{
"result": {
"success": [{
"id": 100608468,
"codigo": "106193364301"
}],
"error": []
},
"PedidosDeServico": {
"result": {
"success": [],
"error": []
}
},
"PedidosDeVenda": {
"result": {
"success": [],
"error": []
}
}
}
 
O atributo "codigo" em negrito indica o valor atribuido ao pedido no campo numeroPedido (incremental no Eccosys).
 
Adicionar ítens ao pedido
 
Pode ser feita 1 única chamada (com um array de ítens) ou várias chamadas, contendo 1 ítem cada chamada via POST http://<empresa>.eccosys.com.br/alfa/api/pedidos/<numeroPedido>/items OU POST http://<empresa>.eccosys.com.br/alfa/api/pedidos/numeroOC=<campo numeroDaOrdemDeCompra mencionado na criação do pedido>/items - as duas chamadas indicam para o mesmo endpoint, vai da preferência de vocês.
 
O formato de cada ítem a inserir na venda é o seguinte:
 
[{
"idProduto": "97482993",
"quantidade": "1",
"valor": "119.9",
"descontoItem": "0",
"valorFrete": "0",
"descricao": "Depilador Elétrico Philips SatinGirl HP6419/05 - Branco c/ Rosa"
}]
 
Nota: é necessário enviar o ID do produto no Eccosys - o código não funcionará. Caso tenha o cóigo do SKU, é possível obter o ID com a chamada http://<empresa>.eccosys.com.br/produtos/<codigo do sku>. Importante: caso haja desconto e frete no pedido, enviar estas informações ao criar o pedido, não nos ítens. O Eccosys fará o rateio dos descontos e fretes no momento da geração da NF. Caso seja aplicado um desconto no ítem do pedido, este desconto será aplicado ANTES da geração da nota fiscal, alterando o PREÇO BASE do ítem. O exemplo acima descritoé um array de ítens.
Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0
Tem mais dúvidas? Envie uma solicitação

0 Comentários

Por favor, entre para comentar.
Powered by Zendesk