Histórico da Página
...
3.1- Para que o Protheus possa receber a mensagem RetailSales é necessário realizar o cadastro dos seguintes adapters: LOJA701 e , 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)
...
- 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
Apos Após ter realizado as configurações acima a integração de Venda - RetailSales seguira seguirá os seguintes fluxos:
- ItemReserve - Com a venda realizada na plataforma do E-Commerce sera será disparado uma Mensagem Padronizada de Reserva de itens - Produtos no Protheus, essa reserva por sua vez ira percorrer o processo configurado pelo modulo estoque, podendo retirar do estoque o que foi enviado na MP - ItemReserve.
- CustomerVendor - Apos a confirmação de Reserva de Itens é disparado uma Mensagem Padronizada de Clientes para o Protheus. A MP de Clientes pode ser de inclusão ou de alteração.
- RetailSales - Apos a confirmação de inclusão ou alteração de Cliente é disparado uma Mensagem Padronizada de Vendas para o Protheus. O processo de inclusão do orçamento das tabelas SL1, SL2 e SL4 passa por toda a validação de registros do modulo SIGALOJA. O registro totalmente validado é incluído para próxima etapa, quaisquer informações invalidas identificado nesse processo ira retornar uma critica a integração E-Commerce.
- Serviço Gravabatch - Esse serviço é responsável pelo processamento do orçamento das tabelas incluídas pela MP - RetailSales. Para as vendas que estejam campo L1_SITUA = RX, este serviço tem como objetivo: Gerar financeiro, Baixa de estoque, Livros fiscais etc. Caso seja encontrado alguma inconsistência no processamento deste serviço o campo L1_SITUA é atualizado para ER. Caso o processamento da venda seja finalizado com sucesso o campo L1_SITUA é atualizado para FR.
Importante: Apos Após explodir o orçamento SL1 o registro Pai é atualizado o campo L1_SITUA = FR e criará o registro filho com o campo L1_SITUA em branco. Qualquer mudança desses registros falhará no envio da tag RetailSalesInternalId na próxima MP - DocumentTraceAbilityOrder.
...
- DocumentTraceAbilityOrder - O 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
7- Relacionamento entre Orçamento, Pedido de Venda e Contas a Receber
Relacionamento entre tabelas de Orçamento(Venda Assistida), Pedido de Venda(Faturamento) e Contas a Receber(Financeiro)
Colocar motivo de não permitir alteração de pedido no Faturamento.
Para encontrar os Pedido de Venda (SC5) e Contas a Receber (SE1) a partir do Orçamento (SL1) pode ser realizado dos campos:
SL1 - L1_FILIAL, L1_ECPEDEC, L1_DOCPED, L1_SERPED
SC5 - C5_FILIAL, C5_PEDECOM
SE1 - E1_FILIAL, E1_PREFIXO, E1_NUM
Relacionamento entre as tabelas e campos:
L1_ECPEDEC = C5_PEDECOM
L1_DOCPED = E1_NUM
L1_SERPED = E1_PREFIXO
...
6.2 - RetailSales - Item Retira
Apos ter realizado as configurações acima a integração de Venda - OrderRetail seguirá os seguintes fluxos:
- ItemReserve - Com a venda realizada na plataforma do E-Commerce será disparado uma Mensagem Padronizada de Reserva de itens - Produtos no Protheus, essa reserva por sua vez ira percorrer o processo configurado pelo modulo estoque, podendo retirar do estoque o que foi enviado na MP - ItemReserve.
- CustomerVendor - Apos a confirmação de Reserva de Itens é disparado uma Mensagem Padronizada de Clientes para o Protheus. A MP de Clientes pode ser de inclusão ou de alteração.
- RetailSales - Apos a confirmação de inclusão ou alteração de Cliente é disparado uma Mensagem Padronizada de Vendas para o Protheus. O processo de inclusão do orçamento das tabelas SL1, SL2 e SL4 passa por toda a validação de registros do modulo SIGALOJA. O registro totalmente validado é incluído para próxima etapa, quaisquer informações invalidas identificado nesse processo ira retornar uma critica a integração E-Commerce
- Serviço Gravabatch - Esse serviço é responsável pelo processamento do orçamento das tabelas incluídas pela MP - RetailSales. Para as vendas que estejam campo L1_SITUA = RX, este serviço tem como objetivo: Gerar as tabelas SL1,SL2 e SL4. Caso seja encontrado alguma inconsistência no processamento deste serviço o campo L1_SITUA é atualizado para ER. Caso o processamento da venda seja finalizado com sucesso o campo L1_SITUA é atualizado para FR.
Importante: Apos explodir o orçamento SL1 o registro Pai é atualizado o campo L1_SITUA = FR e criará o registro filho com o campo L1_SITUA em branco. Qualquer mudança desses registros falhará no envio da tag RetailSalesInternalId na próxima MP - DocumentTraceAbilityOrderRetail.
Para auxiliar na analise de erros ou criticas é possível habilitar o log do loja, abaixo segue a documentação do log:
SIGALOJA 0290 Quais são os logs auxiliares Protheus Varejo?
- Após a geração das tabelas SL1,SL2 e SL4, acessando 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".
7- Relacionamento entre Orçamento, Pedido de Venda e Contas a Receber
Relacionamento entre tabelas de Orçamento(Venda Assistida), Pedido de Venda(Faturamento) e Contas a Receber(Financeiro)
Colocar motivo de não permitir alteração de pedido no Faturamento.
Para encontrar os Pedido de Venda (SC5) e Contas a Receber (SE1) a partir do Orçamento (SL1) pode ser realizado dos campos:
SL1 - L1_FILIAL, L1_ECPEDEC, L1_DOCPED, L1_SERPED
SC5 - C5_FILIAL, C5_PEDECOM
SE1 - E1_FILIAL, E1_PREFIXO, E1_NUM
Relacionamento entre as tabelas e campos:
L1_ECPEDEC = C5_PEDECOM
L1_DOCPED = E1_NUM
L1_SERPED = E1_PREFIXO
8- Exemplo das mensagens
8.1 - RetailSales - com item do tipo "Entrega"
Nota | ||
---|---|---|
| ||
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. |
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"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
}
} |
8.2 - RetailSales - com item do Tipo "Retira"
Nota | ||
---|---|---|
| ||
A Tag ItemOrder ItemDeliveryType 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 100deve estar com 1, que para o Protheus sinaliza Pedido do Tipo Retira. |
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "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": "31", "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": "31", "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": "31", "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 } } |
...
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- Tabela de Ocorrências na geração de Pedido de Venda
...
: RetailSales
Ocorrência | Motivo | Ação |
---|---|---|
Estado de Cobrança não encontrado | Não cadastrado estado de cobrança na filial | Realizar o cadastro completo da filial corrente |
Documento não informado ou já existente | Nã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/para | Verificar 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 bloqueado | Verificar 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 incorreta | Data de emissão divergente com o esperado ou faltante na tag IssueDateDocument | Verificar 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 zerada | Valor total da venda zerada na tag TotalPrice | Verificar no json recebido o valor recebido na tag TotalPrice |
Valor liquido da venda zerada | Valor liquido da venda zerada na tag NetPrice | Verificar no json recebido o valor recebido na tag NetPrice |
Valor bruto da venda zerada | Valor Bruto da venda zerada na tag GrossPrice | Verificar no json recebido o valor recebido na tag GrossPrice |
Produto não informado ou não encontrado | Produto não informado na tag ListOfSaleItem | Verificar 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 ItemOrder | Verificar 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 Quantity | Verificar no json recebido o valor na tag Quantity no bloco a tag ListOfSaleItem |
Preço Unitário do produto não informado | Preço Unitário do produto não informado na tag UnitPrice | Verificar no json recebido o valor na tag UnityPrice no bloco a tag ListOfSaleItem |
CFOP do Produto não informado | CFOP do Produto não informado na tag OperationCode | Verificar no json recebido o valor na tag OperationCode no bloco a tag ListOfSaleItem |
Preço do Produto não informado | Preço de Produto não informado na tag ItemPrice | Verificar no json recebido o valor na tag ItemPrice no bloco a tag ListOfSaleItem |
Tes do Produto não informada | Não identifico tes no produto ou na Tes Inteligente | Verificar no cadastro de produto se atrelou tes ou se configurou corretamente a Tes Inteligente |
Possíveis erros na Reserva | Não encontrado de/para de reserva Quantidade divergente encontrado no de/para de reserva | Verificar se integrou a reserva adapter - ItemReserve Verificar o de/para de reserva e identificar se esta correta a quantidade na tag Quantity no bloco ListOfSaleItem |
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 Unica 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 UnicaÚnica |