Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Dica
titleInformações:

Neste artigo você tem informações sobre a integração de pedidos do e-commerce VTEX através da mensagem RetailSales.

Qualquer outro tipo de uso da mensagem padronizada RetailSales, deverá ser alinhado previamente com o time de produto.

1- Configurações iniciais. 

1.1- Primeiramente é imprescindível que o smartclient seja 32 bits para uso do SIGALOJA, podendo usar o Appserver 64 bits.

...

Obs.: A integração com VTEX, faz uso de outras mensagens padronizadas, para mais informações acessar a documentação do time de FrameWork: Integração Protheus x VTEX - Via Mensagem Padronizada (EAI)

2- Parâmetros/Ponto de Entrada

2.1- No Configurador (SIGACFG), acesse Ambientes/Cadastros/Parâmetros (CFGX017).

...

Parâmetro/PETipoDescriçãoExemplo de Conteúdo

Observação

MV_LJECOMOL

E-commerce CiaShop .T. (Ativo) .F. (Desativado)

  • Integração Antiga
.F.

Colocar obrigatoriamente falso (.F.)

Importante: Não existe compatibilidade para o funcionamento simultâneo das integração CiaShop e VTEX, para funcionar VTEX a integração com CiaShop deverá ser desligada.

MV_LJECOMML

Identifica que o sistema utiliza E-commerce .T. (Ativo) .F. (Desativado)

  • Integração Antiga
.F.

Colocar obrigatoriamente falso (.F.)

Importante: Não existe compatibilidade para o funcionamento simultâneo das integração CiaShop e VTEX, para funcionar VTEX a integração com CiaShop deverá ser desligada.

MV_TABPADCPreço Padrão para digitação de vendas001Deve possuir o código cadastrado na tabela de preços DA0 para referência. Importante: Esse parâmetro não define regras de preço para o E-commerce, o preço recebido via integração não é modificado, esse parâmetro é necessário por regras do módulo SIGALOJA. 
MV_RESESTLIndica se o estoque deve ser reservado para clientes que possuem bloqueio de credito..T.

Recomenda-se habilitar esse parâmetro com integração VTEX para gerar a liberação do pedido e reservar o estoque mesmo quando o crédito estiver bloqueado (Boleto por exemplo).

MV_LJIFPLIC

Define as formas de pagamento para geração de pedido de venda liberado para faturamento, ou seja, sem nenhum tipo de bloqueio financeiro.

FI|CC|R$

Importante: Somente informar as formas que tem confirmação de pagamento na camada do e-commerce. Exemplo: Caso utilize boleto sem a confirmação de pagamento pela VTEX, não deverá informar o boleto nesse parâmetro, caso isso ocorra, um pedido que ainda não teve o boleto pago, poderá ser liberado para o faturamento após a integração.

MV_LJGERSCN

Se utiliza o conceito de gerar Solicitação de Compras para reserva sem estoque.

SIGALOJA 0357 Qual a finalidade do parâmetro MV_LJGERSC ?

4

Para MarketPlace como o Pedido já vem fechado recomenda-se o uso deste parâmetro = 4 (Permite reserva sem estoque e não gera solicitação de compras) para permitir reservar mesmo sem o estoque.

Obs: As configurações para geração automática de solicitação de compra não são compatíveis para a integração do e-commerce 

MV_LJTESPEC

Define qual o TES será utilizado para a geração do Pedido de Venda por meio da rotina Venda Assistida. O parâmetro pode ser macro-executado.


501

O sistema considera as regras da rotina TES Inteligente MATA089 para eleger um TES considerando somente o cadastro do tipo de operação (campo FM_TIPO) “V” IDENTIFICAÇÃO DE ENTREGAS FUTURAS.

Caso não seja eleito um TES automaticamente, seja pela ausência do TES Inteligente ou pela não-adequação às regras, o TES informado nesse parâmetro será utilizado na geração do Pedido de Venda.

Esse TES não deve gerar movimento financeiro (Campo Gera Dupl. = Não). Pois o financeiro é gerado pelas rotinas de varejo (GravaBatch) no momento que o pedido é criado, colocando para não gerar, não será gerado no momento que o pedido for faturado no módulo de faturamento.

Esse parâmetro também permite executar funções de usuário para definir qual TES o sistema deverá considerar para geração do pedido de venda. Para executar uma função de usuário por meio desse parâmetro, basta incluir o & antes da função de usuário. Se a função do usuário retornar um TES, este será utilizado no pedido de venda, desconsiderando o TES inteligente.

MV_LJPEDVELDefine a utilização da emissão de Pedidos de Venda através da rotina de Venda Assistida..T.

O parâmetro deve ficar obrigatoriamente .T. para emissão do pedido de venda, essa configuração é padrão para seguir o fluxo de pedido com entrega no módulo de Venda Assistida. (SIGALOJA 0196 Como habilitar a emissão de pedido de venda na Rotina Venda Assistida?)

Obs.: Usuários CiaShop não precisavam habilitar esse parâmetro, pois o fluxo para geração do Pedido não era o mesmo do Venda Assistida.

MV_LJCONDPC

Determina a Condição de Pagamento que será utilizada para a emissão do Pedido de Venda através da rotina de Venda Assistida. Esta condição de pagamento é meramente informativa pois o TES utilizado não pode gerar movimento financeiro.

001

Importante: É necessário verificar se existe Condição de Pagamento cadastrada na tabela SE4 - Condições de Pagamento, para informar no parâmetro.

(SIGALOJA 0196 Como habilitar a emissão de pedido de venda na Rotina Venda Assistida?)

MV_LJTPFRE CTipo de frete para o processo de integração de venda via mensagem padronizada RetailSales.F

O parâmetro pode ser macro-executado. Para isso, ele deve iniciar com & e em seguida com a função a ser chamada. Exemplo: &U_EXEMPLO().

Caso não seja eleito um Tipo de Frete diferente do permite no campo será informado uma critica e não integrará a orçamento/venda. 

MV_VALCNPJCParâmetro do módulo de Faturamento, define se permite ter mais de um cliente com o mesmo CNPJ1Esse parâmetro é importante para a integração VTEX para permitir múltiplos endereços, mais informações no link:https://centraldeatendimento.totvs.com/hc/pt-br/articles/360029117791-MP-FAT-Incluir-m%C3%BAltiplos-endere%C3%A7os-de-entrega-no-cadastro-do-cliente
MV_VALCPFCParâmetro do módulo de Faturamento, define se permite ter mais de um cliente com o mesmo CPF1Esse parâmetro é importante para a integração VTEX para permitir múltiplos endereços, mais informações no link:https://centraldeatendimento.totvs.com/hc/pt-br/articles/360029117791-MP-FAT-Incluir-m%C3%BAltiplos-endere%C3%A7os-de-entrega-no-cadastro-do-cliente
MV_LJE1NUMCDefine padrão de número na geração do título financeiro1Para mais informações: DT_MV_LJE1NUM
MV_LJOPTESCTipo de operação para Tes inteligente utilizado no item para bloco f10001

Quando o cliente usa TES inteligente esse parâmetro deve ser incluído o tipo de operação usando Tes de saida  deve gerar movimento financeiro (Campo Gera Dupl. = Sim)

Importante: Deve ser usado 2 caracteres conforme exemplo.

LJI701O1PE

Ponto de entrada para customizar os dados recebidos na integração.

Seu uso não é obrigatório e o conteúdo customizado não é avaliado pelo time de produto, conforme ocorre com demais pontos de entrada do Protheus. Somente deverá ser utilizado se houver a necessidade de customizar algum dado recebido pela camada da VTEX. Ele permite alterar o valor das tags dos itens que foram recebidas pela mensagem única RetailSales.


Documentação: Ponto de entrada LJI701O1
LJI701O2PE

Ponto de entrada para liberação da alteração do pedido de venda, gerados pela mensagem única RetailSales


Documentação: Ponto de entrada LJI701O2
LJDEPSE1PE

Este Ponto de Entrada é acionado na finalização do Venda Assistida após a gravação do título a receber na tabela SE1, possibilitando que sejam realizadas gravações complementares no titulo inserido.

O registro inserido fica posicionado para uso no Ponto de Entrada.


Documentação: LJDEPSE1 - Ponto de entrada após a gravação do título a receber (SE1)

3- Adapter

3.1- Para que o Protheus possa receber a mensagem RetailSales é necessário realizar o cadastro dos seguintes adapters: LOJA701, LOJA704 e LOJI701A. Para mais informações de como cadastrar um adapter Clique aqui.

...

3.4- Abaixo um exemplo do cadastro do adapter LOJI701A:

4- Configurações no modulo Controle de Lojas (Identificação de Lojas)


Dica
titleO que é Identificação de Lojas?

Esta rotina é utilizada para identificar as lojas e o estoque (armazém) que será integrada na MP - ItemReserve, assim poderá parametrizar o estoque de uma loja diferente daquela em que a venda está sendo efetuada, por exemplo.

Assim, se o produto que o cliente deseja não estiver disponível no estoque da loja em que está sendo atendido, é possível verificar o estoque de outras lojas (devidamente identificadas nesse cadastro) e reservar itens do estoque dessas lojas, atendendo assim, a demanda do cliente.

...

4.2- Abaixo um exemplo do cadastro simples de Identificação de Lojas:

 

5- De/Para

5.1- Para que serve um De/Para?  

...

  • Operador de Caixa - Na Integração VTEX  de/para é feito automaticamente no recebimento da MP - RetailSales, caso queira usar outra basta realizar o seguinte cadastro de/para de exemplo:


6- Fluxo da integração da mensagem

6.1 - RetailSales - item Entrega

Após ter realizado as configurações acima a integração de Venda - RetailSales seguirá os seguintes fluxos:

...

  • DocumentTraceAbilityOrder - Rastreio do Pedido de Vendas é enviado do sistema Protheus, e será integrado com o sistema VTEX no momento do faturamento do pedido de venda, gerando o documento de saida. Link da MP - Rastreio de Pedido de Venda
  • Importante: Existe uma validação padrão dentro do módulo do Faturamento para não permitir alterar Pedido quando a origem é do Loja, o motivo é para evitar divergência de valores entre as tabelas do controle de loja e faturamento, porém, caso o cliente deseja realizar a alteração do pedido mesmo sabendo que pode ocorrer divergência de valores caso o valor total do pedido seja alterado, deve-se utilizar o ponto de entrada LJI701O2 (DVARLOJ1-5249 DT Criação de Ponto de Entrada (rotina Pedidos de venda)) para realizar a liberação da alteração.
  • Estrutura de gravação: A gravação do pedido segue o padrão utilizado pelo Venda Assistida, onde o registro recebido de orçamento, após o processamento do Job Gravabatch, irá gerar um orçamento filho para a geração do Pedido. Para mais informações sobre essa estrutura, acessar o link: Como é gravado uma venda com itens do tipo ENTREGA (pedido) e RETIRA ?

6.2 - RetailSales - Item Retira

Apos ter realizado as configurações acima a integração de Venda - OrderRetail seguirá os seguintes fluxos:

...

  • Após a geração das tabelas SL1,SL2 e SL4acessando a rotina de Venda Assistida (LOJA701):
    • No menu "Outras Ações/Confirmar Pedido Pendente", efetue a liberação do pedido - que estará com o status na cor roxa - com isso será gerada a mensagem padronizada DocumentTraceAbilityOrderRetail com o Status "Empacotado"
    • Finalizando esse orçamento com item de pedido do tipo retira, será gerada a mensagem padronizada DocumentTraceAbilityOrderRetail com o Status "Entregue".
    • Efetuando o cancelamento do orçamento pai ( o filho não pode ser excluído pois é um pedido retira )  será gerada a mensagem padronizada DocumentTraceAbilityOrderRetail com o status "Cancelado".
    • Para maiores informações da mensagem DocumentTraceAbilityOrderRetail, acesse: DocumentTraceAbilityOrderRetail - Pedido Retira


7- Geração do Contas a Receber (SE1)

A geração dos dados do Contas a Receber (SE1), ocorre após a execução do Job de Integração de Vendas (LJGRVBATCH) e depende da

...

o Contas a Receber gerado após a finalização do orçamento como venda.


8- Relacionamento entre Orçamento, Pedido de Venda, Pedidos Liberados e Contas a Receber

Relacionamento entre tabelas de Orçamento(Venda Assistida), Pedido de Venda, Pedidos Liberados (Faturamento) e Contas a Receber(Financeiro)

...

E1_NUM + E1_PREFIXO = L1_DOCPED + L1_SERPED


9- Exemplo das mensagens

9.1 - RetailSales - com item do tipo "Entrega"

Nota
titleImportante

A Tag ItemOrder no bloco itens não será considerado o seu valor recebido. O Protheus fará todo o controle de numeração para contemplarmos os pedidos com itens maiores de 100.
A Tag WarehouseInternalid no bloco itens deve ser utilizada quando o Armazém do produto for diferente de '01 ' no Protheus.
Deve ser passado o Armazém cadastrado no De/Para da NNR exemplo: 
"WarehouseInternalid": "XX" 

...

Bloco de código
themeEclipse
titleJson - RetailSales
{
	"Header": {
		"GeneratedOn": "Thu, 23 Apr 2020 17:02:20 GMT",
		"BranchId": "D MG 01",
		"DeliveryType": "async",
		"ProductName": "ECOMMERCE",
		"Type": "BusinessMessage",
		"Transaction": "RetailSales",
		"Version": "2.000",
		"UUID": "61e91b9e-e030-40d6-b0fd-dcf63e81c966",
		"SubType": "Event",
		"Event": "upsert",
		"CompanyId": "T1",
		"SourceApplication": "ECOMMERCE",
		"ProductVersion": "1.0.0"
	},
	"Content": {
		"items": null,
		"OperatorCode": "AUTOMATICO",
		"ECommerceOrder": "1027293590055-01",
		"Event": "upsert",
		"NetPrice": 203,
		"InternalId": "15da928b-9e88-4947-a508-8cdd56beabd9",
		"CarrierInternalId": "01",
		"ListOfSaleItem": {
			"SaleItem": [
				{
					"ItemOrder": 1,
					"ItemCode": "d077bf8a-bbbb-4549-9b00-1a203cfe4428",
					"UnitPrice": 18.6,
					"ItemDeliveryType": "3",
					"ItemReserveInternalId": "15da928b-9e88-4947-a508-8cdd56beabd9",
					"ItemInternalId": "d077bf8a-bbbb-4549-9b00-1a203cfe4428",
					"ItemPrice": 93,
					"InternalId": "C14B0CB7AE00430C86475D908AAB843A",
					"FreightValueProrated": 5,
					"OperationCode": "V",
					"Quantity": 5
				},
				{
					"ItemOrder": 2,
					"ItemCode": "69dbb151-bbe6-4547-853a-0342ace00eab",
					"UnitPrice": 55,
					"ItemDeliveryType": "3",
					"ItemReserveInternalId": "15da928b-9e88-4947-a508-8cdd56beabd9",
					"ItemInternalId": "69dbb151-bbe6-4547-853a-0342ace00eab",
					"ItemPrice": 55,
					"InternalId": "77B3D9FC812B47148AF774F44F9C6EF7",
					"FreightValueProrated": 5
					"OperationCode": "V",
					"Quantity": 1
				},
				{
					"ItemOrder": 3,
					"ItemCode": "79f93baf-39ac-40de-ae73-007a256dda31",
					"UnitPrice": 55,
					"ItemDeliveryType": "3",
					"ItemReserveInternalId": "15da928b-9e88-4947-a508-8cdd56beabd9",
					"ItemInternalId": "79f93baf-39ac-40de-ae73-007a256dda31",
					"ItemPrice": 55,
					"InternalId": "F4A61206DEF543E0A613EB63D1141E1D",
					"FreightValueProrated": 5,
					"OperationCode": "V",
					"Quantity": 1
				}
			]
		},
		"StationSalePointInternalId": "AUTOMATICO",
		"ListOfSaleCondition": {
			"SaleCondition": [
				{
					"UniqueSerialNumber": "004112",
					"DateOfPayment": null,
					"PaymentValue": 203,
					"PaymentMethodCode": "CC",
					"FinancialManagerCode": "CAR"
				}
			]
		},
		"DocumentCode": "1027293590055-01",
		"FreightValue": 15,
		"CarrierCode": "01",
		"IssueDateDocument": "2020-04-23T17:01:06.625349+00:00",
		"CustomerVendorInternalId": "44dca035-dbbe-4aef-8c1e-c2a4acb4f88a",
		"SaleType": "V",
		"GrossPrice": 203,
		"TotalPrice": 203,
		"PersonalIdentification": "1027293590055-01",
		"DiscountValue": 0
	}
}

9.2 - RetailSales - com item do Tipo "Retira" 

Nota
titleImportante

A Tag ItemDeliveryType no bloco itens deve estar com 1, que para o Protheus sinaliza Pedido do Tipo Retira.

A Tag WarehouseInternalid no bloco itens deve ser utilizada quando o Armazém do produto for diferente de '01 ' no Protheus.
Deve ser passado o Armazém cadastrado no De/Para da NNR exemplo: 
"WarehouseInternalid": "XX" 

...

Bloco de código
themeEclipse
titleJson - OrderRetail
{
	"Header": {
		"GeneratedOn": "Thu, 23 Apr 2020 17:02:20 GMT",
		"BranchId": "D MG 01",
		"DeliveryType": "async",
		"ProductName": "ECOMMERCE",
		"Type": "BusinessMessage",
		"Transaction": "RetailSales",
		"Version": "2.000",
		"UUID": "61e91b9e-e030-40d6-b0fd-dcf63e81c966",
		"SubType": "Event",
		"Event": "upsert",
		"CompanyId": "T1",
		"SourceApplication": "ECOMMERCE",
		"ProductVersion": "1.0.0"
	},
	"Content": {
		"items": null,
		"OperatorCode": "AUTOMATICO",
		"ECommerceOrder": "1027293590055-01",
		"Event": "upsert",
		"NetPrice": 203,
		"InternalId": "15da928b-9e88-4947-a508-8cdd56beabd9",
		"CarrierInternalId": "01",
		"ListOfSaleItem": {
			"SaleItem": [
				{
					"ItemOrder": 1,
					"ItemCode": "d077bf8a-bbbb-4549-9b00-1a203cfe4428",
					"UnitPrice": 18.6,
					"ItemDeliveryType": "1",
					"ItemReserveInternalId": "15da928b-9e88-4947-a508-8cdd56beabd9",
					"ItemInternalId": "d077bf8a-bbbb-4549-9b00-1a203cfe4428",
					"ItemPrice": 93,
					"InternalId": "C14B0CB7AE00430C86475D908AAB843A",
					"FreightValueProrated": 5,
					"DiscountAmount": 5,
					"OperationCode": "V",
					"Quantity": 5
				},
				{
					"ItemOrder": 2,
					"ItemCode": "69dbb151-bbe6-4547-853a-0342ace00eab",
					"UnitPrice": 55,
					"ItemDeliveryType": "1",
					"ItemReserveInternalId": "15da928b-9e88-4947-a508-8cdd56beabd9",
					"ItemInternalId": "69dbb151-bbe6-4547-853a-0342ace00eab",
					"ItemPrice": 55,
					"InternalId": "77B3D9FC812B47148AF774F44F9C6EF7",
					"FreightValueProrated": 5,
					"DiscountAmount": 5,
					"OperationCode": "V",
					"Quantity": 1
				},
				{
					"ItemOrder": 3,
					"ItemCode": "79f93baf-39ac-40de-ae73-007a256dda31",
					"UnitPrice": 55,
					"ItemDeliveryType": "1",
					"ItemReserveInternalId": "15da928b-9e88-4947-a508-8cdd56beabd9",
					"ItemInternalId": "79f93baf-39ac-40de-ae73-007a256dda31",
					"ItemPrice": 55,
					"InternalId": "F4A61206DEF543E0A613EB63D1141E1D",
					"FreightValueProrated": 5,
					"DiscountAmount": 5,
					"OperationCode": "V",
					"Quantity": 1
				}
			]
		},
		"StationSalePointInternalId": "AUTOMATICO",
		"ListOfSaleCondition": {
			"SaleCondition": [
				{
					"UniqueSerialNumber": "004112",
					"DateOfPayment": null,
					"PaymentValue": 203,
					"PaymentMethodCode": "CC",
					"FinancialManagerCode": "CAR"
				}
			]
		},
		"DocumentCode": "1027293590055-01",
		"FreightValue": 15,
		"CarrierCode": "01",
		"IssueDateDocument": "2020-04-23T17:01:06.625349+00:00",
		"CustomerVendorInternalId": "44dca035-dbbe-4aef-8c1e-c2a4acb4f88a",
		"SaleType": "V",
		"GrossPrice": 203,
		"TotalPrice": 203,
		"PersonalIdentification": "1027293590055-01",
		"DiscountValue": 15
	}
}

9.3 - RetailSales - recorte do JSON com demonstrativo das Formas de Pagamento e suas variações de utilização

Nota
titleImportante

A seguir um recorte, um exemplo, da parte do JSON que é responsável pela forma de pagamento na integração Retail:

...

Bloco de código
themeEclipse
titleListOfSaleCondition - Várias Formas
"ListOfSaleCondition": {
            "SaleCondition": [{
                    "DateOfPayment": "2020-11-26T00:00:00",
                    "PaymentValue": 20,
                    "PaymentMethodCode": "CC",
                    "FinancialManagerCode": "",
                    "UniqueSerialNumber": "145236",
                    "EftDate": "2020-11-26T13:45:02",
                    "EftAutorization": "123456789",
                    "EftInstitute": "VISA",
                    "EftDocument": "9985",
                    "EftParcel": "1"
                },
                {
                    "DateOfPayment": "2020-11-26T00:00:00",
                    "PaymentValue": 20,
                    "PaymentMethodCode": "CC",
                    "FinancialManagerCode": "",
                    "UniqueSerialNumber": "145236",
                    "EftDate": "2020-11-26T13:45:02",
                    "EftAutorization": "123456789",
                    "EftInstitute": "VISA",
                    "EftDocument": "9985",
                    "EftParcel": "2"
                },
				{
                    "DateOfPayment": "2020-11-26T00:00:00",
                    "PaymentValue": 10,
                    "PaymentMethodCode": "R$"
                }
            ]
        }

10- Configuração de Administradora Financeira - Geração de Contas a Receber calculo de Data de Vencimento 

Para Formas de pagamento CC - Cartão de Credito o Protheus trabalha a partir do cadastro da Administradora Financeira.

...

Como é definido o vencimento do titulo financeiro para formas com administradora financeira ?
https://tdn.totvs.com/pages/releaseview.action?pageId=525033971

----------
Como fixo o dia de vencimento das parcelas conforme o vencimento da primeira parcela?
https://tdn.totvs.com/pages/releaseview.action?pageId=225264318

----------
Gerar taxa da administradora financeira no contas a pagar?
https://tdn.totvs.com/pages/releaseview.action?pageId=224442986


10.1 - Configuração de campos para armazenar o NSU da transação TEF

Caso a numeração de NSU do TEF seja maior que o padrão do Protheus ( Tag UniqueSerialNumber da mensagem padronizada), os campos abaixo devem ser ajustados e possuir o mesmo tamanho:

...

Em caso de dúvidas sobre conciliação de pagamentos, deverá ser acionado o time de suporte do Financeiro. 

11- Tabela de Ocorrências na geração de Pedido de Venda: RetailSales

OcorrênciaMotivo

Ação

Estado de Cobrança não encontradoNão cadastrado estado de cobrança na filial Realizar o cadastro completo da filial corrente 
Documento não informado ou já existenteNão informado ou já usado o documento disponibilizado na tag DocumentCode Verificar no json recebido a falta ou documento já existe/usado.
Código da estação não encontrada Recebido MP uma estação diferente a cadastrada ou incluída no de/paraVerificar no json recebido se houve mudança ou de/para incorreto.
Cliente não informado, não encontrado Erro na integração do cliente, não encontrado de/para ou bloqueadoVerificar no json recebido o código na tag CustomerVendorInternalId e validar de/para de Cliente e/ou identificar se não esta bloqueado no cadastro de Cliente.
Data de Emissão não informada ou incorretaData de emissão divergente com o esperado ou faltante na tag IssueDateDocumentVerificar no json recebido a tag IssueDateDocument e verificar se a data recebida é maior dos parâmetros MV_ULMES e MV_DBLQMOV 
Valor total da Venda zeradaValor total da venda zerada na tag TotalPriceVerificar no json recebido o valor recebido na tag TotalPrice 
Valor liquido da venda zeradaValor liquido da venda zerada na tag NetPriceVerificar no json recebido o valor recebido na tag NetPrice 
Valor bruto da venda zeradaValor Bruto da venda zerada na tag GrossPriceVerificar no json recebido o valor recebido na tag GrossPrice 
Produto não informado ou não encontradoProduto não informado na tag ListOfSaleItemVerificar no json recebido o código no bloco a tag ListOfSaleItem e validar de/para de Produto e/ou identificar se não esta bloqueado no cadastro de Produto.
Item do produto não informado Item do produto não informado na tag ItemOrderVerificar no json recebido o valor na tag ItemOrder no bloco a tag ListOfSaleItem 

Quantidade do produto não informado 

Quantidade do produto não informado na tag QuantityVerificar no json recebido o valor na tag Quantity no bloco a tag ListOfSaleItem 
Preço Unitário do produto não informadoPreço Unitário do produto não informado na tag UnitPriceVerificar no json recebido o valor na tag UnityPrice no bloco a tag ListOfSaleItem 
CFOP do Produto não informadoCFOP do Produto não informado na tag OperationCodeVerificar no json recebido o valor na tag OperationCode no bloco a tag ListOfSaleItem 
Preço do Produto não informadoPreço de Produto não informado na tag ItemPriceVerificar no json recebido o valor na tag ItemPrice no bloco a tag ListOfSaleItem 
Tes do Produto não informadaNão identifico Tes no produto ou na Tes InteligenteVerificar no cadastro de produto se atrelou Tes ou se configurou corretamente a Tes Inteligente

Reserva não encontrada

Não encontrado de/para de reserva


Verificar se integrou a reserva adapter - ItemReserve.

Verificar se o de/para de reserva foi criado corretamente.

Reserva com quantidade divergente

Mensagem de Erro:

Reserva (valor externo) - Já foi usada ou difere com a quantidade reservada (C0_QTDORIG) com a quantidade (valor da tag) recebida na TAG Quantity.

Verificar o de/para de reserva e identificar se esta correta a quantidade na tag Quantity no bloco ListOfSaleItem.

Verificar na tabela SC0 se já houve a exclusão do registro, com isso, a reserva já foi usada ou cancelada manualmente.

Reserva de Produto com Rastro (Lote, SubLote, Endereçamento ou Serie)

Mensagem de Erro:

Não existe um Lote que consiga atender a quantidade solicitada(x). Verifique o Saldo por Lote!

Verifique o estoque por Lote, porque a quantidade solicitada não é atendida por nenhum lote.

A tag "DetailedMessage" ira trazer o saldo disponivel por Lote para analise.

{

"Code": "001",
"Message": "Não existe um Lote que consiga atender a quantidade solicitada(300). Verifique o Saldo por Lote!",
"DetailedMessage": "{\"Item\":[{\"LotNumber\":\"LOTE_FEVER\",\"SubLotNumber\":\" \",\"ItemCode\":\"LOTE\",\"AvailableStockAmount\":16,\"AddressingItem\":\"\",\"SeriesItem\":\"\"},{\"LotNumber\":\"LOTE_MARÇO\",\"SubLotNumber\":\" \",\"ItemCode\":\"LOTE\",\"AvailableStockAmount\":20,\"AddressingItem\":\"\",\"SeriesItem\":\"\"},{\"LotNumber\":\"LOTE_ABRIL\",\"SubLotNumber\":\" \",\"ItemCode\":\"LOTE\",\"AvailableStockAmount\":18,\"AddressingItem\":\"\",\"SeriesItem\":\"\"}]}",
"HelpUrl": ""

}

Inconsistência na Forma de pagamento 

Não encontrado de/para de forma de pagamento

Não cadastrado ou não encontrado de/para de Administradora Financeira

Verificar se foi realizado o de/para de Forma de Pagamento no Configurador/Ambiente/Schedule/De Para de Mensagem Única

Verificar se foi realizado o cadastro de Administradora Financeira no Sigaloja e/ou realizado o de/para no Configurador/Ambiente/Schedule/De Para de Mensagem Única

Carga completa de estoque não é realizadaEstoque inicial não é atualizado na plataforma VTEXA data e hora de atualização de estoque na mensagem padronizada, fica registrado nos campos:  B2_DULT, B2_HULT. 
Obs.; Na primeira carga de estoque para mensagem padronizada, esses campos estão vazios e são atualizados no momento da geração da mensagem padronizada.
Contas a Receber (SE1) gerado com código do cliente (campo E1_CLIENTE) nas vendas que possuem uma administradora financeiraConfiguração da Administradora Financeira (SAE) que está sendo utilizada na vendaVerifique a configuração da Administradora Financeira (SAE) utilizada na venda, se o campo Financiamento Próprio (AE_FINPRO) está marcado com "N"- NÃO
Quero mudar a série que meu orçamento (SL1) é gerado e a série do contas a receber (SE1)Devido a Série configurada (LG_SERIE) usada para gravar a reserva recebida.Verificar na tag StationSalePointInternalId o código da estação configurado no De/Para do Protheus e altere o campo SÉRIE (LG_SERIE) no Cadastro de Estação (SLG - rotina LOJA121) relacionada.

Ao tentar excluir uma reserva emite-se a mensagem:

"Este orçamento não poderá ser excluído porque se trata de um orçamento com reserva"

Esse orçamento é um orçamento filho proveniente de uma reserva.Se o pedido não tiver sido faturado, para excluir esse orçamento é necessário excluir o orçamento/venda pai que originou essa reserva.
Como evitar diferença de centavos no arredondamento dos ambientes SIGALOJACalculo reverso de IPI

Verificar a relação de campos, parâmetros e outras informações importantes a serem verificadas e configuradas para que o sistema faça os cálculos de arredondamento corretamente.

SIGAFRT_SIGALOJA_0047_Como evitar diferença de centavos no arredondamento dos ambientes SIGALOJA e SIGAFRT?


12- Cancelamentos

Cancelamento de reserva (Pagamento da venda não confirmado no E-Commerce)

  • Neste cenário ainda não temos o pedido integrado no Protheus, somente a reserva integrada.
  • Após o cancelamento do pedido no E-commerce, é enviado ao Protheus a mensagem ItemReserve com o evento DELETE, visando realizar o cancelamento desta reserva no Protheus.
  • Ao recepcionar a mensagem, é realizado todo o fluxo de cancelamento da reserva e após sua finalização é enviado um response da mensagem ItemReserve  ao E-Commerce com o status ok, caso a reserva tenha sido cancelada corretamente.

...

Aviso
titleAtenção

Caso seja gerada NCC para o cliente não existe integração deste processo com a plataforma E-Commerce.

Image Modified

13- Onde consultar demais informações sobre configurações do módulo Venda Assistida?

Abaixo link com a FAQ do Varejo:

https://tdn.totvs.com/display/public/PROT/SIGALOJA

6.1.2. Parâmetros Gerais


Importante: Realizar o checklist abaixo para validar se todas as etapas obrigatórias foram realizadas

  •  1 - Configurações iniciais
  •  1.1 - Versão SmartClient
    1.2 - Serviço REST
    1.3 - String > 30mb
    1.4 - Schedule para Mensagem Padronizada
    1.5 - Expedição Varejo
  •   
  •  2 - Validação da lista de parâmetros
  •  3 - Cadastro de Adapter
  •  4 - Identificação de Lojas
  •  5 - Cadastro de "De/Para"
  •  6 - Entendimento sobre o fluxo de integração de Pedido Entrega e Retira
  •  7 - Gravabatch
  •  8 - Entendimento sobre os relacionamentos de tabelas (Loja,Financeiro e Faturamento)
  •  9 - Exemplo de mensagem padronizada
  •  10 - Administradora Financeira
  •  11 - Tabela de possíveis ocorrências de rejeição da mensagem padronizada

...