Páginas filhas
  • API - Pedidos Online: Pedido Venda

Consulta Status do Pedido

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


URL do Serviço:

POST: http://{url_do_servidor}/PedidoVendaService.svc/StatusPedido

Status

Código

NaoEncontrado

0

Recepcionado

1

Expedido

2

Entregue

3

Concluido

4

Cancelado

5


Entregue: é para quando o pedido faturado com RetirarNaLoja



Request


Json de Publicação para ExecAuto
{
	"parametros": {
		"CodigoExternoPedido": "16",
		"CodigoEstabelecimento": "96700001PC1",
		"CodigoIntegracao": 99,
		"RequestID": null,
		"TipoServico": null
	}
}


Response


Json de Publicação para ExecAuto
{
	"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


Json de Publicação para ExecAuto
{
	"parametros": {
		"CodigoProduto": "1",
		"DataRetirada": "/Date(1612206090305)/",
		"DataDevolucao": "/Date(1612206090302)/",
		"CodigoEstabelecimento": "96700001PC13",
		"CodigoIntegracao": 99,
		"RequestID": null,
		"TipoServico": null
	}
}


Response


Json de Publicação para ExecAuto
{
	"ConsultarProdutoDisponibilidadeEstoqueResult": {
		"Erros": [],
		"QuantidadeDisponivel": 100
	}
}


Pedido Venda


URL do Serviço:

POST: http://{url_do_servidor}/PedidoVendaService.svc/EnviarPedido

 

Request


Método de envio de pedido para os estabelecimentos.


CodigoEstabelecimento: É o código do estabelecimento no cadastro do TOTVS Chef, este código deve ser vinculado ao cadastro de loja da aplicação integrada.

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

CodigoExternoPedido: refere-se ao código do pedido no aplicativo integrado, este código é utilizado para rastreio do pedido e para validação de duplicidade de pedido (Chave: CodigoIntegracao + CodigoEstabelecimento + CodigoExternoPedido).

PagamentoOnline: indica que o recebimento é de responsabilidade do aplicativo integrado.

RetirarNaLoja: indica que o cliente irá retirar o produto no estabelecimento, sendo assim não precisando informar o EnderecoEntrega e também nao pode ser cobrado taxa de entrega.


Exemplo de retirada na loja ou entrega no endereço do cliente:


Pedido Venda - Retirada na Loja


Json de Publicação para ExecAuto
{
	"parametros": {
		"Pedido": {
			"CodigoExternoPedido": "1529453014",
			"CodigoIntegracao": 0,
			"Cliente": {
				"Id": null,
				"NomeCompleto": "TOTVS",
				"TipoPessoa": 0,
				"Sexo": 0,
				"CpfCnpj": "00000000181",
				"Endereco": {
					"Logradouro": "Av. 09 de Julho",
					"Numero": "2960",
					"Complemento": "1o Andar",
					"Bairro": "Vila Iracema",
					"Municipio": "Jundiai",
					"MunicipioNumeroIBGE": 3525904,
					"UF": "SP",
					"UFNumeroIBGE": 35,
					"CEP": "13208056",
					"DDD": "19",
					"Telefone": "12345678",
					"EMail": "[email protected]",
					"IdentificacaoEndereco": null,
					"InformacoesAdicionais": null
				},
				"EnderecoEntrega": null,
				"ConheceuComo": "TELEVISAO",
				"RgIE": ""
			},
			"CodigoPedido": 0,
			"CodigoCliente": 0,
			"Troco": 0,
			"Desconto": 0,
			"ValorTotal": 550.5,
			"Pagamentos": [
				{
					"Tipo": 2,
					"Valor": 550.5,
					"CodigoReferencia": "MC",
					"PagoOnline": false
				}
			],
			"TaxaDeEntrega": 10.5,
			"PagamentoOnline": true,
			"RetirarNaLoja": true,
			"DataEntrega": "/Date(1612281364000)/",
			"DataRetorno": "/Date(1612454164000)/",
			"Observacao": null,
			"PeriodoEntrega": null,
			"PeriodoRetorno": null,
			"Itens": [
				{
					"TipoItem": 0,
					"Produto": {
						"Codigo": "13",
						"Descricao": "A MODA DA CASA",
						"PrecoVenda": 54.0,
						"PrecoOriginal": 0,
						"PrecoPromocional": 0,
						"Pesavel": true,
						"Processado": false,
						"ProdutoComposto": false,
						"BaixarEstoqueOnline": false,
						"QuantidadeEstoque": 0,
						"Composicoes": null
					},
					"Quantidade": 10,
					"Acrescimo": 0,
					"Desconto": 0,
					"MotivoAcrescimoDesconto": null,
					"AcrescimoDiferencaFracionada": 0,
					"Observacao": "",
					"ItensFracao": null,
					"ItensAdicionais": [],
					"ValorTotal": 540,
					"ValorDescontoItem": 0,
					"ValorServicoItem": 0,
					"ValorDescontoComboItem": 0,
					"ValorAcrescimoItem": 0,
					"TipoOperacao": 1
				}
			]
		},
		"CodigoEstabelecimento": "96700001PC1",
		"CodigoIntegracao": 99,
		"RequestID": null,
		"TipoServico": null
	}
}



Pedido Venda - Endereço Entrega


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


Json de Publicação para ExecAuto
{
	"parametros": {
		"Pedido": {
			"CodigoExternoPedido": "1529453015",
			"CodigoIntegracao": 0,
			"Cliente": {
				"Id": null,
				"NomeCompleto": "TOTVS",
				"TipoPessoa": 0,
				"Sexo": 0,
				"CpfCnpj": "00000000181",
				"Endereco": {
					"Logradouro": "Av. 09 de Julho",
					"Numero": "2960",
					"Complemento": "1o Andar",
					"Bairro": "Vila Iracema",
					"Municipio": "Jundiai",
					"MunicipioNumeroIBGE": 3525904,
					"UF": "SP",
					"UFNumeroIBGE": 35,
					"CEP": "13208056",
					"DDD": "19",
					"Telefone": "12345678",
					"EMail": "[email protected]",
					"IdentificacaoEndereco": null,
					"InformacoesAdicionais": null
				},
				"EnderecoEntrega": {
					"Logradouro": "RUA CENTRO",
					"Numero": "1000",
					"Complemento": "COMERCIAL",
					"Bairro": "CENTRO",
					"Municipio": "Jundiai",
					"MunicipioNumeroIBGE": 3525904,
					"UF": "SP",
					"UFNumeroIBGE": 35,
					"CEP": "13208056",
					"DDD": null,
					"Telefone": null,
					"EMail": null,
					"IdentificacaoEndereco": "INDENTIFICACAO ENTREGA",
					"InformacoesAdicionais": null
				},
				"ConheceuComo": "TELEVISAO",
				"RgIE": ""
			},
			"CodigoPedido": 0,
			"CodigoCliente": 0,
			"Troco": 0,
			"Desconto": 0,
			"ValorTotal": 550.5,
			"Pagamentos": [
				{
					"Tipo": 2,
					"Valor": 550.5,
					"CodigoReferencia": "MC",
					"PagoOnline": false
				}
			],
			"TaxaDeEntrega": 10.5,
			"PagamentoOnline": true,
			"RetirarNaLoja": false,
			"DataEntrega": "/Date(1612281364000)/",
			"DataRetorno": "/Date(1612454164000)/",
			"Observacao": null,
			"PeriodoEntrega": null,
			"PeriodoRetorno": null,
			"Itens": [
				{
					"TipoItem": 0,
					"Produto": {
						"Codigo": "13",
						"Descricao": "A MODA DA CASA",
						"PrecoVenda": 54.0,
						"PrecoOriginal": 0,
						"PrecoPromocional": 0,
						"Pesavel": true,
						"Processado": false,
						"ProdutoComposto": false,
						"BaixarEstoqueOnline": false,
						"QuantidadeEstoque": 0,
						"Composicoes": null
					},
					"Quantidade": 10,
					"Acrescimo": 0,
					"Desconto": 0,
					"MotivoAcrescimoDesconto": null,
					"AcrescimoDiferencaFracionada": 0,
					"Observacao": "",
					"ItensFracao": null,
					"ItensAdicionais": [],
					"ValorTotal": 540,
					"ValorDescontoItem": 0,
					"ValorServicoItem": 0,
					"ValorDescontoComboItem": 0,
					"ValorAcrescimoItem": 0,
					"TipoOperacao": 1
				}
			]
		},
		"CodigoEstabelecimento": "96700001PC1",
		"CodigoIntegracao": 99,
		"RequestID": null,
		"TipoServico": null
	}
}


DataEntrega: data destinada para entrega no pedido ou retirada em loja

DataRetorno: data destinada para retorno dos itens do TipoOperacao Comodato(2) e ou Consignação(3)

Sexo: deve respeitar a tabela abaixo.

Sexo

Código

Masculino

0

Feminino

1

TipoPessoa: deve respeitar a tabela abaixo.

Tipo

Código

Física

0

Jurídica

1

CpfCnpj: deve conter apenas valores numéricos (sem máscara). Para TipoPessoa Física deve ser informado o CPF e para TipoPessoa Jurídica deve ser informado o CNPJ.

RgIE: deve conter apenas valores numéricos (sem máscara). Para TipoPessoa Física deve ser informado o RG e para TipoPessoa Jurídica deve ser informado o IE.


Itens

1- Tipo Operação


Tipo Operação

Código

Venda

1

Comodato

2

Consignacao

3

Bonificacao

4


TipoOperacao: Cada item tem deve conter um tipo operação associado, segue exemplo abaixo


Casas Decimais

A tabela abaixo indica a limitação de casa decimais de acordo com cada atributo:


Campo

Decimais

Quantidade

3

Desconto

2

Troco

2

Forma de valor

2

Valor Total Item

2

Valor Total Pedido

2


Truncamento

Quando o cálculo de ValorTotal do item tiver mais do que 2 casas decimais este resultado deve ser truncado em 2 casas conforme exemplo abaixo:


Produto

Preço

Quantidade

Valor Total

Valor Final

Presunto Seara

4,25

2,654

11,2795

11,27


Pagamentos


Tipo: deve respeitar a tabela abaixo.

Forma de Pagamento

Código

Dinheiro

0

Cheque

1

Cartão de Credito

2

Cartão de Debito

3

Ticket

4

CodigoReferencia: informar o código de cartões/operada (ex: Visa Electron) da aplicação integrada, através deste código é feita correspondência com o cadastro de cartões/operadoras do TOTVS Chef.

Desconto: deve ser informado em Reais (R$) e não pode ser maior ou igual ao valor total do pedido. Não é aceito desconto e acréscimo por itens, apenas no totalizador do pedido.

Troco: Indica o valor em Reais (R$) de troco que deve ser devolvido ao cliente, quando existir valor de troco este valor deve ser informado na forma de pagamento, exemplo:


Pedido

Total Itens

60,50

Valor Total Pedido

60,50


Pagamento em dinheiro com nota de R$ 100,00. Neste caso precisa informar o valor de troco:


Pagamento Dinheiro

100,00

Troco

39,50

Json de Publicação para ExecAuto
{
	"parametros": {
		"Pedido": {
			"CodigoExternoPedido": "679698206",
			"CodigoIntegracao": 0,
			"Cliente": {
				"Id": null,
				"NomeCompleto": "TOTVS",
				"TipoPessoa": 0,
				"Sexo": 0,
				"CpfCnpj": "08291225249",
				"Endereco": {
					"Logradouro": "Av. 09 de Julho",
					"Numero": "2960",
					"Complemento": "1o Andar",
					"Bairro": "Vila Iracema",
					"Municipio": "Jundiai",
					"MunicipioNumeroIBGE": 3525904,
					"UF": "SP",
					"UFNumeroIBGE": 35,
					"CEP": "13208056",
					"DDD": "19",
					"Telefone": "12345678",
					"EMail": "[email protected]",
					"IdentificacaoEndereco": null,
					"InformacoesAdicionais": null
				},
				"EnderecoEntrega": null,
				"ConheceuComo": "TELEVISAO",
				"RgIE": ""
			},
			"CodigoPedido": 0,
			"CodigoCliente": 0,
			"Troco": 39.5,
			"Desconto": 0,
			"ValorTotal": 60.5,
			"Pagamentos": [
				{
					"Tipo": 0,
					"Valor": 100.0,
					"CodigoReferencia": "MC",
					"PagoOnline": false
				}
			],
			"TaxaDeEntrega": 10.5,
			"PagamentoOnline": false,
			"RetirarNaLoja": true,
			"DataEntrega": "/Date(1612195968203)/",
			"DataRetorno": "/Date(1612195968207)/",
			"Observacao": null,
			"PeriodoEntrega": null,
			"PeriodoRetorno": null,
			"Itens": [
				{
					"TipoItem": 0,
					"Produto": {
						"Codigo": "5",
						"Descricao": "COCA COLA",
						"PrecoVenda": 5.0,
						"PrecoOriginal": 0,
						"PrecoPromocional": 0,
						"Pesavel": true,
						"Processado": false,
						"ProdutoComposto": false,
						"BaixarEstoqueOnline": false,
						"QuantidadeEstoque": 0,
						"Composicoes": null
					},
					"Quantidade": 10,
					"Acrescimo": 0,
					"Desconto": 0,
					"MotivoAcrescimoDesconto": null,
					"AcrescimoDiferencaFracionada": 0,
					"Observacao": "",
					"ItensFracao": null,
					"ItensAdicionais": [],
					"ValorTotal": 50,
					"ValorDescontoItem": 0,
					"ValorServicoItem": 0,
					"ValorDescontoComboItem": 0,
					"ValorAcrescimoItem": 0,
					"TipoOperacao": 1
				}
			]
		},
		"CodigoEstabelecimento": "96700001PC1",
		"CodigoIntegracao": 99,
		"RequestID": null,
		"TipoServico": null
	}
}



Response


O serviço retorna um JSON no formato abaixo:


Sucesso

Sucesso = true indica que o pedido foi registrado corretamente.

Json de Publicação para ExecAuto
{
	"EnviarPedidoResult": {
		"Erros": [],
		"Sucesso": true
	}
}


Erro

Sucesso = false indica que o pedido não foi registrado no sistema, no atributo Erros encontra a lista de motivos/problemas que ocorreram


Json de Publicação para ExecAuto
{
	"EnviarPedidoResult": {
		"Erros": [
			"Data de Entrega 01/02/2021 16:12:48  está menor que a Data Atual 01/02/2021 16:16:57.",
			"Data de Retorno 01/02/2021 16:12:48  está menor que a Data Atual 01/02/2021 16:16:57.",
			"Pedido com retirada na loja e com taxa de entrega maior do que zero."
		],
		"Sucesso": false
	}
}


A tabela abaixo tem a relação completa de possíveis erros e validações que devem ser tratados pelo aplicado integrado.


Mensagem de erro

Erro interno de processamento da requisição.

Erro ao enviar pedido.

Não foi possível estabelecer uma conexão com a loja.

Pedido inválido.

Código integração inválido.

Código externo do pedido inválido.

Duplicidade de pedido por código externo.

Total do pedido difere do somatório dos itens.

O pedido deve conter um cliente.

Cliente sem CPF ou CPNJ ou Telefone.

Cliente com nome inválido.

Cliente sem endereço.

Endereço do cliente com logradouro inválido.

Endereço do cliente com município inválido.

Endereço do cliente com UF inválida.

Endereço do cliente com número inválido.

Endereço do cliente com bairro inválido.

O pedido deve conter no mínimo 1 item.

Item inválido.

Produto "{0}" com quantidade zero.

O valor total do item "{0}" difere do cálculo do sistema.

Produto "{0}" não permite fração.

Produto "{0}" inválido.

Produto "{0}" com preço desatualizado.

Produto "{0}" sem preço de venda.

O pedido deve conter no mínimo uma forma de pagamento.

Formas de pagamento com valor inválido.

Somatório das formas de pagamento difere do total do pedido.

Erro ao salvar pedido no sistema.

Cliente com CPF ou CPNJ inválido.

Erro ao consultar status do pedido no sistema

Erro ao consultar status do estabelecimento.

O valor total do pedido deve ser igual ou superior a R$ 0,01.

Pedido com retirada na loja e com taxa de entrega maior do que zero.

Taxa de entrega com valor inválido.

Quantidade do item é inválida para uma venda fracionada (1/2, 1/3 ou 1/4).

A soma dos itens da venda fracionada deve completar 1 inteiro.

O valor total do item fracionado deve ser igual ao preço do item de maior valor.

Item fracionado deve conter no mínimo 2 frações (itens).

O valor total do item deve ser truncado em 2 casas decimais.

A quantidade do item deve conter no máximo 3 casas decimais.

O valor total do item fracionado deve ser igual à soma dos valores das frações (itens).

Item do tipo "normal" não aceita itens fração.

Os itens da fração devem ser do tipo "normal".

Os itens adicionais devem ser do tipo "normal".

Produto "{0}" não é um adicional do produto "{1}".

Cliente sem endereço de entrega.

Data de Entrega invalida.

Data de Retorno invalida.

Data de Entrega {0} está menor que a Data Atual {1}.

Data de Retorno {0} está menor que a Data Atual {1}.

Data de Retorno {0} é menor que a data de Entrega {1}.

Endereço de Entrega com logradouro inválido.

Endereço de Entrega com município inválido.

Endereço de Entrega com UF inválida.

Endereço de Entrega com número inválido.

Endereço de Entrega com bairro inválido.

Este item {0} podera ser vendido apenas como Tipo Operacao {1}.

Este item {0} não podera ser vendido como Tipo Operacao {1}.

Endereço do cliente com CEP inválido.

Endereço de Entrega com CEP inválido.

  • Sem rótulos