Disponibilizado uma API para integração de parceiros onde possam integrar pedidos com o TOTVS Chef PDV. Veja abaixo as informações para utilização da API Pedidos Online.
Servidor WEB:
Homologação | POST: http://integracaofoodtotvschef.azurewebsites.net/ |
---|
Produção | POST: https://integracaofoodservicesapi.azurewebsites.net/ |
---|
Method: POST
A API é dividida nos seguintes módulos:
O token é composto pelas informações abaixo:
Parâmetro | Valor |
---|---|
Informar o Email do cadastro do Site Plataforma | |
senha | Senha do Email do cadastro do Site Plataforma |
rememberMe | Padrão a informar "TRUE" |
perfil | Padrão a informar "String" |
*Estas informações serão disponibilizadas após o cadastro no site plataforma.
URL do Serviço POST: http://{url_do_servidor}/api/v{version}/Account/conta
Request
|
---|
Request
|
---|
Enviar um pedido do modelo Delivery via API Plataforma.
URL do Serviço POST: http://{url_do_servidor}/api/v{version}/Ticket/Receber
Request
Método de envio de pedido para os estabelecimentos.
CodigoEstabelecimento
: É o código do estabelecimento no cadastro do TOTVS Chef, este código deve ser vinculado ao cadastro de loja da aplicação integrada.Integracaoid
: GUID disponibilizado pela equipe de integração.CodigoIntegracao
: Código disponibilizado pela equipe de integração.Pedido
CodigoExternoPedido
: refere-se ao código do pedido no aplicativo integrado, este código é utilizado para rastreio do pedido e para validação de duplicidade de pedido (Chave: CodigoIntegracao
+ CodigoEstabelecimento
+ CodigoExternoPedido
).PagamentoOnline
: Indica que o recebimento é de responsabilidade do aplicativo integrado.RetirarNaLoja:
indica que o cliente irá retirar o produto no estabelecimento, sendo assim não pode ser cobrado taxa de entrega.Módulo de Integração
Integracao
: Deve respeitar a tabela abaixo.
Modelo | Código |
Delivery | 1 |
Cliente
Sexo
: Deve respeitar a tabela abaixo.
Sexo | Código |
Masculino | 0 |
Feminino | 1 |
TipoPessoa
: Deve respeitar a tabela abaixo.
Tipo | Código |
Física | 0 |
Jurídica | 1 |
CpfCnpj
: deve conter apenas valores numéricos (sem máscara). Para TipoPessoa Física deve ser informado o CPF e para TipoPessoa Jurídica deve ser informado o CNPJ.ObservacaoPedido
: Apresenta observações gerais do Pedido quando necessário.Itens
1-Tipos de Item
TipoItem
: Indica se o item é individual (Normal) ou uma composição de frações de 2 ou mais produtos (Fracionado).
Deve respeitar a tabela abaixo
Tipo Item | Código |
Normal | 0 |
Fracionado | 1 |
Item normal não aceita Subitens no atributo ItensFracao
, exemplo de item do tipo Normal:
|
---|
Item fracionado deve conter 2 ou mais itens de composição de fração, exemplo de item do tipo Fracionado:
|
---|
A soma das quantidades de todos ItensFracao
deve formar 1 inteiro, sendo aceito apenas as frações 1/2 (0,5 + 0,5) 1/3 (0,333 + 0,333 + 0,334) ou 1/4 (0,25 + 0,25 + 0,25 + 0,25).
Um item do tipo fracionado pode ser cobrado pelo valor proporcional de cada fração ou pelo preço do produto de maior valor entre os itens da fração, esta configuração é individual de cada estabelecimento, exemplos:
Valor proporcional
Produto | Preço | Quantidade | Valor Total |
FRANGO COM CATUPIRY | 35,65 | 0,5 | 17,82 |
QUATRO QUEIJOS | 50,14 | 0,5 | 25,07 |
Total | 42,89 |
|
---|
Valor proporcional produtos fracionados 1/3
Produto | Preço | Quantidade | Valor Total |
FRANGO COM CATUPIRY | 35,65 | 0,333 | 11,87 |
PORTUGUESA | 40,98 | 0,333 | 13,64 |
QUATRO QUEIJOS | 50,14 | 0,334 | 16,74 |
Total | 42,25 |
|
---|
Neste caso o ValorTotal
do Item deve ser a igual a soma do ValorTotal
de todos ItensFracao
.
Produto de maior valor
Produto | Preço | Quantidade | Valor Total |
FRANGO COM CATUPIRY | 35,65 | 0,5 | 17,82 |
QUATRO QUEIJOS | 50,14 | 0,5 | 25,07 |
Total | 50,14 |
|
---|
Produto de maior valor fracionados 1/3
Produto | Preço | Quantidade | Valor Total |
FRANGO COM CATUPIRY | 35,65 | 0,333 | 11,87 |
PORTUGUESA | 40,98 | 0,333 | 13,64 |
QUATRO QUEIJOS | 50,14 | 0,334 | 16,74 |
Total | 50,14 |
|
---|
Neste caso o ValorTotal
do item é igual ao valor ao maior preço entre os ItensFracao
, a soma dos totais dos itens da fração difere do valor total, mas com esta configuração o importante é o valor total do item apenas e não das frações.
2- Adicionais
Produtos adicionais são produtos que só devem ser vendidos associado a outro produto, um exemplo é Borda Recheada. Os adicionais devem respeitar o relacionamento retornado no serviço ObterCardapio, exemplo uma Borda Recheado não pode ser adicional de uma Coca-Cola. Exemplo de item com adicional:
|
---|
O ValorTotal
do item não deve conter o somatório dos adicionais.
3- Itens com quantidade fracionada
Apenas produtos com a configuração PermitirVendaFracionado
habilitada aceitam quantidade com casas decimais(Q), demais produtos aceitam apenas quantidades inteiras(N).
4- Casas Decimais
A tabela abaixo indica a limitação de casa decimais de acordo com cada atributo
Campo | Decimais |
Quantidade | 3 |
Desconto | 2 |
Troco | 2 |
Forma de valor | 2 |
Valor Total Item | 2 |
Valor Total Pedido | 2 |
5- Truncamento
Quando o cálculo de ValorTotal
do item tiver mais do que 2 casas decimais este resultado deve ser truncado em 2 casas conforme exemplo abaixo:
Produto | Preço | Quantidade | Valor Total | Valor Final |
Presunto Seara | 4,25 | 2,654 | 11,2795 | 11,27 |
Tipo
: deve respeitar a tabela abaixo.
Forma de Pagamento | Código |
Dinheiro | 0 |
Cheque | 1 |
Cartão de Credito | 2 |
Cartão de Debito | 3 |
Ticket | 4 |
CodigoReferencia
: informar o código de cartões/operada (ex: Visa Electron) da aplicação integrada, através deste código é feita correspondência com o cadastro de cartões/operadoras do TOTVS Chef.
Desconto
: deve ser informado em Reais (R$) e não pode ser maior ou igual ao valor total do pedido. Não é aceito desconto e acréscimo por itens, apenas no totalizador do pedido.
Troco
: Indica o valor em Reais (R$) de troco que deve ser devolvido ao cliente, quando existir valor de troco este valor deve ser informado na forma de pagamento, exemplo:
Pedido
Total Itens | 35,80 |
Taxa de Entrega | 10,00 |
Valor Total Pedido | 45,80 |
Pagamento em dinheiro com nota de R$ 50,00. Neste caso precisa informar o valor de troco:
Pagamento Dinheiro | 50,00 |
Troco | 4,20 |
Wiki Markup |
---|
{
"IntegracaoId":"7c92a4cf-982d-4da9-9d2c-0f6ea88cf974",
"tipoIntegracao": 1,
"Pedido":{
"parametros":{
"CodigoEstabelecimento":"96700001PC13",
"CodigoIntegracao":99,
"TipoServico":null,
"Pedido":{
"TaxaDeEntrega":10.5,
"PagamentoOnline":false,
"RetirarNaLoja":false,
"IdConfiguracaoIntegracao":0,
"CodigoExternoPedido":"65024790",
"CodigoExternoPedidoReduzido":null,
"Cliente":{
"Id":null,
"NomeCompleto":"Marcelo Ribeiro",
"TipoPessoa":0,
"Sexo":0,
"CpfCnpj":"0",
"Endereco":{
"Logradouro":"Av. 09 de Julho",
"Numero":"2960",
"Complemento":"1o Andar",
"Bairro":"Vila Iracema",
"Municipio":"Jundiai",
"MunicipioNumeroIBGE":3525904,
"UF":"SP",
"UFNumeroIBGE":35,
"CEP":"13208056",
"DDD":"19",
"Telefone":"12345678",
"EMail":"[email protected]",
"IdentificacaoEndereco":null,
"InformacoesAdicionais":null
},
"EnderecoEntrega":null,
"ConheceuComo":"TELEVISAO",
"RgIE":null
},
"Troco":0.0,
"Desconto":0.0,
"ValorTotal":34.26,
"Pagamentos":[
{
"Tipo":0,
"Valor":34.26,
"CodigoReferencia":"3",
"PagoOnline":false
}
],
"IncluirCPFNaNota":true,
"ObservacaoPedido":"Teste de Observação do Pedido.",
"Itens":[
{
"Itens":[
{
"TipoItem":0,
"Produto":{
"Codigo":"1",
"Descricao":"ESFIHA DE CARNE",
"PrecoVenda":1.98,
"PrecoOriginal":0.0,
"PrecoPromocional":0.0,
"Pesavel":false,
"Processado":false,
"ProdutoComposto":false,
"BaixarEstoqueOnline":false,
"QuantidadeEstoque":0.0,
"Composicoes":null
},
"Quantidade":12.0,
"Acrescimo":0.0,
"Desconto":0.0,
"MotivoAcrescimoDesconto":null,
"AcrescimoDiferencaFracionada":0.0,
"Observacao":"",
"ItensFracao":null,
"ItensAdicionais":[
],
"ValorTotal":23.76,
"ValorDescontoItem":0.0,
"ValorServicoItem":0.0,
"ValorDescontoComboItem":0.0,
"ValorAcrescimoItem":0.0,
"TipoOperacao":0
}
]
}
]
}
}
}
} |
Response
O serviço retorna um JSON no formato abaixo:
1- Sucesso
Sucesso
= true indica que o pedido foi registrado corretamente.
PrevisaoEntrega
: pode retornar valor nulo dependendo da configuração do estabelecimento, no exemplo abaixo a data de previsão de entrega é as 20/01/2015 13:18:12.
|
---|
2- Erro
Sucesso
= false indica que o pedido não foi registrado no sistema, no atributo Erros encontra a lista de motivos/problemas que ocorreram.
|
---|
A tabela abaixo tem a relação completa de possíveis erros e validações que devem ser tratados pelo aplicado integrado.
Mensagem de erro |
Erro interno de processamento da requisição. |
Erro ao enviar pedido. |
Não foi possível estabelecer uma conexão com a loja. |
Pedido inválido. |
Código integração inválido. |
Código externo do pedido inválido. |
Duplicidade de pedido por código externo. |
Total do pedido difere do somatório dos itens. |
O pedido deve conter um cliente. |
Cliente sem CPF ou CPNJ ou Telefone. |
Cliente com nome inválido. |
Cliente sem endereço. |
Endereço do cliente com logradouro inválido. |
Endereço do cliente com município inválido. |
Endereço do cliente com UF inválida. |
Endereço do cliente com número inválido. |
Endereço do cliente com bairro inválido. |
O pedido deve conter no mínimo 1 item. |
Item inválido. |
Produto "{0}" com quantidade zero. |
O valor total do item "{0}" difere do cálculo do sistema. |
Produto "{0}" não permite fração. |
Produto "{0}" inválido. |
Produto "{0}" com preço desatualizado. |
Produto "{0}" sem preço de venda. |
O pedido deve conter no mínimo uma forma de pagamento. |
Formas de pagamento com valor inválido. |
Somatório das formas de pagamento difere do total do pedido. |
Erro ao salvar pedido no sistema. |
Cliente com CPF ou CPNJ inválido. |
Erro ao consultar status do pedido no sistema |
Erro ao consultar status do estabelecimento. |
O valor total do pedido deve ser igual ou superior a R$ 0,01. |
Pedido com retirada na loja e com taxa de entrega maior do que zero. |
Taxa de entrega com valor inválido. |
Quantidade do item é inválida para uma venda fracionada (1/2, 1/3 ou 1/4). |
A soma dos itens da venda fracionada deve completar 1 inteiro. |
O valor total do item fracionado deve ser igual ao preço do item de maior valor. |
Item fracionado deve conter no mínimo 2 frações (itens). |
O valor total do item deve ser truncado em 2 casas decimais. |
A quantidade do item deve conter no máximo 3 casas decimais. |
O valor total do item fracionado deve ser igual à soma dos valores das frações (itens). |
Item do tipo "normal" não aceita itens fração. |
Os itens da fração devem ser do tipo "normal". |
Os itens adicionais devem ser do tipo "normal". |
Produto "{0}" não é um adicional do produto "{1}". |