Pedido Cartão
Índice |
---|
maxLevel | 10 |
---|
minLevel | 2 |
---|
exclude | ÍNDICE |
---|
style | circle |
---|
|
Envio de pedidos para o Cartão via API PedidosOnline
URL do Serviço:
POST: http://{url_do_servidor}/CartaoService.svc/EnviarPedido |
---|
Request
...
Pedido Cartão
URL do Serviço POST: http://{url_do_servidor}/CartaoService.svc/EnviarPedido
...
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:
{
CodigoExterno: "1190454611",
TipoItem: 0,
Produto: {
Codigo: "10011001",
Descricao: "COCA COLA LT",
PrecoVenda: 2.5
},
Quantidade: 1,
Acrescimo: 0,
Desconto: 0,
AcrescimoDiferencaFracionada: 0,
Observacao: "com gelo e limao",
ItensFracao: null,
ItensAdicionais: [],
ValorTotal: 2.5
}
|
---|
Item fracionado deve conter 2 ou mais itens de composição de fração, exemplo de item do tipo Fracionado:
{
CodigoExterno: null,
TipoItem: 1,
Produto: null,
Quantidade: 0,
Acrescimo: 0,
Desconto: 0,
AcrescimoDiferencaFracionada: 0,
Observacao: null,
ItensFracao: [
{
CodigoExterno: "1503699207",
TipoItem: 0,
Produto: {
Codigo: "10011002",
Descricao: "FRANGO COM CATUPIRY",
PrecoVenda: 35.65
},
Quantidade: 0.5,
Acrescimo: 0,
Desconto: 0,
AcrescimoDiferencaFracionada: 0,
Observacao: "",
ItensFracao: null,
ItensAdicionais: [],
ValorTotal: 17.82
},
{
CodigoExterno: "2104044743",
TipoItem: 0,
Produto: {
Codigo: "10011003",
Descricao: "PORTUGUESA",
PrecoVenda: 40.98
},
Quantidade: 0.5,
Acrescimo: 0,
Desconto: 0,
AcrescimoDiferencaFracionada: 0,
Observacao: "SEM CEBOLA",
ItensFracao: null,
ItensAdicionais: [],
ValorTotal: 20.49
}
],
ItensAdicionais: null,
ValorTotal: 38.31
}
|
---|
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 |
{
parametros: {
CodigoEstabelecimento: "96700001PC90",
CodigoIntegracao: 1,
Pedido: {
NumeroCartao: 5566,
NumeroMesaEntrega: 10,
CodigoGarcom: 2,
Itens: [
{
CodigoExterno: null,
TipoItem: 1,
Produto: null,
Quantidade: 0,
Acrescimo: 0,
Desconto: 0,
AcrescimoDiferencaFracionada: 0,
Observacao: null,
ItensFracao: [
{
CodigoExterno: "1710156186",
TipoItem: 0,
Produto: {
Codigo: "10011002",
Descricao: "FRANGO COM CATUPIRY",
PrecoVenda: 35.65
},
Quantidade: 0.5,
Acrescimo: 0,
Desconto: 0,
AcrescimoDiferencaFracionada: 0,
Observacao: "",
ItensFracao: null,
ItensAdicionais: [],
ValorTotal: 17.82
},
{
CodigoExterno: "229743968",
TipoItem: 0,
Produto: {
Codigo: "10011004",
Descricao: "QUATRO QUEIJOS",
PrecoVenda: 50.14
},
Quantidade: 0.5,
Acrescimo: 0,
Desconto: 0,
AcrescimoDiferencaFracionada: 0,
Observacao: "",
ItensFracao: null,
ItensAdicionais: [],
ValorTotal: 25.07
}
],
ItensAdicionais: null,
ValorTotal: 42.89
}
]
}
}
}
|
---|
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 |
{
parametros: {
CodigoEstabelecimento: "96700001PC90",
CodigoIntegracao: 1,
Pedido: {
NumeroCartao: 5566,
NumeroMesaEntrega: 10,
CodigoGarcom: 2,
Itens: [
{
CodigoExterno: null,
TipoItem: 1,
Produto: null,
Quantidade: 0,
Acrescimo: 0,
Desconto: 0,
AcrescimoDiferencaFracionada: 0,
Observacao: null,
ItensFracao: [
{
CodigoExterno: "835053132",
TipoItem: 0,
Produto: {
Codigo: "10011002",
Descricao: "FRANGO COM CATUPIRY",
PrecoVenda: 35.65
},
Quantidade: 0.5,
Acrescimo: 0,
Desconto: 0,
AcrescimoDiferencaFracionada: 0,
Observacao: "",
ItensFracao: null,
ItensAdicionais: [],
ValorTotal: 17.82
},
{
CodigoExterno: "1911282169",
TipoItem: 0,
Produto: {
Codigo: "10011004",
Descricao: "QUATRO QUEIJOS",
PrecoVenda: 50.14
},
Quantidade: 0.5,
Acrescimo: 0,
Desconto: 0,
AcrescimoDiferencaFracionada: 0,
Observacao: "",
ItensFracao: null,
ItensAdicionais: [],
ValorTotal: 25.07
}
],
ItensAdicionais: null,
ValorTotal: 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.
...
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:
{
parametros: {
CodigoEstabelecimento: "96700001PC90",
CodigoIntegracao: 1,
Pedido: {
NumeroCartao: 8890,
NumeroMesaEntrega: 10,
CodigoGarcom: 2,
Itens: [
{
CodigoExterno: "852545473",
TipoItem: 0,
Produto: {
Codigo: "10011002",
Descricao: "FRANGO COM CATUPIRY",
PrecoVenda: 35.65
},
Quantidade: 1,
Acrescimo: 0,
Desconto: 0,
AcrescimoDiferencaFracionada: 0,
Observacao: "",
ItensFracao: null,
ItensAdicionais: [
{
CodigoExterno: "158959555",
TipoItem: 0,
Produto: {
Codigo: "10011006",
Descricao: "BORDA CATUPIRY",
PrecoVenda: 6.4
},
Quantidade: 1,
Acrescimo: 0,
Desconto: 0,
AcrescimoDiferencaFracionada: 0,
Observacao: null,
ItensFracao: null,
ItensAdicionais: null,
ValorTotal: 6.4
}
],
ValorTotal: 35.65
}
]
}
}
}
|
---|
O ValorTotal
do item não deve conter o somatório dos adicionais.
...
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 |
|
|
7- 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 |
{
parametros: {
CodigoEstabelecimento: "96700001PC90",
CodigoIntegracao: 1,
Pedido: {
NumeroCartao: 8890,
NumeroMesaEntrega: 10,
CodigoGarcom: 2,
Itens: [
{
CodigoExterno: "1096751580",
TipoItem: 0,
Produto: {
Codigo: "10011001",
Descricao: "COCA COLA LT",
PrecoVenda: 2.5
},
Quantidade: 2,
Acrescimo: 0,
Desconto: 0,
AcrescimoDiferencaFracionada: 0,
Observacao: "COM GELO E LIMAO",
ItensFracao: null,
ItensAdicionais: [],
ValorTotal: 5
},
{
CodigoExterno: "1963160123",
TipoItem: 0,
Produto: {
Codigo: "10011002",
Descricao: "FRANGO COM CATUPIRY",
PrecoVenda: 35.65
},
Quantidade: 1,
Acrescimo: 0,
Desconto: 0,
AcrescimoDiferencaFracionada: 0,
Observacao: "",
ItensFracao: null,
ItensAdicionais: [
{
CodigoExterno: "1906432659",
TipoItem: 0,
Produto: {
Codigo: "10011006",
Descricao: "BORDA CATUPIRY",
PrecoVenda: 6.4
},
Quantidade: 1,
Acrescimo: 0,
Desconto: 0,
AcrescimoDiferencaFracionada: 0,
Observacao: null,
ItensFracao: null,
ItensAdicionais: null,
ValorTotal: 6.4
},
{
CodigoExterno: "550138083",
TipoItem: 0,
Produto: {
Codigo: "10011008",
Descricao: "BACON",
PrecoVenda: 10.59
},
Quantidade: 1,
Acrescimo: 0,
Desconto: 0,
AcrescimoDiferencaFracionada: 0,
Observacao: null,
ItensFracao: null,
ItensAdicionais: null,
ValorTotal: 10.59
}
],
ValorTotal: 35.65
},
{
CodigoExterno: null,
TipoItem: 1,
Produto: null,
Quantidade: 0,
Acrescimo: 0,
Desconto: 0,
AcrescimoDiferencaFracionada: 0,
Observacao: null,
ItensFracao: [
{
CodigoExterno: "1966018044",
TipoItem: 0,
Produto: {
Codigo: "10011003",
Descricao: "PORTUGUESA",
PrecoVenda: 40.98
},
Quantidade: 0.5,
Acrescimo: 0,
Desconto: 0,
AcrescimoDiferencaFracionada: 0,
Observacao: "",
ItensFracao: null,
ItensAdicionais: [
{
CodigoExterno: "1522464024",
TipoItem: 0,
Produto: {
Codigo: "10011006",
Descricao: "BORDA CATUPIRY",
PrecoVenda: 6.4
},
Quantidade: 1,
Acrescimo: 0,
Desconto: 0,
AcrescimoDiferencaFracionada: 0,
Observacao: null,
ItensFracao: null,
ItensAdicionais: null,
ValorTotal: 6.4
}
],
ValorTotal: 20.49
},
{
CodigoExterno: "1823141131",
TipoItem: 0,
Produto: {
Codigo: "10011004",
Descricao: "QUATRO QUEIJOS",
PrecoVenda: 50.14
},
Quantidade: 0.5,
Acrescimo: 0,
Desconto: 0,
AcrescimoDiferencaFracionada: 0,
Observacao: "",
ItensFracao: null,
ItensAdicionais: [],
ValorTotal: 25.07
}
],
ItensAdicionais: null,
ValorTotal: 50.14
}
]
}
}
}
|
---|
Response
O serviço retorna um JSON no formato abaixo:
...
Sucesso
= true indica que o pedido foi registrado corretamente.
{
EnviarPedidoResult: {
Erros: [],
CodigosItens: [
{
CodigoControle: "28158",
CodigoExterno: "1096751580"
},
{
CodigoControle: "28159",
CodigoExterno: "1963160123"
},
{
CodigoControle: "28160",
CodigoExterno: "1906432659"
},
{
CodigoControle: "28161",
CodigoExterno: "550138083"
},
{
CodigoControle: "28162",
CodigoExterno: "1966018044"
},
{
CodigoControle: "28163",
CodigoExterno: "1522464024"
},
{
CodigoControle: "28164",
CodigoExterno: "1823141131"
}
],
Sucesso: true
}
}
|
---|
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.
{
EnviarPedidoResult: {
Erros: [
"Produto "FRANGO COM CATUPIRY" com quantidade zero.",
"Produto "BORDA CATUPIRY" com quantidade zero.",
"C�digo externo do item inv�lido."
],
CodigosItens: null,
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. |
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. |
Erro ao salvar pedido no sistema. |
Erro ao consultar status do estabelecimento. |
O valor total do pedido deve ser igual ou superior a R$ 0,01. |
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}". |
Quantidade do item "{0}" superior ao máximo permitido. |
Quantidade de adicionais do item "{0}" superior ao máximo permitido. |
Quantidade de adicionais do item "{0}" inferior ao mínimo permitido. |
Item do tipo fracionado não pode conter adicionais. |
Erro ao baixar estoque dos itens vendidos. |
Mesa em digitação em outro terminal. |
Erro ao imprimir pedidos na impressora de boqueta. |
Erro ao imprimir monitor |
Erro ao imprimir |
Erro ao consultar movimentação da mesa. |
Erro ao consultar mesas em aberto. |
Erro ao consultar transferências de itens. |
Erro ao consultar itens cancelados da mesa. |
Erro ao solicitar garçom. |
Número mesa invalido. |
Mesa fechada. |
Código externo {0} duplicado na lista de itens do pedido. |
Código externo do item inválido. |
Código externo {0} duplicado. |
Consultar Cartões em Aberto
URL do Serviço POST: http://{url_do_servidor}/CartaoService.svc/ConsultarCartoesAbertos
Request
{
parametros: {
CodigoEstabelecimento: "96700001PC90",
CodigoIntegracao: 1
}
}
|
---|
Response
{
ConsultarCartoesAbertosResult: {
Erros: null,
Cartoes: [
{
NumeroCartao: 90,
StatusCartao: 3
},
{
NumeroCartao: 8890,
StatusCartao: 1
}
]
}
}
|
---|
StatusCartao
retorna o status conforme tabela abaixo.
Status | Código |
Disponivel | 0 |
Aberto | 1 |
EmDigitacao | 2 |
Fechado | 3 |
Consultar Movimentação Cartão
...
URL do Serviço POST: http://{url_do_servidor}/CartaoService.svc/ConsultarMovimentacaoCartao
Request
{
parametros: {
CodigoEstabelecimento: "96700001PC90",
CodigoIntegracao: 1,
NumeroCartao: 8890
}
}
|
---|
Response
{
ConsultarMovimentacaoCartaoResult: {
Erros: null,
Itens: [
{
Acrescimo: 0,
AcrescimoDiferencaFracionada: 0,
Desconto: 0,
ItensAdicionais: [
{
Acrescimo: 0,
AcrescimoDiferencaFracionada: 0,
Desconto: 0,
ItensAdicionais: null,
ItensFracao: null,
Observacao: "",
Produto: {
Codigo: "10011006",
Descricao: "BORDA CATUPIRY",
PrecoVenda: 6.4
},
Quantidade: 1,
TipoItem: 0,
ValorTotal: 6.4,
CodigoControle: "28160",
CodigoExterno: "1906432659"
},
{
Acrescimo: 0,
AcrescimoDiferencaFracionada: 0,
Desconto: 0,
ItensAdicionais: null,
ItensFracao: null,
Observacao: "",
Produto: {
Codigo: "10011008",
Descricao: "BACON",
PrecoVenda: 10.59
},
Quantidade: 1,
TipoItem: 0,
ValorTotal: 10.59,
CodigoControle: "28161",
CodigoExterno: "550138083"
}
],
ItensFracao: null,
Observacao: "",
Produto: {
Codigo: "10011002",
Descricao: "FRANGO COM CATUPIRY",
PrecoVenda: 35.65
},
Quantidade: 1,
TipoItem: 0,
ValorTotal: 35.65,
CodigoControle: "28159",
CodigoExterno: "1963160123"
},
{
Acrescimo: 0,
AcrescimoDiferencaFracionada: 0,
Desconto: 0,
ItensAdicionais: [],
ItensFracao: null,
Observacao: "COM GELO E LIMAO",
Produto: {
Codigo: "10011001",
Descricao: "COCA COLA LT",
PrecoVenda: 2.5
},
Quantidade: 1,
TipoItem: 0,
ValorTotal: 5,
CodigoControle: "28158",
CodigoExterno: "1096751580"
}
],
StatusCartao: 1,
Totais: {
Desconto: 0,
Servico: 5.51,
Subtotal: 55.14,
TotalConta: 60.65
}
}
}
|
---|
Consultar Transferências de Itens
...
URL do Serviço POST: http://{url_do_servidor}/CartaoService.svc/ConsultarTransferenciasItens
Request
{
parametros: {
CodigoEstabelecimento: "96700001PC90",
CodigoIntegracao: 1
}
}
|
---|
Response
{
ConsultarTransferenciasItensResult: {
Erros: null,
Transferencias: [
{
CartaoAtual: 60,
CartaoOriginal: 8890,
CodigoControle: "28162",
CodigoExterno: "1966018044",
Quantidade: 0.5
},
{
CartaoAtual: 60,
CartaoOriginal: 8890,
CodigoControle: "28164",
CodigoExterno: "1823141131",
Quantidade: 0.5
},
{
CartaoAtual: 60,
CartaoOriginal: 8890,
CodigoControle: "28163",
CodigoExterno: "1522464024",
Quantidade: 1
},
{
CartaoAtual: 60,
CartaoOriginal: 8890,
CodigoControle: "28156",
CodigoExterno: "852545473",
Quantidade: 1
},
{
CartaoAtual: 60,
CartaoOriginal: 8890,
CodigoControle: "28157",
CodigoExterno: "158959555",
Quantidade: 1
},
{
CartaoAtual: 60,
CartaoOriginal: 8890,
CodigoControle: "28165",
CodigoExterno: "",
Quantidade: 1
}
]
}
}
|
---|
Consultar Itens Cancelados
URL do Serviço POST: http://{url_do_servidor}/CartaoService.svc/ConsultarItensCanceladosCartao
Request
{
parametros: {
CodigoEstabelecimento: "96700001PC90",
CodigoIntegracao: 1,
NumeroCartao: 60
}
}
|
---|
Response
{
ConsultarItensCanceladosCartaoResult: {
Erros: null,
Itens: [
{
Acrescimo: 0,
AcrescimoDiferencaFracionada: 0,
Desconto: 0,
ItensAdicionais: null,
ItensFracao: null,
Observacao: "",
Produto: {
Codigo: "10011006",
Descricao: "BORDA CATUPIRY",
PrecoVenda: 6.4
},
Quantidade: 1,
TipoItem: 0,
ValorTotal: 6.4,
CodigoControle: null,
CodigoExterno: null
}
]
}
}
|
---|
Solicitar Garçom
URL do Serviço POST: http://{url_do_servidor}/CartaoService.svc/SolicitarGarcom
Request
{
parametros: {
CodigoEstabelecimento: "96700001PC90",
CodigoIntegracao: 1,
NumeroMesa: 20
}
}
|
---|
Response
{
SolicitarGarcomResult: {
Erros: null,
Sucesso: true
}
}
|
---|
Fechar Conta
URL do Serviço POST: http://{url_do_servidor}/CartaoService.svc/FecharConta
Request
{
parametros: {
CodigoEstabelecimento: "96700001PC90",
CodigoIntegracao: 1,
Conta: {
NumeroCartao: 8890,
NumeroMesaEntrega: 60,
QuantidadePessoas: 3,
TirarServico: false,
Desconto: 4.69
}
}
}
|
---|
Response
O serviço retorna um JSON no formato abaixo:
1- Sucesso
{
FecharContaResult: {
Erros: [],
Sucesso: true
}
}
|
---|
2- Erro
{
FecharContaResult: {
Erros: [
"Mesa fechada."
],
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. |
Número mesa invalido. |
Mesa sem movimentação. |
Mesa em digitação em outro terminal. |
Mesa fechada. |
Configure o G-ECF para utilizar esta função. |
G-ECF Inativo. |
Erro ao calcular taxa de serviço. |
O valor de desconto deve ser inferior ao total da conta. |
Erro ao fechar conta. |
Erro ao imprimir conta. |