Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


Descrição/Apresentação


Dica

Implementada a funcionalidade de Integração via Pedidos Online/ Intranet no sistema TOTVS Food Service PDV, possibilitando a integração com parceiros de Vendas nos módulos (Mesa, Cartão, Balcão, Delivery e Pedido de Venda).


Configurações gerais

Módulos Integração com TOTVS Chef 



05. MESA


Como enviar pedidos Mesa via API PedidosOnline

Pedido Mesa

URL do Serviço POST: http://{url_do_servidor}/MesaService.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. Não é necessário informar em ambiente intranet

CodigoIntegracao: códigos inválidos ou inativados são rejeitados. Respeitar tabela de integração.

Os campos NumeroCadeira e NomeCliente são usados para informar o número da cadeira e o nome do cliente, nenhum desses campos é obrigatório, porém o NomeCliente só será gravado se NumeroCadeira maior do zero.

  • 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:

{
   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: "",
      CodigoIntegracao: 1,
      Pedido: {
         NumeroMesa: 789,
         NumeroCadeira: 1,
         NomeCliente: "Nome Teste",
         CodigoGarcom: 1,
         Itens: [
            {
               CodigoExterno: null,
               TipoItem: 1,
               Produto: null,
               Quantidade: 0,
               Acrescimo: 0,
               Desconto: 0,
               AcrescimoDiferencaFracionada: 0,
               Observacao: null,
               ItensFracao: [
                  {
                     CodigoExterno: "145064",
                     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: "145065",
                     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: "",
      CodigoIntegracao: 1,
      Pedido: {
         NumeroMesa: 789,
         NumeroCadeira: 1,
         NomeCliente: "Nome Teste",
         CodigoGarcom: 1,
         Itens: [
            {
               CodigoExterno: null,
               TipoItem: 1,
               Produto: null,
               Quantidade: 0,
               Acrescimo: 0,
               Desconto: 0,
               AcrescimoDiferencaFracionada: 0,
               Observacao: null,
               ItensFracao: [
                  {
                     CodigoExterno: "145066",
                     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: "145067",
                     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.


2-     Código Externo

CodigoExterno: refere-se ao código do item no aplicativo integrado, este código é utilizado para rastreio do item e para validação de duplicidade de itens (Chave: CodigoIntegracao + CodigoEstabelecimento + CodigoExterno). Apenas itens de TipoItem = 0 deve possuir um código externo.


3-     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:  

{
   parametros: {
      CodigoEstabelecimento: "",
      CodigoIntegracao: 1,
      Pedido: {
         NumeroMesa: 789,
         NumeroCadeira: 1,
         NomeCliente: "Nome Teste",
         CodigoGarcom: 1,
         Itens: [
            {
               CodigoExterno: "145068",
               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: "145069",
                     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
            }
         ]
      }
   }
}


ValorTotal do item não deve conter o somatório dos adicionais.


4-     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).


5-     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


6-     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: {
         NumeroMesa: 90,
         NumeroCadeira: 1,
         NomeCliente: "Nome Teste",
         CodigoGarcom: 0,
         Itens: [
            {
               CodigoExterno: "1765780744",
               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
            },
            {
               CodigoExterno: null,
               TipoItem: 1,
               Produto: null,
               Quantidade: 0,
               Acrescimo: 0,
               Desconto: 0,
               AcrescimoDiferencaFracionada: 0,
               Observacao: null,
               ItensFracao: [
                  {
                     CodigoExterno: "1915214064",
                     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: [
                        {
                           CodigoExterno: "1157809749",
                           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: 17.82
                  },
                  {
                     CodigoExterno: "1178815285",
                     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:

1-     Sucesso

Sucesso = true indica que o pedido foi registrado corretamente.

{
   EnviarPedidoResult: {
      Erros: [],
      CodigosItens: [
         {
            CodigoControle: "28152",
            CodigoExterno: "1765780744"
         },
         {
            CodigoControle: "28153",
            CodigoExterno: "1915214064"
         },
         {
            CodigoControle: "28154",
            CodigoExterno: "1157809749"
         },
         {
            CodigoControle: "28155",
            CodigoExterno: "1178815285"
         }
      ],
      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 Mesas em Aberto

URL do Serviço POST: http://{url_do_servidor}/MesaService.svc/ConsultarMesasAbertas


Request

{
   parametros: {
      CodigoEstabelecimento: "96700001PC90",
      CodigoIntegracao: 1
   }
}


Response

{
   ConsultarMesasAbertasResult: {
      Erros: null,
      Mesas: [
         {
            NumeroMesa: 1,
            StatusMesa: 1
         },
         {
            NumeroMesa: 2,
            StatusMesa: 3
         },
         {
            NumeroMesa: 3,
            StatusMesa: 1
         },
         {
            NumeroMesa: 10,
            StatusMesa: 1
         },
         {
            NumeroMesa: 11,
            StatusMesa: 2
         },
         {
            NumeroMesa: 789,
            StatusMesa: 1
         }
      ]
   }
}


StatusMesa retorna o status conforme tabela abaixo.

Status

Código

Disponivel

0

Aberta

1

EmDigitacao

2

Fechada

3


Consultar Fase Mesas em Aberto

URL do Serviço POST: http://{url_do_servidor}/MesaService.svc/ConsultarFaseMesasAbertas


Request

*Consultar disponibilidade por licença.

{
   parametros: {
      CodigoEstabelecimento: "96700001PC90",
      CodigoIntegracao: 1
   }
}


Response

{
   ConsultarFaseMesasAbertasResult: {
      Erros: null,
      Mesas: [
         {
            NumeroMesa: 1,
            StatusMesa: 1,
            Fase: "A"
         },
         {
            NumeroMesa: 2,
            StatusMesa: 1,
            Fase: "B"
         },
         {
            NumeroMesa: 3,
            StatusMesa: 1,
            Fase: "C"
         },
         {
            NumeroMesa: 4,
            StatusMesa: 1,
            Fase: "D"
         },
         {
            NumeroMesa: 5,
            StatusMesa: 3,
            Fase: "E"
         }
      ]
   }
}


Fase código indicativo da fase da mesa.

StatusMesa retorna o status conforme tabela abaixo.

Status

Código

Disponivel

0

Aberta

1

EmDigitacao

2

Fechada

3


Consultar Cupom Mesa

URL do Serviço POST: http://{url_do_servidor}/MesaService.svc/ConsultarCupomMesa

 

Request

 *Consultar disponibilidade por licença.

{
   parametros: {
      CodigoEstabelecimento: "96700001PC91",
      CodigoIntegracao: 3,
      NumeroMesa: 10
   }
}


Response

{
   ConsultarCupomMesaResult: {
      Erros: null,
      DadosCupomMesa: {
         DataCaixa: "/Date(1455501600000)/",
         NumeroCaixa: 91,
         NumeroCupom: 19285,
         NumeroLoja: 64010,
         NumeroMesa: 10,
         NumeroTerminal: 122
      }
   }
}


Consultar Movimentação Mesa

URL do Serviço POST: http://{url_do_servidor}/MesaService.svc/ConsultarMovimentacaoMesa

Request

{
   parametros: {
      CodigoEstabelecimento: "96700001PC90",
      CodigoIntegracao: 1,
      NumeroMesa: 90
   }
}


Response

{
   ConsultarMovimentacaoMesaResult: {
      Erros: null,
      Itens: [
         {
            Acrescimo: 0,
            AcrescimoDiferencaFracionada: 0,
            Desconto: 0,
            ItensAdicionais: null,
            ItensFracao: [
               {
                  Acrescimo: 0,
                  AcrescimoDiferencaFracionada: 0,
                  Desconto: 0,
                  ItensAdicionais: [],
                  ItensFracao: null,
                  Observacao: "",
                  Produto: {
                     Codigo: "10011004",
                     Descricao: "QUATRO QUEIJOS",
                     PrecoVenda: 50.14
                  },
                  Quantidade: 0.5,
                  TipoItem: 0,
                  ValorTotal: 25.07,
                  CodigoControle: "28155",
                  CodigoExterno: "1178815285"
               },
               {
                  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: "28154",
                        CodigoExterno: "1157809749"
                     }
                  ],
                  ItensFracao: null,
                  Observacao: "",
                  Produto: {
                     Codigo: "10011002",
                     Descricao: "FRANGO COM CATUPIRY",
                     PrecoVenda: 35.65
                  },
                  Quantidade: 0.5,
                  TipoItem: 0,
                  ValorTotal: 17.825,
                  CodigoControle: "28153",
                  CodigoExterno: "1915214064"
               }
            ],
            Observacao: null,
            Produto: null,
            Quantidade: 0,
            TipoItem: 1,
            ValorTotal: 0,
            CodigoControle: null,
            CodigoExterno: null
         },
         {
            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: 2.5,
            CodigoControle: "28152",
            CodigoExterno: "1765780744"
         }
      ],
      StatusMesa: 1,
      Totais: {
         Desconto: 0,
         Servico: 5.9,
         Subtotal: 59.04,
         TotalConta: 64.94
      }
   }
}


Consultar Transferências de Itens

URL do Serviço POST: http://{url_do_servidor}/MesaService.svc/ConsultarTransferenciasItens

Request

{
   parametros: {
      CodigoEstabelecimento: "96700001PC90",
      CodigoIntegracao: 1
   }
}


Response

{
   ConsultarTransferenciasItensResult: {
      Erros: null,
      Transferencias: [
         {
            CodigoControle: "26603",
            CodigoExterno: "",
            MesaAtual: 40,
            MesaOriginal: 789,
            Quantidade: 1
         },
         {
            CodigoControle: "26582",
            CodigoExterno: "10201",
            MesaAtual: 40,
            MesaOriginal: 789,
            Quantidade: 0.5
         },
         {
            CodigoControle: "26583",
            CodigoExterno: "10202",
            MesaAtual: 40,
            MesaOriginal: 789,
            Quantidade: 0.5
         },
         {
            CodigoControle: "26584",
            CodigoExterno: "10203",
            MesaAtual: 40,
            MesaOriginal: 789,
            Quantidade: 1
         }
      ]
   }
}


Consultar Itens Cancelados

URL do Serviço POST: http://{url_do_servidor}/MesaService.svc/ConsultarItensCanceladosMesa


Request

{
   parametros: {
      CodigoEstabelecimento: "96700001PC90",
      CodigoIntegracao: 1,
      NumeroMesa: 10
   }
}


Response

{
   ConsultarItensCanceladosMesaResult: {
      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
         },
         {
            Acrescimo: 0,
            AcrescimoDiferencaFracionada: 0,
            Desconto: 0,
            ItensAdicionais: null,
            ItensFracao: null,
            Observacao: "",
            Produto: {
               Codigo: "10011002",
               Descricao: "FRANGO COM CATUPIRY",
               PrecoVenda: 35.65
            },
            Quantidade: 1,
            TipoItem: 0,
            ValorTotal: 35.65,
            CodigoControle: null,
            CodigoExterno: null
         }
      ]
   }
}


Solicitar Garçom

URL do Serviço POST: http://{url_do_servidor}/MesaService.svc/SolicitarGarcom


Request

{
   parametros: {
      CodigoEstabelecimento: "96700001PC90",
      CodigoIntegracao: 1,
      NumeroMesa: 15
   }
}


Response

{
   SolicitarGarcomResult: {
      Erros: null,
      Sucesso: true
   }
}


Fechar Conta

URL do Serviço POST: http://{url_do_servidor}/MesaService.svc/FecharConta


Request

{
   parametros: {
      CodigoEstabelecimento: "96700001PC90",
      CodigoIntegracao: 1,
      Conta: {
         NumeroMesa: 90,
         QuantidadePessoas: 2,
         TirarServico: false,
         Desconto: 3.56
      }
   }
}


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.


Consultar Movimentação de Cadeiras da Mesa

URL do Serviço POST: http://{url_do_servidor}/MesaService.svc/ConsultarMovimentacaoCadeiraMesa

 

Request

Método para consulta da Mesa agrupada pelas cadeiras e retornando todos os pagamentos feitos.

{
   parametros: {
      CodigoEstabelecimento: "96700001PC26",
      CodigoIntegracao: 3,
      NumeroMesa: 2
   }
}


Response

O serviço retorna um JSON no formato abaixo:

{
   ConsultarMovimentacaoCadeiraMesaResult: {
      Erros: null,
      Cadeiras: [
         {
            CadeiraPaga: true,
            Itens: [
               {
                  Acrescimo: 0,
                  AcrescimoDiferencaFracionada: 0,
                  Desconto: 0,
                  ItensAdicionais: null,
                  ItensFracao: null,
                  Observacao: "",
                  Produto: {
                     Codigo: "2",
                     Descricao: "PRODUTO 2",
                     PrecoVenda: 11
                  },
                  Quantidade: 1,
                  TipoItem: 0,
                  ValorTotal: 11,
                  CodigoControle: "1445",
                  CodigoExterno: "2031097713"
               }
            ],
            NomeCliente: "Nome Teste",
            NumeroCadeira: 1,
            NumeroCupom: 459,
            StatusCadeira: 2,
            Totais: {
               Desconto: 0,
               Servico: 1.1,
               Subtotal: 11,
               TotalConta: 12.1
            }
         },
         {
            CadeiraPaga: false,
            Itens: [
               {
                  Acrescimo: 0,
                  AcrescimoDiferencaFracionada: 0,
                  Desconto: 0,
                  ItensAdicionais: null,
                  ItensFracao: null,
                  Observacao: "",
                  Produto: {
                     Codigo: "3",
                     Descricao: "PRODUTO 3",
                     PrecoVenda: 12
                  },
                  Quantidade: 1,
                  TipoItem: 0,
                  ValorTotal: 12,
                  CodigoControle: "1447",
                  CodigoExterno: ""
               }
            ],
            NomeCliente: "",
            NumeroCadeira: 2,
            NumeroCupom: 0,
            StatusCadeira: 1,
            Totais: {
               Desconto: 0,
               Servico: 1.2,
               Subtotal: 12,
               TotalConta: 13.2
            }
         },
         {
            CadeiraPaga: false,
            Itens: [
               {
                  Acrescimo: 0,
                  AcrescimoDiferencaFracionada: 0,
                  Desconto: 0,
                  ItensAdicionais: null,
                  ItensFracao: null,
                  Observacao: "",
                  Produto: {
                     Codigo: "23",
                     Descricao: "PIZZA BRASILEIRA",
                     PrecoVenda: 15
                  },
                  Quantidade: 1,
                  TipoItem: 0,
                  ValorTotal: 15,
                  CodigoControle: "1448",
                  CodigoExterno: ""
               }
            ],
            NomeCliente: "",
            NumeroCadeira: 4,
            NumeroCupom: 0,
            StatusCadeira: 0,
            Totais: {
               Desconto: 0,
               Servico: 1.5,
               Subtotal: 15,
               TotalConta: 16.5
            }
         }
      ],
      FormasPagamentoCadeira: [
         {
            CodigoReferencia: "",
            Tipo: 0,
            Valor: 12.1
         },
         {
            CodigoReferencia: "",
            Tipo: 3,
            Valor: 13.2
         }
      ],
      ItensMesaSemVinculoCadeira: [
         {
            Acrescimo: 0,
            AcrescimoDiferencaFracionada: 0,
            Desconto: 0,
            ItensAdicionais: null,
            ItensFracao: null,
            Observacao: "",
            Produto: {
               Codigo: "5",
               Descricao: "PRODUTO 5",
               PrecoVenda: 13.99
            },
            Quantidade: 1,
            TipoItem: 0,
            ValorTotal: 13.99,
            CodigoControle: "1446",
            CodigoExterno: ""
         },
         {
            Acrescimo: 0,
            AcrescimoDiferencaFracionada: 0,
            Desconto: 0,
            ItensAdicionais: null,
            ItensFracao: null,
            Observacao: "",
            Produto: {
               Codigo: "10021002",
               Descricao: "GUARANA LATA 350 ML",
               PrecoVenda: 1.5
            },
            Quantidade: 1,
            TipoItem: 0,
            ValorTotal: 1.5,
            CodigoControle: "1449",
            CodigoExterno: ""
         }
      ],
      TotalGeral: {
         Desconto: 0,
         Servico: 5.34,
         Subtotal: 53.49,
         TotalConta: 58.83
      }
   }
}



Cadeiras Cadeiras com os seus itens da mesa, cade cadeira possui seu próprio totalizador.


StatusCadeira Estado em que a cadeira se encontra.


Status

Código

Aberta

0

RecebidoSemEmissaoCupom

1

RecebidoComEmissaoCupom

2


CadeiraPaga Campo que indica que foi ou não emitido o documento fiscal para essa cadeira.


FormasPagamentoCadeira Retorna todos os pagamentos realizado na mesa.



TipoTipo do pagamento realizado.


Status

Código

Dinheiro

0

Cheque

1

CartaoDeCredito

2

CartaoDeDebito

3

Ticket

4



ItensMesaSemVinculoCadeira Retorna todos os itens mesa que não estão vinculados a uma cadeira específica.


TotalGeral Total geral da mesa no momento da solicitação.




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

Numero de mesa inválido.

Erro ao consultar movimentação de cadeiras.



Efetuar Pagamento


URL do Serviço POST: http://{url_do_servidor}/MesaService.svc/EfetuarPagamento


 


Request


Método para enviar o pagamento feito pelo aplicativo mobile, pode ser por cadeira ou geral. Se informar alguma cadeira, o sistema efetuará o pagamento da(s) cadeira(s) específica(s), senão, o sistema efetuará o pagamento de toda a mesa, exceto as cadeiras já pagas.

{
   parametros: {
      CodigoEstabelecimento: "96700001PC26",
      CodigoIntegracao: 3,
      Pagamento: {
         NumeroMesa: 3,
         Cadeiras: [
            {
               CadeiraPaga: false,
               Itens: [
                  {
                     CodigoControle: "1450",
                     CodigoExterno: "",
                     TipoItem: 0,
                     Produto: {
                        Codigo: "5",
                        Descricao: "PRODUTO 5",
                        PrecoVenda: 13.99
                     },
                     Quantidade: 1,
                     Acrescimo: 0,
                     Desconto: 0,
                     AcrescimoDiferencaFracionada: 0,
                     Observacao: "",
                     ItensFracao: null,
                     ItensAdicionais: null,
                     ValorTotal: 13.99
                  }
               ],
               NomeCliente: "",
               NumeroCadeira: 1,
               NumeroCupom: 0,
               StatusCadeira: 0,
               Totais: {
                  Desconto: 0,
                  Servico: 1.39,
                  Subtotal: 13.99,
                  TotalConta: 15.38
               }
            },
            {
               CadeiraPaga: false,
               Itens: [
                  {
                     CodigoControle: "1457",
                     CodigoExterno: "",
                     TipoItem: 0,
                     Produto: {
                        Codigo: "10021002",
                        Descricao: "GUARANA LATA 350 ML",
                        PrecoVenda: 1.5
                     },
                     Quantidade: 1,
                     Acrescimo: 0,
                     Desconto: 0,
                     AcrescimoDiferencaFracionada: 0,
                     Observacao: "",
                     ItensFracao: null,
                     ItensAdicionais: null,
                     ValorTotal: 1.5
                  }
               ],
               NomeCliente: "",
               NumeroCadeira: 3,
               NumeroCupom: 0,
               StatusCadeira: 0,
               Totais: {
                  Desconto: 0,
                  Servico: 0.15,
                  Subtotal: 1.5,
                  TotalConta: 1.65
               }
            }
         ],
         FormasPagamentos: [
            {
               Tipo: 2,
               Valor: 10,
               CodigoReferencia: ""
            },
            {
               Tipo: 3,
               Valor: 7.03,
               CodigoReferencia: ""
            }
         ],
         Totais: {
            Desconto: 0,
            Servico: 1.54,
            Subtotal: 15.49,
            TotalConta: 17.03
         },
         RetirarServico: false,
         Cpf: "12345678909",
         IncluirCPFNaNota: true,
         PontosFidelidade: false
      }
   }
}


Cadeiras Cadeiras que serão pagas nesse envio, pode ser informa n cadeiras se as mesma já estiverem sido lançadas.

FormasPagamentoCadeira Envia todas as formas de pagamento utilizadas para esse pagamento específico, exemplo: pagar em um cartão Mastercard e um Visa.

CodigoReferencia Código do cartão referente ao tipo de integração a ser realizada para que o sistema possa fazer a amarração com o cartão cadastrado.

Tipo Tipo do pagamento realizado

Status

Código

Dinheiro

0

Cheque

1

CartaoDeCredito

2

CartaoDeDebito

3

Ticket

4


Totais Total do pagamento.

RetirarServico Indica se no momento do pagamento, o cliente vai pagar a taxa de serviço.

Cpf CPF a ser incluído na Documento Fiscal ou programa de fidelidade.

IncluirCPFNaNota Indica se o cliente vai querer seu CPF Documento Fiscal.

PontosFidelidade Indica se o cliente que participar do programa de fidelidade da loja utilizando o cpf quando existir.


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

Numero de mesa inválido.

Erro ao enviar pagamento mesa cadeiras.

Cadeira {0} já recebida.

Taxa de Serviço informada é inválida.

Desconto informado é inválido.

Total dos produtos informado é diferente do total dos produtos das Cadeiras informadas.

Total da Conta informada é inválida.

Total da Conta informada é diferente do total da conta no sistema.

Nenhum forma de pagamento foi informada.

CPF não informado.

CPF inválido.

Existe mais de uma cadeira com o mesmo número informado.

Total formas de pagamento é diferente do que o valor total das cadeiras.

A cadeira informada está aguardando a emissão do cupom fiscal.

Taxa de Serviço informado quando o pagamento está marcado para retirar a Taxa de Serviço.

A cadeira informada já emitiu cupom fiscal.

Mesa não possui itens sem vinculo com cadeiras para recebimento completo.

Totais de pagamento inválido.

Não existe licença de Fidelidade Web

Não existe Fidelidade Web Configurado para esse Estabelecimento


Transferir Itens entre Cadeira

 URL do Serviço POST: http://{url_do_servidor}/MesaService.svc/TransferirItensCadeira

 

Request

Método para transferir itens entre as cadeiras.


{
   parametros: {
      CodigoEstabelecimento: "96700001PC26",
      CodigoIntegracao: 3,
      MovimentacaoItemCadeira: {
         NumeroMesa: 4,
         NumeroCadeira: 1,
         NomeCliente: "",
         ItensAdicionar: [
            {
               CodigoControle: "1461",
               Quantidade: 1
            }
         ],
         ItensRemover: [
            {
               CodigoControle: "1459",
               Quantidade: 1
            }
         ]
      }
   }
}


ItensAdicionar Itens que serão adicionados na cadeira informada.

ItensRemover Itens que serão removidos da cadeira informada.


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

Código Controle {0} não pertence à mesa.

Produto {0} não possui quantidade disponível para realizar a movimentacao.

A quantidade informada para o item {0} ultrapassa a quantidade máxima permitida.

A quantidade informada para o item {0} ultrapassa a quantidade mínima permitida.

Item código controle {0} duplicado.

Item {0} com quantidade de transferência igual ou inferior a zero.

A quantidade do item {0} diverge da quantidade salva no sistema.



Response

O serviço retorna um JSON no formato abaixo:

{
   TransferirItensCadeiraResult: {
      Erros: [],
      Sucesso: true
   }
}



06. CARTÃO


Pedido Cartão

 URL do Serviço POST: http://{url_do_servidor}/CartaoService.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. Não é necessário informar em ambiente intranet

CodigoIntegracao: códigos inválidos ou inativados são rejeitados. Respeitar tabela de integração.

    • 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:

{
   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.


2-     Código Externo

CodigoExterno: refere-se ao código do item no aplicativo integrado, este código é utilizado para rastreio do item e para validação de duplicidade de itens (Chave: CodigoIntegracao + CodigoEstabelecimento + CodigoExterno). Apenas itens de TipoItem = 0 deve possuir um código externo.


3-     Número mesa para entrega

NumeroMesaEntrega: indica a mesa aonde o pedido deve ser entrega, esta informação é obrigatória.


4-     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:  

{
   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.

5-     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).


6-     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





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:

1-     Sucesso

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.


07. PEDIDO VENDA


Como enviar pedidos Balcão via API PedidosOnline

Consulta Status do Pedido

Verifica o status atual do pedido, os possíveis status de um pedido estão descritos na tabela abaixo.

Status

Código

NaoEncontrado

0

Recepcionado

1

Concluido

2

URL do Serviço POST: http://{url_do_servidor}/BalcaoService.svc/StatusPedido

 

Request

{
   parametros: {
      CodigoEstabelecimento: "96700001",
      CodigoIntegracao: 1,
      CodigoExternoPedido: "2026017555"
   }
}


Response

{
   StatusPedidoResult: {
      Erros: [],
      Status: 1
   }
}


Pedido Balcão

URL do Serviço POST: http://{url_do_servidor}/BalcaoService.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.

    • 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).

    • Cliente

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.


    • 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:

 

{
   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:

{
   TipoItem: 1,
   Produto: null,
   Quantidade: 0,
   Acrescimo: 0,
   Desconto: 0,
   AcrescimoDiferencaFracionada: 0,
   Observacao: null,
   ItensFracao: [
      {
         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
      },
      {
         TipoItem: 0,
         Produto: {
            Codigo: "10011003",
            Descricao: "PORTUGUESA",
            PrecoVenda: 40.98
         },
         Quantidade: 0.5,
         Acrescimo: 0,
         Desconto: 0,
         AcrescimoDiferencaFracionada: 0,
         Observacao: "",
         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

{
   TipoItem: 1,
   Produto: null,
   Quantidade: 0,
   Acrescimo: 0,
   Desconto: 0,
   AcrescimoDiferencaFracionada: 0,
   Observacao: null,
   ItensFracao: [
      {
         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
      },
      {
         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

{
   TipoItem: 1,
   Produto: null,
   Quantidade: 0,
   Acrescimo: 0,
   Desconto: 0,
   AcrescimoDiferencaFracionada: 0,
   Observacao: null,
   ItensFracao: [
      {
         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
      },
      {
         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.


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:  

{
   TipoItem: 0,
   Produto: {
      Codigo: "10011002",
      Descricao: "FRANGO COM CATUPIRY",
      PrecoVenda: 35.65
   },
   Quantidade: 1,
   Acrescimo: 0,
   Desconto: 0,
   AcrescimoDiferencaFracionada: 0,
   Observacao: "",
   ItensFracao: null,
   ItensAdicionais: [
      {
         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
}


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

    • Pagamentos

Tipo: deve respeitar a tabela abaixo.

Forma de Pagamento

Código

Cartão de Credito

2

Cartão de Debito

3

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

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 acrescimo por itens, apenas no totalizador do pedido.


    • Troco

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

Valor Total Pedido

35,80

Pagamento em dinheiro com nota de R$ 35,80

Pagamento Cartao

35,80


{
"parametros": {
"Pedido": {
"TaxaDeEntrega": 10.50,
"PagamentoOnline": false,
"RetirarNaLoja": false,
"CodigoExternoPedido": "607912045",
"CodigoExternoPedidoReduzido": null,
"Cliente": {
"NomeCompleto": "Marcelo Ribeiro",
"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
},
"EnderecoEntrega": null,
"ConheceuComo": "TELEVISAO",
"RgIE": null
},
"Troco": 7.96,
"Desconto": 3.50,
"ValorTotal": 72.04,
"Pagamentos": [
{
"Tipo": 0,
"Valor": 80.00,
"CodigoReferencia": "",
"PagoOnline": false
}
],
"IncluirCPFNaNota": true,
"ObservacaoPedido": "",
"Itens": [
{
"TipoItem": 1,
"Produto": null,
"Quantidade": 0,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": null,
"ItensFracao": [
{
"TipoItem": 0,
"Produto": {
"Codigo": "10011003",
"Descricao": "PORTUGUESA",
"PrecoVenda": 40.9800,
"PrecoPromocional": 0,
"Pesavel": false,
"Processado": false
},
"Quantidade": 0.5,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [
{
"TipoItem": 0,
"Produto": {
"Codigo": "10011006",
"Descricao": "BORDA CATUPIRY",
"PrecoVenda": 6.4000,
"PrecoPromocional": 0,
"Pesavel": false,
"Processado": false
},
"Quantidade": 1,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": null,
"ItensFracao": null,
"ItensAdicionais": null,
"ValorTotal": 6.4,
"TipoOperacao": 0
}
],
"ValorTotal": 20.49,
"TipoOperacao": 0
},
{
"TipoItem": 0,
"Produto": {
"Codigo": "10011004",
"Descricao": "QUATRO QUEIJOS",
"PrecoVenda": 50.1400,
"PrecoPromocional": 0,
"Pesavel": false,
"Processado": false
},
"Quantidade": 0.5,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [

],
"ValorTotal": 25.07,
"TipoOperacao": 0
}
],
"ItensAdicionais": null,
"ValorTotal": 50.14,
"TipoOperacao": 0
},
{
"TipoItem": 0,
"Produto": {
"Codigo": "10011005",
"Descricao": "COCA COLA 2L",
"PrecoVenda": 8.5000,
"PrecoPromocional": 0,
"Pesavel": false,
"Processado": false
},
"Quantidade": 1,
"Acrescimo": 0,
"Desconto": 0,
"MotivoAcrescimoDesconto": null,
"AcrescimoDiferencaFracionada": 0,
"Observacao": "",
"ItensFracao": null,
"ItensAdicionais": [

],
"ValorTotal": 8.5,
"TipoOperacao": 0
}
]
},
"CodigoEstabelecimento": "96700001PC21",
"CodigoIntegracao": 99,
"RequestID": null,
"TipoServico": null
}
}

              


Response

O serviço retorna um JSON no formato abaixo:

1-     Sucesso

Sucesso = true indica que o pedido foi registrado corretamente.

{
   EnviarPedidoResult: {
      Erros: [],
      NumeroPedido: 73,
      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 "COCA COLA LT" com quantidade zero.",
         "Somatório das formas de pagamento difere do total do pedido."
      ],
      NumeroPedido: 0,
      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.

Cliente com nome 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.

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}".

Forma de pagamento não permitido.

Pedido Venda

Como enviar pedidos Pedido de Vendas via API PedidosOnline


Consulta Status do Pedido


Verifica o status atual do pedido, os possíveis status de um pedido estão descritos na tabela abaixo.


Status

Código

NaoEncontrado

0

Recepcionado

1

Expedido

2

Entregue

3

Concluido

4

Cancelado

5




Entregue: é para quando o pedido faturado com RetirarNaLoja


URL do Serviço POST: http://{url_do_servidor}/PedidoVendaService.svc/StatusPedido


 


Request

{
   parametros: {
      CodigoEstabelecimento: "96700001PC9",
      CodigoIntegracao: 99,
      CodigoExternoPedido: "2126"
   }
}


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: {
      CodigoEstabelecimento: "96700001PC9",
      CodigoIntegracao: 99,
      CodigoProduto: "1",
      DataRetirada: "/Date(1472650902507)/",
      DataDevolucao: "/Date(1472650902506)/"
   }
}


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.


    • 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 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:


{
   Cliente: {
      NomeCompleto: "Marcelo Ribeiro",
      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
      },
      EnderecoEntrega: null,
      ConheceuComo: "TELEVISAO",
      RgIE: "4222512401"
   }
}


Exemplo de entrega no 2º endereço do cliente:

{
   Cliente: {
      NomeCompleto: "Marcelo Ribeiro",
      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
      },
      EnderecoEntrega: {
         Logradouro: "Av. Joao XXIII ",
         Numero: "5218",
         Complemento: "10o Andar",
         Bairro: "Guarani",
         Municipio: "Sao Paulo",
         MunicipioNumeroIBGE: 3525231,
         UF: "SP",
         UFNumeroIBGE: 35,
         CEP: "07544445",
         DDD: null,
         Telefone: null,
         EMail: null,
         IdentificacaoEndereco: "endereco da mae"
      },
      ConheceuComo: "TELEVISAO",
      RgIE: "4222512401"
   }


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)

    • 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.

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


{
   Itens: [
      {
         TipoItem: 0,
         Produto: {
            Codigo: "1",
            Descricao: "COCA COLA",
            PrecoVenda: 3.5,
            PrecoPromocional: 0
         },
         Quantidade: 1,
         Acrescimo: 0,
         Desconto: 0,
         AcrescimoDiferencaFracionada: 0,
         Observacao: "",
         ItensFracao: null,
         ItensAdicionais: [],
         ValorTotal: 3.5,
         TipoOperacao: 1
      },
      {
         TipoItem: 0,
         Produto: {
            Codigo: "2",
            Descricao: "SPRITE",
            PrecoVenda: 3.5,
            PrecoPromocional: 0
         },
         Quantidade: 1,
         Acrescimo: 0,
         Desconto: 0,
         AcrescimoDiferencaFracionada: 0,
         Observacao: "",
         ItensFracao: null,
         ItensAdicionais: [],
         ValorTotal: 3.5,
         TipoOperacao: 2
      },
      {
         TipoItem: 0,
         Produto: {
            Codigo: "4",
            Descricao: "BRAHMA",
            PrecoVenda: 4,
            PrecoPromocional: 0
         },
         Quantidade: 10,
         Acrescimo: 0,
         Desconto: 0,
         AcrescimoDiferencaFracionada: 0,
         Observacao: "",
         ItensFracao: null,
         ItensAdicionais: [],
         ValorTotal: 40,
         TipoOperacao: 3
      },
      {
         TipoItem: 0,
         Produto: {
            Codigo: "1",
            Descricao: "COCA COLA",
            PrecoVenda: 3.5,
            PrecoPromocional: 0
         },
         Quantidade: 1,
         Acrescimo: 0,
         Desconto: 0,
         AcrescimoDiferencaFracionada: 0,
         Observacao: "",
         ItensFracao: null,
         ItensAdicionais: [],
         ValorTotal: 3.5,
         TipoOperacao: 4
      }
   ]
}

2-     Tipos de Item

TipoItem: Indica se o item é individual (Normal)

3-     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

4-     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

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

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

{
   parametros: {
      CodigoEstabelecimento: "96700001PC9",
      CodigoIntegracao: 99,
      Pedido: {
         CodigoExternoPedido: "60881727",
         CodigoIntegracao: 0,
         Cliente: {
            NomeCompleto: "Marcelo Ribeiro",
            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
            },
            EnderecoEntrega: {
               Logradouro: "Av. 10 de Julho",
               Numero: "2961",
               Complemento: "2o Andar",
               Bairro: "Vila Irapuru",
               Municipio: "Sao Paulo",
               MunicipioNumeroIBGE: 3525904,
               UF: "SP",
               UFNumeroIBGE: 35,
               CEP: "07011441",
               DDD: null,
               Telefone: null,
               EMail: null,
               IdentificacaoEndereco: "Endereco Entrega"
            },
            ConheceuComo: "TELEVISAO",
            RgIE: "4122255410"
         },
         CodigoPedido: 0,
         CodigoCliente: 0,
         Troco: 0,
         Desconto: 0,
         ValorTotal: 14,
         Pagamentos: [
            {
               Tipo: 0,
               Valor: 11.5,
               CodigoReferencia: ""
            }
         ],
         TaxaDeEntrega: 10.5,
         PagamentoOnline: false,
         RetirarNaLoja: false,
         DataEntrega: "/Date(1472843909599)/",
         DataRetorno: "/Date(1472843909600)/",
         Observacao: null,
         Itens: [
            {
               TipoItem: 0,
               Produto: {
                  Codigo: "9001",
                  Descricao: "COCA COLA",
                  PrecoVenda: 3.5,
                  PrecoPromocional: 0
               },
               Quantidade: 1,
               Acrescimo: 0,
               Desconto: 0,
               AcrescimoDiferencaFracionada: 0,
               Observacao: "",
               ItensFracao: null,
               ItensAdicionais: [],
               ValorTotal: 3.5,
               TipoOperacao: 1
            },
            {
               TipoItem: 0,
               Produto: {
                  Codigo: "9002",
                  Descricao: "SPRITE",
                  PrecoVenda: 3.5,
                  PrecoPromocional: 0
               },
               Quantidade: 1,
               Acrescimo: 0,
               Desconto: 0,
               AcrescimoDiferencaFracionada: 0,
               Observacao: "",
               ItensFracao: null,
               ItensAdicionais: [],
               ValorTotal: 3.5,
               TipoOperacao: 2
            },
            {
               TipoItem: 0,
               Produto: {
                  Codigo: "9003",
                  Descricao: "FANTA LARANJA",
                  PrecoVenda: 3.5,
                  PrecoPromocional: 0
               },
               Quantidade: 10,
               Acrescimo: 0,
               Desconto: 0,
               AcrescimoDiferencaFracionada: 0,
               Observacao: "",
               ItensFracao: null,
               ItensAdicionais: [],
               ValorTotal: 35,
               TipoOperacao: 3
            },
            {
               TipoItem: 0,
               Produto: {
                  Codigo: "9004",
                  Descricao: "BRAHMA",
                  PrecoVenda: 4,
                  PrecoPromocional: 0
               },
               Quantidade: 1,
               Acrescimo: 0,
               Desconto: 0,
               AcrescimoDiferencaFracionada: 0,
               Observacao: "",
               ItensFracao: null,
               ItensAdicionais: [],
               ValorTotal: 4,
               TipoOperacao: 4
            }
         ]
      }
   }
}

Response

O serviço retorna um JSON no formato abaixo:

1-     Sucesso

Sucesso = true indica que o pedido foi registrado corretamente.

{
   EnviarPedidoResult: {
      Erros: [],
      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 "COCA COLA" com quantidade zero.",
         "Este item COCA COLA não podera ser vendido como Tipo Operacao Comodato.",
         "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."
      ],
      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.








Card documentos
InformacaoUse esse box para destacar informações relevantes e/ou de destaque.
TituloIMPORTANTE!

Button
TextoOutras integrações do PDV
Linkhttp://tdn.totvs.com/pages/viewpage.action?pageId=455806087

Button
TextoOutras integrações do PDV
Linkhttp://tdn.totvs.com/pages/viewpage.action?pageId=458775104

Templatedocumentos


HTML
<!-- esconder o menu --> 


<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>