Integração de Pedidos
1. Primeiros passos
Para desenvolver a Integração com a API do Lambretinha Delivery, nós iremos disponibilizar uma base para homologação nesse link: https://integracao.lambretinha.com.br/ Cadastre-se como lojista, configure uma loja de testes, caso tenha alguma dúvida é só pesquisar aqui em nosso FAQ.
Crie também um usuário comum para efetuar alguns pedidos e entender como funciona o Lambretinha Delivery.
2. A Integração
Após configurar a loja, poderá iniciar os testes de Integração com a API. Os primeiros passos para se comunicar com a API é obter as UUID, elas são as chaves da sua loja para a comunicação com a API, existem 3 UUID, que são:
UUID Integração: Obtida através do suporte do Lambretinha Delivery. UUID Secreta: Obtida através do suporte do Lambretinha Delivery. UUID Loja: Obtida através do DJ Monitor Web na Aba Lojas > Selecione a loja > apague o campo “URL da loja” e o UUID da loja aparecerá logo abaixo.

2.1. Token
A chave para a comunicação com a API do Lambretinha Delivery será a partir do JSON Web Token (JWT) que é um token em formato JSON para a troca de informações de maneira leve, segura e autocontida.
Mais informações nesse link: https://jwt.io/introduction/
Usaremos o algoritmo HS256 do JWT, que é um formato onde os dados são codificados para 64bits e a chave secreta codificada em HMAC SHA256. O JWT segue uma estrutura compacta que consiste em 3 partes separadas por ponto ( . ) que são:
HeaderPayloadSignature
Portanto um JWT normalmente se parece com o seguinte
xxxxx.yyyyy.zzzzz
Vamos separar pelas seguintes partes:
2.1.1. Header
O cabeçalho consiste em duas partes: o algoritmo do token e o tipo de token.
Por exemplo:
{
"alg": "HS256",
"typ": "JWT"
}Esse JSON deve ser codificado para a base 64bits para formar a primeira parte do JWT.
2.1.2. Payload
A segunda parte contém as chaves (UUID) e a data atual no formato Unix.
Por exemplo:
{
"iss": "c7813838-e70e-11ea-adc1-0242ac120001",
"aud": "16e5fa90-75cb-11ea-bc55-0242ac130002",
"iat": "1603456038"
}
iss: Essa é a UUID da Integração que será obtida através do suporte do lambretinha Delivery.
aud: Essa é a UUID da loja que pode ser obtida nas configurações da Loja no Lambretinha Delivery (caso precise de ajuda para encontrar).
iat: É a data atual convertida para Unix, para mais informações: https://www.epochconverter.com/
Também deve ser codificado para a base 64bits para obter a segunda parte do JWT.
2.1.3. Signature
Para obter a Signature devesse ter o Header, Payload codificados para a base 64bits e a chave secreta (obtida através do suporte do lambretinha Delivery), após isso deverá ser codificado todos juntos no formato HMAC SHA256 e por último codificar para 64bits.
Veja um exemplo onde os dados estão sendo codificados para HMAC SHA256:
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret)Após obter as informações codificadas para HMAC SHA256 deve codificar para a base 64bits.
Por exemplo:
base64UrlEncode(
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret)
)2.1.4. Colocando todos juntos
Após ter todo o JWT pronto ele se parecerá com o seguinte:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJjNzgxMzgzOC1lNzBlLTExZWEtYWRjMS0wMjQyYWMxMjAwMDIiLCJhdWQiOiIxNmU1ZmE5MC03NWNiLTExZWEtYmM1NS0wMjQyYWMxMzAwMDMiLCJpYXQiOjE1MTYyMzkwMjJ9.a1iQ97mZ2_phlFsBtNqp5Z6o-lUUTxhN-jmq0ia0D5Q
Onde temos o Header, Payload e Signature separados por ponto ( . ) e todos codificados com a base 64bits.
2.1.5. Como a autenticação funciona
Sempre que uma rota da API é acessada ela exige o token JWT no header usando o schema Bearer.
O conteúdo do header na requisição deverá ser parecido com o seguinte.
Authorization: Bearer <token>2.2. As rotas
Por se tratar de uma REST API a informação que desejar obter necessitará de uma rota específica, essas rotas precisarão do Token JWT no Header da requisição e caso seja um POST, necessitará de informações no Body da requisição no formato JSON.
2.2.1. Verificar pedidos novos
Quando essa rota é requisitada, ela verifica se há pedidos novos a serem exportados.
Caso haja pedidos a serem exportados essa rota responderá com o seguinte JSON:
{
"PedidosNovos": true
}Caso não haja pedidos a serem exportados essa rota responderá com o seguinte JSON:
{
"PedidosNovos": false
}2.2.2. Lista de pedidos novos
Quando essa rota é requisitada, ela necessita que informe qual o máximo de pedidos que serão retornados e a divisão por páginas. Retornará um JSON com os pedidos novos a serem exportados.
O máximo de pedidos e as páginas a serem retornadas serão informadas como parâmetros de requisição, então a rota ficará assim:
https://apiinteg.djsistemas.com.br/api/integracao/pedidos/listar?pageSize=10&pageNumber=1
E o retorno dessa requisição será um JSON contendo todos os pedidos de acordo com os parâmetros passados.
Se não houver pedidos a serem exportados pela API ela retornará com o seguinte JSON:
{
"Message" : "Nenhum registro encontrado em Carrinho, com ",
"ExceptionMessage" : "Nenhum registro encontrado em Carrinho"
}Se houver pedidos a serem exportados pela API ela retornará com o seguinte JSON:
{
"Carrinho": {
"UUID_CARRINHO": "E202DF599163419EA772046547DDE35D",
"CODLOJA": 1,
"CODCLIENTE": 211,
"STATUS": "F",
"DATA_CRIACAO": "23-10-2020 16:27:43",
"DATA_VALIDADE": null,
"FRETE": "5.00",
"TOTAL": "8.50",
"TROCO": "0.00",
"CODPREVENDA": 1857,
"TIPO_ENTREGA": "I",
"DATA_ENTREGA": null,
"IDENDERECO": 1,
"CODFORMAPAGTO": "DH",
"ID_TURNO_ENTREGA": null,
"ID_CUPOM": null,
"VALOR_CUPOM": "0.00",
"QTD_ESTRELAS": null,
"DATA_AVALIACAO": null,
"FRETE_GRATIS": "N",
"CODEXPORTACAO": null,
"DATAHORA_EXPORTACAO": null,
"TURNO_ENTREGA_DESC": null,
"NOME_CUPOM": null,
"LOJA": "DJ SYSTEM",
"UUID_LOJA": "16e5fa90-75cb-11ea-bc55-0242ac130003",
"TEFHOUSE_NOME": "djsystem",
"CLIENTE": "Bruno Attina do Nascimento",
"IDTIPOENDERECO": 1,
"ENDERECO": "Rua Floresta",
"NUMERO": "84",
"COMPLEMENTO": "",
"BAIRRO": "Vila Paulina",
"CIDADE": "Tatuí",
"UF": "SP",
"CEP": "18276350",
"OBS_L_ENTREGA": "",
"INSCEST": "",
"FONE": "(15) 99798-3798",
"CELULAR_FAX": "",
"E_MAIL": "[email protected]",
"CODCMUN": "3554003",
"CPAIS": "1058",
"DESCRICAO": "Principal",
"PRINCIPAL": "S",
"PAGAMENTO": "Dinheiro",
"Itens": [
{
"UUID_CARRINHO": "E202DF599163419EA772046547DDE35D",
"CODLOJA": 1,
"SEQUENCIA": 1,
"CODPRODUTO": 541,
"QTD": "1.00",
"PRECO_UNITARIO": "3.50",
"OBSERVACAO": "",
"VALOR_ADICIONAL": "0.00",
"TOTAL_UNITARIO": "3.50",
"TOTALITEM": "3.50",
"PRODUTO": "Casquinha",
"CODEXTERNO": "",
"CODBARRAS": "integra1",
"UN": "UN",
"FLAG": 0,
"DELIVERY": "S",
"DESCRICAO_DELIVERY": "Casquinha de Sorvete\nEscolha entre os sabores:\n-Baunilha\n-Chocolate\n-Misto",
"TIPO_DISPONIBILIDADE": null,
"PRAZO_DISPONIBILIDADE": 0,
"PRECO_MINIMO": "N",
"APENAS_RETIRADA": "N",
"ESTOQUE_DISPONIVEL": 1,
"PRODUTO_DISPONIVEL": 1,
"PERMITE_ADICIONAL": "S",
"ADICIONAIS_VALIDOS": 1,
"Adicionais": [
{
"UUID_CARRINHO": "E202DF599163419EA772046547DDE35D",
"CODLOJA": 1,
"SEQUENCIA": 1,
"ID_GRUPO_ADICIONAL": 74,
"ID_ADICIONAL": 2,
"QTD": "1.00",
"PRECO_UNITARIO": "0.00",
"GRUPO_ADICIONAL_DESC": "Sabor da Massa",
"ADICIONAL_DESC": "Chocolate"
}
]
}
],
"Status": [
{
"CODLOJA": 1,
"CODPREVENDA": 1857,
"STATUS_PEDIDO": 1,
"DATAHORA": "23-10-2020 16:29:35"
}
]
},
"RecordCount": 1
}2.2.3. Confirmar pedidos exportados
Quando essa rota é requisitada, ela necessitará de um JSON no Body para indicar quais pedidos foram exportados, e o retorno será o código de exportação dos pedidos.
As informações no formato JSON que precisam estar no Body dessa requisição são os UUID dos carrinhos que já foram informados pela rota “Lista de pedidos novos”, após receber os carrinhos é necessário informar para a API que essa informação já foi recebida, para que deixe de ser informada desnecessariamente pela API.
https://apiinteg.djsystem.com.br/api/integracao/pedidos/confirmar
Header
curl --location --request GET 'https:/apiinteg.djsystem.com.br/api/integracao/pedidos/confirmar' / --header 'Authorization: Bearer {Token}'
Body
No Body é necessário informar quais são os UUID dos carrinhos que já foram exportados
{
"CARRINHOS": [
{"UUID_CARRINHO": "15045EA9E2BA44C99D0CF4DAC71EDB57"},
{"UUID_CARRINHO": "52CC162E8AAA435E908E64CD924B5158"}
]
}Ao receber o UUID do carrinhos a API responderá com o seguinte JSON:
{
"CodExportacao" : 6
}Se a API receber novamente o mesmo UUID do carrinho que já havia sido exportado, será gerado um novo Código de exportação para esses carrinhos em questão.
2.2.4. Alterar status do carrinho
Essa rota fornece a possibilidade de alterar o status do pedido, na url precisa conter o UUID do carrinho e o novo status do pedido.
https://apiinteg.djsystem.com.br/api/integracao/carrinho/:uuidcarrinho/status/:novostatus
2.2.5. Alterar estoque do produto
Essa rota fornece a possibilidade de alterar o estoque do produto de 3 formas diferentes, a primeira delas é pelo código interno do produto, a segunda pelo código externo e a terceira pelo código de barras.
Alterar estoque por Código do Produto
Para alterar o estoque a partir do Código do Produto é necessário informar o código externo na url e a quantidade em estoque em um JSON no Body.
Alterar estoque por Código Externo
Para alterar o estoque a partir do Código Externo é necessário informar o código externo na url e a quantidade em estoque em um JSON no Body.
Alterar estoque por Código de Barras
Para alterar o estoque a partir do Código de Barras é necessário informar o código externo na url e a quantidade em estoque em um JSON no Body.
Last updated
Was this helpful?