Consulta Status do Pedido
Verifica o status atual do pedido, os possíveis status de um pedido estão descritos na tabela abaixo.
URL do Serviço:
POST: http://{url_do_servidor}/PedidoVendaService.svc/StatusPedido |
---|
Status | Código |
NaoEncontrado | 0 |
Recepcionado | 1 |
Expedido | 2 |
Entregue | 3 |
Concluido | 4 |
Cancelado | 5 |
Entregue
: é para quando o pedido faturado com RetirarNaLoja
Request
{
"parametros": {
"CodigoExternoPedido": "16",
"CodigoEstabelecimento": "96700001PC1",
"CodigoIntegracao": 99,
"RequestID": null,
"TipoServico": null
}
}
Response
{
"StatusPedidoResult": {
"Erros": [],
"Status": 1
}
}
Consulta Disponibilidade de Estoque
Retorna a quantidade de produto disponivel no periodo desejado
URL do Serviço:
POST: http://{url_do_servidor}/PedidoVendaService.svc/ConsultarProdutoDisponibilidadeEstoque |
---|
Request
{
"parametros": {
"CodigoProduto": "1",
"DataRetirada": "/Date(1612206090305)/",
"DataDevolucao": "/Date(1612206090302)/",
"CodigoEstabelecimento": "96700001PC13",
"CodigoIntegracao": 99,
"RequestID": null,
"TipoServico": null
}
}
Response
{
"ConsultarProdutoDisponibilidadeEstoqueResult": {
"Erros": [],
"QuantidadeDisponivel": 100
}
}
Pedido Venda
URL do Serviço:
POST: http://{url_do_servidor}/PedidoVendaService.svc/EnviarPedido |
---|
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.
CodigoIntegracao
: códigos inválidos ou inativados são rejeitados. Respeitar tabela de integrações.
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 precisando informar o EnderecoEntrega
e também nao pode ser cobrado taxa de entrega.
Exemplo de retirada na loja ou entrega no endereço do cliente:
Pedido Venda - Retirada na Loja
{
"parametros": {
"Pedido": {
"CodigoExternoPedido": "1529453014",
"CodigoIntegracao": 0,
"Cliente": {
"Id": null,
"NomeCompleto": "TOTVS",
"TipoPessoa": 0,
"Sexo": 0,
"CpfCnpj": "00000000181",
"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": ""
},
"CodigoPedido": 0,
"CodigoCliente": 0,
"Troco": 0,
"Desconto": 0,
"ValorTotal": 550.5,
"Pagamentos": [
{
"Tipo": 2,
"Valor": 550.5,
"CodigoReferencia": "MC",
"PagoOnline": false
}
],
"TaxaDeEntrega": 10.5,
"PagamentoOnline": true,
"RetirarNaLoja": true,
"DataEntrega": "/Date(1612281364000)/",
"DataRetorno": "/Date(1612454164000)/",
"Observacao": null,
"PeriodoEntrega": null,
"PeriodoRetorno": null,
"Itens": [
{
"TipoItem": 0,
"Produto": {
"Codigo": "13",
"Descricao": "A MODA DA CASA",
"PrecoVenda": 54.0,
"PrecoOriginal": 0,
"PrecoPromocional": 0,
"Pesavel": true,
"Processado": false,
"ProdutoComposto": false,
"BaixarEstoqueOnline": false,
"QuantidadeEstoque": 0,
"Composicoes": null
},
"Quantidade": 10,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [],
"ValorTotal": 540,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 1
}
]
},
"CodigoEstabelecimento": "96700001PC1",
"CodigoIntegracao": 99,
"RequestID": null,
"TipoServico": null
}
}
Pedido Venda - Endereço Entrega
Exemplo de entrega no 2º endereço do cliente:
{
"parametros": {
"Pedido": {
"CodigoExternoPedido": "1529453015",
"CodigoIntegracao": 0,
"Cliente": {
"Id": null,
"NomeCompleto": "TOTVS",
"TipoPessoa": 0,
"Sexo": 0,
"CpfCnpj": "00000000181",
"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": {
"Logradouro": "RUA CENTRO",
"Numero": "1000",
"Complemento": "COMERCIAL",
"Bairro": "CENTRO",
"Municipio": "Jundiai",
"MunicipioNumeroIBGE": 3525904,
"UF": "SP",
"UFNumeroIBGE": 35,
"CEP": "13208056",
"DDD": null,
"Telefone": null,
"EMail": null,
"IdentificacaoEndereco": "INDENTIFICACAO ENTREGA",
"InformacoesAdicionais": null
},
"ConheceuComo": "TELEVISAO",
"RgIE": ""
},
"CodigoPedido": 0,
"CodigoCliente": 0,
"Troco": 0,
"Desconto": 0,
"ValorTotal": 550.5,
"Pagamentos": [
{
"Tipo": 2,
"Valor": 550.5,
"CodigoReferencia": "MC",
"PagoOnline": false
}
],
"TaxaDeEntrega": 10.5,
"PagamentoOnline": true,
"RetirarNaLoja": false,
"DataEntrega": "/Date(1612281364000)/",
"DataRetorno": "/Date(1612454164000)/",
"Observacao": null,
"PeriodoEntrega": null,
"PeriodoRetorno": null,
"Itens": [
{
"TipoItem": 0,
"Produto": {
"Codigo": "13",
"Descricao": "A MODA DA CASA",
"PrecoVenda": 54.0,
"PrecoOriginal": 0,
"PrecoPromocional": 0,
"Pesavel": true,
"Processado": false,
"ProdutoComposto": false,
"BaixarEstoqueOnline": false,
"QuantidadeEstoque": 0,
"Composicoes": null
},
"Quantidade": 10,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [],
"ValorTotal": 540,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 1
}
]
},
"CodigoEstabelecimento": "96700001PC1",
"CodigoIntegracao": 99,
"RequestID": null,
"TipoServico": null
}
}
DataEntrega
: data destinada para entrega no pedido ou retirada em loja
DataRetorno
: data destinada para retorno dos itens do TipoOperacao
Comodato(2) e ou Consignação(3)
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.
RgIE
: deve conter apenas valores numéricos (sem máscara). Para TipoPessoa Física deve ser informado o RG e para TipoPessoa Jurídica deve ser informado o IE.
Itens
1- Tipo Operação
Tipo Operação | Código |
Venda | 1 |
Comodato | 2 |
Consignacao | 3 |
Bonificacao | 4 |
TipoOperacao
: Cada item tem deve conter um tipo operação associado, segue exemplo abaixo
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 |
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 |
Pagamentos
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 | 60,50 |
Valor Total Pedido | 60,50 |
Pagamento em dinheiro com nota de R$ 100,00. Neste caso precisa informar o valor de troco:
Pagamento Dinheiro | 100,00 |
Troco | 39,50 |
{
"parametros": {
"Pedido": {
"CodigoExternoPedido": "679698206",
"CodigoIntegracao": 0,
"Cliente": {
"Id": null,
"NomeCompleto": "TOTVS",
"TipoPessoa": 0,
"Sexo": 0,
"CpfCnpj": "08291225249",
"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": ""
},
"CodigoPedido": 0,
"CodigoCliente": 0,
"Troco": 39.5,
"Desconto": 0,
"ValorTotal": 60.5,
"Pagamentos": [
{
"Tipo": 0,
"Valor": 100.0,
"CodigoReferencia": "MC",
"PagoOnline": false
}
],
"TaxaDeEntrega": 10.5,
"PagamentoOnline": false,
"RetirarNaLoja": true,
"DataEntrega": "/Date(1612195968203)/",
"DataRetorno": "/Date(1612195968207)/",
"Observacao": null,
"PeriodoEntrega": null,
"PeriodoRetorno": null,
"Itens": [
{
"TipoItem": 0,
"Produto": {
"Codigo": "5",
"Descricao": "COCA COLA",
"PrecoVenda": 5.0,
"PrecoOriginal": 0,
"PrecoPromocional": 0,
"Pesavel": true,
"Processado": false,
"ProdutoComposto": false,
"BaixarEstoqueOnline": false,
"QuantidadeEstoque": 0,
"Composicoes": null
},
"Quantidade": 10,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [],
"ValorTotal": 50,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 1
}
]
},
"CodigoEstabelecimento": "96700001PC1",
"CodigoIntegracao": 99,
"RequestID": null,
"TipoServico": null
}
}
Response
O serviço retorna um JSON no formato abaixo:
Sucesso
Sucesso
= true indica que o pedido foi registrado corretamente.
{
"EnviarPedidoResult": {
"Erros": [],
"Sucesso": true
}
}
Erro
Sucesso
= false indica que o pedido não foi registrado no sistema, no atributo Erros encontra a lista de motivos/problemas que ocorreram
{
"EnviarPedidoResult": {
"Erros": [
"Data de Entrega 01/02/2021 16:12:48 está menor que a Data Atual 01/02/2021 16:16:57.",
"Data de Retorno 01/02/2021 16:12:48 está menor que a Data Atual 01/02/2021 16:16:57.",
"Pedido com retirada na loja e com taxa de entrega maior do que zero."
],
"Sucesso": false
}
}
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}". |
Cliente sem endereço de entrega. |
Data de Entrega invalida. |
Data de Retorno invalida. |
Data de Entrega {0} está menor que a Data Atual {1}. |
Data de Retorno {0} está menor que a Data Atual {1}. |
Data de Retorno {0} é menor que a data de Entrega {1}. |
Endereço de Entrega com logradouro inválido. |
Endereço de Entrega com município inválido. |
Endereço de Entrega com UF inválida. |
Endereço de Entrega com número inválido. |
Endereço de Entrega com bairro inválido. |
Este item {0} podera ser vendido apenas como Tipo Operacao {1}. |
Este item {0} não podera ser vendido como Tipo Operacao {1}. |
Endereço do cliente com CEP inválido. |
Endereço de Entrega com CEP inválido. |