Pedido Delivery
Metodo para enviar pedido para a loja.
URL do Serviço:
POST: http://{url_do_servidor}/DeliveryService.svc/EnviarPedido |
---|
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
: É o código de liberação para a integração. Respeitar tabela de integrações.
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.
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 inteiro
Item normal não aceita Subitens no atributo ItensFracao
, exemplo de item do tipo Normal:
{
"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": 1,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [],
"ValorTotal": 5,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
}
]
}
Item inteiro com adicional
Produtos adicionais são produtos que só devem ser vendidos associado a outro produto, um exemplo é a "Coca Cola". Os adicionais devem respeitar o relacionamento retornado no serviço "ObterCardapio". Exemplo de item com adicional:
{{
"Itens": [
{
"TipoItem": 0,
"Produto": {
"Codigo": "61",
"Descricao": "ESFIHA DE CARNE",
"PrecoVenda": 2.0,
"PrecoOriginal": 0,
"PrecoPromocional": 0,
"Pesavel": false,
"Processado": false,
"ProdutoComposto": false,
"BaixarEstoqueOnline": false,
"QuantidadeEstoque": 0,
"Composicoes": null
},
"Quantidade": 10,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [
{
"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": 1,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": null,
"ItensFracao": null,
"ItensAdicionais": null,
"ValorTotal": 5,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
}
],
"ValorTotal": 20,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
}
]
}
O ValorTotal do item não deve conter o somatório dos adicionais.
Item fracionado
Item fracionado deve conter 2 ou mais itens de composição de fração, exemplo de item do tipo Fracionado:
{
"Itens": [
{
"CodigoExterno": null,
"TipoItem": 1,
"Produto": null,
"Quantidade": 0,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": null,
"ItensFracao": [
{
"CodigoExterno": "54077055",
"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": 0.5,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [],
"ValorTotal": 27,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
},
{
"CodigoExterno": "468713429",
"TipoItem": 0,
"Produto": {
"Codigo": "14",
"Descricao": "MODA LIGHT",
"PrecoVenda": 78.0,
"PrecoOriginal": 0,
"PrecoPromocional": 0,
"Pesavel": true,
"Processado": false,
"ProdutoComposto": false,
"BaixarEstoqueOnline": false,
"QuantidadeEstoque": 0,
"Composicoes": null
},
"Quantidade": 0.5,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [],
"ValorTotal": 39,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
}
],
"ItensAdicionais": null,
"ValorTotal": 66,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
}
]
}
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:
Item fracionado (1/2) - Valor Proprocional
Produto | Preço | Quantidade | Valor Total |
A MODA DA CASA | 54,00 | 0,5 | R$ 27,00 |
MODA LIGHT | 78,00 | 0,5 | R$ 39,00 |
Total |
|
| R$ 66,00 |
{
"Itens": [
{
"TipoItem": 1,
"Produto": null,
"Quantidade": 0,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": null,
"ItensFracao": [
{
"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": 0.5,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [],
"ValorTotal": 27,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
},
{
"TipoItem": 0,
"Produto": {
"Codigo": "14",
"Descricao": "MODA LIGHT",
"PrecoVenda": 78.0,
"PrecoOriginal": 0,
"PrecoPromocional": 0,
"Pesavel": true,
"Processado": false,
"ProdutoComposto": false,
"BaixarEstoqueOnline": false,
"QuantidadeEstoque": 0,
"Composicoes": null
},
"Quantidade": 0.5,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [],
"ValorTotal": 39,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
}
],
"ItensAdicionais": null,
"ValorTotal": 66,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
}
]
}
Item fracionado (1/3) - Valor Proprocional
Produto | Preço | Quantidade | Valor Total |
A MODA DA CASA | 54,00 | 0,333 | R$ 17,98 |
MODA LIGHT | 78,00 | 0,333 | R$ 25,97 |
QUATRO QUEIJOS | 50,14 | 0,334 | R$ 16,74 |
Total |
|
| R$ 60,69 |
{
"ItensFracao": [
{
"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": 0.333,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [],
"ValorTotal": 17.98,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
},
{
"TipoItem": 0,
"Produto": {
"Codigo": "14",
"Descricao": "MODA LIGHT",
"PrecoVenda": 78.0,
"PrecoOriginal": 0,
"PrecoPromocional": 0,
"Pesavel": true,
"Processado": false,
"ProdutoComposto": false,
"BaixarEstoqueOnline": false,
"QuantidadeEstoque": 0,
"Composicoes": null
},
"Quantidade": 0.333,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [],
"ValorTotal": 25.97,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
},
{
"TipoItem": 0,
"Produto": {
"Codigo": "160",
"Descricao": "QUATRO QUEIJOS",
"PrecoVenda": 50.14,
"PrecoOriginal": 0,
"PrecoPromocional": 0,
"Pesavel": true,
"Processado": false,
"ProdutoComposto": false,
"BaixarEstoqueOnline": false,
"QuantidadeEstoque": 0,
"Composicoes": null
},
"Quantidade": 0.334,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [],
"ValorTotal": 16.74,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
}
],
"ItensAdicionais": null,
"ValorTotal": 60.69,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
}
Neste caso o ValorTotal
do Item deve ser a igual a soma do ValorTotal
de todos ItensFracao
.
Item fracionado (1/2) - Produto de Maior Valor
Produto | Preço | Quantidade | Valor Total |
A MODA DA CASA | 54,00 | 0,5 | R$ 27,00 |
MODA LIGHT | 78,00 | 0,5 | R$ 39,00 |
Total |
|
| R$ 78,00 |
{
"Itens": [
{
"TipoItem": 1,
"Produto": null,
"Quantidade": 0,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": null,
"ItensFracao": [
{
"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": 0.5,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [],
"ValorTotal": 27,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
},
{
"TipoItem": 0,
"Produto": {
"Codigo": "14",
"Descricao": "MODA LIGHT",
"PrecoVenda": 78.0,
"PrecoOriginal": 0,
"PrecoPromocional": 0,
"Pesavel": true,
"Processado": false,
"ProdutoComposto": false,
"BaixarEstoqueOnline": false,
"QuantidadeEstoque": 0,
"Composicoes": null
},
"Quantidade": 0.5,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [],
"ValorTotal": 39,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
}
],
"ItensAdicionais": null,
"ValorTotal": 78,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
}
]
}
Item fracionado (1/3) - Produto de Maior Valor
Produto | Preço | Quantidade | Valor Total |
A MODA DA CASA | 54,00 | 0,333 | R$ 17,98 |
MODA LIGHT | 78,00 | 0,333 | R$ 25,97 |
QUATRO QUEIJOS | 50,14 | 0,334 | R$ 16,74 |
Total |
|
| R$ 78,00 |
{
"Itens": [
{
"TipoItem": 1,
"Produto": null,
"Quantidade": 0,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": null,
"ItensFracao": [
{
"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": 0.333,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [],
"ValorTotal": 17.98,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
},
{
"TipoItem": 0,
"Produto": {
"Codigo": "14",
"Descricao": "MODA LIGHT",
"PrecoVenda": 78.0,
"PrecoOriginal": 0,
"PrecoPromocional": 0,
"Pesavel": true,
"Processado": false,
"ProdutoComposto": false,
"BaixarEstoqueOnline": false,
"QuantidadeEstoque": 0,
"Composicoes": null
},
"Quantidade": 0.333,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [],
"ValorTotal": 25.97,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
},
{
"TipoItem": 0,
"Produto": {
"Codigo": "160",
"Descricao": "QUATRO QUEIJOS",
"PrecoVenda": 50.14,
"PrecoOriginal": 0,
"PrecoPromocional": 0,
"Pesavel": true,
"Processado": false,
"ProdutoComposto": false,
"BaixarEstoqueOnline": false,
"QuantidadeEstoque": 0,
"Composicoes": null
},
"Quantidade": 0.334,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [],
"ValorTotal": 16.74,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
}
],
"ItensAdicionais": null,
"ValorTotal": 78.0,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
}
]
}
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.
Item fracionado com Adicionais
Produtos adicionais são produtos que só devem ser vendidos associado a outro produto. Os adicionais devem respeitar o relacionamento retornado no serviço ObterCardapio.
{
"Itens": [
{
"TipoItem": 1,
"Produto": null,
"Quantidade": 0,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": null,
"ItensFracao": [
{
"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": 0.5,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [
{
"TipoItem": 0,
"Produto": {
"Codigo": "4",
"Descricao": "HEINEKEN LONG NECK",
"PrecoVenda": 2.0,
"PrecoOriginal": 0,
"PrecoPromocional": 0,
"Pesavel": true,
"Processado": false,
"ProdutoComposto": false,
"BaixarEstoqueOnline": false,
"QuantidadeEstoque": 0,
"Composicoes": null
},
"Quantidade": 1,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": null,
"ItensFracao": null,
"ItensAdicionais": null,
"ValorTotal": 2,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
}
],
"ValorTotal": 27,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
},
{
"TipoItem": 0,
"Produto": {
"Codigo": "14",
"Descricao": "MODA LIGHT",
"PrecoVenda": 78.0,
"PrecoOriginal": 0,
"PrecoPromocional": 0,
"Pesavel": true,
"Processado": false,
"ProdutoComposto": false,
"BaixarEstoqueOnline": false,
"QuantidadeEstoque": 0,
"Composicoes": null
},
"Quantidade": 0.5,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [
{
"TipoItem": 0,
"Produto": {
"Codigo": "3",
"Descricao": "SKOL LONG NECK",
"PrecoVenda": 10.0,
"PrecoOriginal": 0,
"PrecoPromocional": 0,
"Pesavel": true,
"Processado": false,
"ProdutoComposto": false,
"BaixarEstoqueOnline": false,
"QuantidadeEstoque": 0,
"Composicoes": null
},
"Quantidade": 1,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": null,
"ItensFracao": null,
"ItensAdicionais": null,
"ValorTotal": 10,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
}
],
"ValorTotal": 39,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
}
],
"ItensAdicionais": null,
"ValorTotal": 66,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
}
]
}
O ValorTotal
do item não deve conter o somatório dos adicionais.
Item com quantidade fracionada
Apenas produtos com a configuração PermitirVendaFracionado
habilitada aceitam quantidade com casas decimais(Q), demais produtos aceitam apenas quantidades inteiras(N).
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 |
PIX | 20 |
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 | R$ 49,00 |
Taxa de Entrega | R$ 10,50 |
Valor Total Pedido | R$ 59,50 |
Pagamento em dinheiro com nota de R$ 100,00. Neste caso precisa informar o valor de troco:
Pagamento Dinheiro | R$ 100,00 |
Troco | R$ 40,50 |
{
"parametros": {
"Pedido": {
"TaxaDeEntrega": 10.5,
"TaxaEntregaPlayer": 0,
"PagamentoOnline": true,
"RetirarNaLoja": false,
"IdConfiguracaoIntegracao": 0,
"CodigoExternoPedido": "157",
"CodigoExternoPedidoReduzido": null,
"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": null
},
"Troco": 40.5,
"Desconto": 0,
"DescontoTaxaEntrega": 0,
"ValorTotal": 59.5,
"Pagamentos": [
{
"Tipo": 0,
"Valor": 100,
"CodigoReferencia": "3",
"PagoOnline": false
}
],
"IncluirCPFNaNota": true,
"ObservacaoPedido": "",
"AceitaPedidoAutomaticamente": true,
"MinutosRejeitaAutomaticamente": 0,
"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": 1,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [],
"ValorTotal": 5,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
},
{
"TipoItem": 0,
"Produto": {
"Codigo": "502",
"Descricao": "X TUDO",
"PrecoVenda": 22.0,
"PrecoOriginal": 0,
"PrecoPromocional": 0,
"Pesavel": true,
"Processado": false,
"ProdutoComposto": false,
"BaixarEstoqueOnline": false,
"QuantidadeEstoque": 0,
"Composicoes": null
},
"Quantidade": 2,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [],
"ValorTotal": 44,
"ValorDescontoItem": 0,
"ValorServicoItem": 0,
"ValorDescontoComboItem": 0,
"ValorAcrescimoItem": 0,
"TipoOperacao": 0
}
]
},
"CodigoEstabelecimento": "96700001PC13",
"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.
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.
{
"EnviarPedidoResult": {
"Erros": [],
"NumeroPedido": 62673,
"Sucesso": true,
"PrevisaoEntrega": "/Date(1421759892907)/"
}
}
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": [
"Endereço do cliente com logradouro inválido.",
"Produto "COCA COLA LT" com quantidade zero.",
"Somatório das formas de pagamento difere do total do pedido."
"Endereço do cliente com logradouro inválido.",
],
"NumeroPedido": 0,
"Sucesso": false,
"PrevisaoEntrega": null
}
}
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}". |
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}/DeliveryService.svc/StatusPedido |
---|
Request:
{
"parametros": {
"CodigoEstabelecimento": "96700001PC1",
"CodigoIntegracao": 99,
"CodigoExterniPedido": "1212894167"
}
}
Response:
{
"StatusPedidoResult": {
"Erros": [],
"CodigoCancelamento": null,
"CodigoEntregador": null,
"DataHoraConcluido": null,
"DataHoraEntrega": null,
"DescricaoCancelamento": null,
"NomeEntregador": null,
"Status": 1
}
}
Response Cancelamento:
{
"StatusPedidoResult": {
"Erros": [],
"CodigoCancelamento": 1,
"CodigoEntregador": null,
"DataHoraConcluido": null,
"DataHoraEntrega": null,
"DescricaoCancelamento": "BAIXA DO PEDIDO",
"NomeEntregador": null,
"Status": 4
}
}
Através do "Status" consegue obter o status do pedido na loja:
Status | Código |
---|
NaoEncontrado | 0 |
Recepcionado | 1 |
Entregando | 2 |
Concluido | 3 |
Cancelado | 4 |