Árvore de páginas

Versões comparadas

Chave

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

Índice 

Índice

1.  PDVSync

PDVSync é a camada responsável por orquestrar as operações de sincronização de dados entre o TOTVS Varejo PDV Omni e as suas respectivas retaguardas/ERPs.

Toda comunicação entre a retaguarda/ERP e o TOTVS Varejo PDV Omni será executada e orquestrada pelo PDVSync

O PDVSync é composto por dois componentes principais:

  • O PDVSync Server: Conjunto de APIs, serviços e bases de dados hospedados em nuvem pública responsáveis pela execução, orquestração e controle das sincronizações entre PDVs e retaguardas/ERPs e vice-versa. 
  • PDVSync Client: Serviço instalado no pacote do TOTVS Varejo PDV Omni que será responsável por fazer a comunicação entre o PDV e o PDVSync Server, conforme ilustração a seguir:

Image Removed

2. Fluxo de integração  entre o ERP e PDVSync

Image Removed

Exemplo de Fluxo de chamadas de API´s com Abertura de lote, Fechamento de Lote e Solicitação de Retorno do Status do Lote Enviado.

  1. Devemos Abrir um Lote
    1. Esta abertura deve ocorrer antes do envio de um lote de informações para o PDVSync é neste momento que informamos para o PDVSync quais informações estarão no lote de dados enviados. Para o exemplo estaremos enviando as informações de "compartilhamentos" e "lojas" e no final estaremos informando o PDVSync que encerramos o envio de informações.
  2. /api/retaguarda/inquilinolotesexternos → POST                                             Fazemos a abertura do Lote
  3. /api/retaguarda/compartilhamentos → POST                                                  Enviamos os dados da API de Compartilhamentos
  4. /api/retaguarda/lojas → POST                                                                            Enviamos os dados da API de Loja
  5. /api/retaguarda/inquilinolotesexternos/{idInquilino}/{lote} → PUT              Fazemos o encerramento do Lote
  6. Após o encerramento do Lote de envio de informações, poderemos solicitar informações sobre o processamento e validação deste lote de informação.
  7. /api/retaguarda/LoteExternoRetornos/{idInquilino}/{loteOrigem} → GET    Nesta chamada pedimos a informação para o PDVSync sobre um determinado lote que ja foi encerrado.

OBS: Todos Schemas e Retornos disponíveis estão no Swagger.

...

3. Conceitos de ID Inquilino / ID Retaguarda / ID Proprietário

IDInquilino : OMXKpmP8hVjbqE

Código que identifica toda uma estrutura de Redes, Franquias, Centrais, Lojas e todos os dados enviados e recebidos no PDVSync dentro do ambiente SaaS.

Hoje este código é fornecido pela equipe de produto no início dos trabalhos para se conectar com o PDVSync.

IDRetaguarda : 

Código que identifica todas as informações enviadas para a PDVSync, em todas as entidades seus registros possuem um IDRetaguarda no ERP/Retaguarda. 

Este código é de controle do ERP/Retaguarda e deve ser único  para um registro de informação (tabela) de um IDInquilino. O ID Retaguarda é o código comum entre o ERP/Retaguarda e o PDVSync, todas os registros tem a informação de ID Retaguarda.

Exemplos:

Produto, o ID Retaguarda identifica o produto no ERP/Retaguarda.

Cliente, o ID Retaguarda identifica o cliente no ERP/Retaguarda.

Loja, o ID Retaguarda identifica a loja no ERP/Retaguarda.

IDProprietário : 

Código que identifica o proprietário da informação enviada para PDVSync.

Este código determina na estrutura da “Compartilhamento”, todas as lojas abaixo do ID Proprietário que deverão receber os dados enviados para o PDVSync.

Exemplo (01) de uma Estrutura de Rede ou Franquia com Centrais e Lojas.

No exemplo abaixo temos uma estrutura com o ID Inquilino = OAKLMImP8hVjbqE e com ID Retaguarda da (loja, central ou rede) e ID Proprietário sendo o mesmo código para o conjunto de lojas e Rede e centrais e seus próprios nomes são os códigos e lembrando que podem ser qualquer informação do ERP/Retaguarda (nome, código, CNPJ).

Lembrando que o ID Retaguarda é determinado pelo ERP/Retaguarda e tem que ser único para uma loja, central e Rede/Franqueadora dentro da estrutura utilizada em um ID Inquilino.

                                 Image Removed                  Image Removed

Exemplo (02) de uma Estrutura de Rede ou Franquia com Lojas.

No exemplo abaixo temos uma estrutura com o ID Inquilino = OAKLMImP8hVjbqE e o ID Retaguarda da (loja, central ou rede)do conjunto de lojas e Rede são seus próprios nomes e podem ser qualquer informação do ERP/Retaguarda (nome, código, CNPJ).

Lembrando que o ID Retaguarda é determinado pelo ERP/Retaguarda e tem que ser único para uma loja, central e Rede/Franqueadora dentro da estrutura utilizada em um ID Inquilino.

                                 Image Removed

4. Domínios Microsserviços

Para o PDVSync foram definidos microsserviços independentes, levando em consideração a utilização e afinidade das informações trafegadas e armazenadas.

Os microsserviços foram divididos em:

...

5. Controle

No MicroServiço controle, com relação a comunicação com o ERP/Retaguarda, temos as informações de Abertura e Fechamento do Lote de envio de dados e o retorno do Lote enviado, informando sucesso das informações entregues no PDVSync ou qual o erro encontrado e a estrutura de lojas na Compartilhamento, esta responsável por determinar quais lojas irão receber qual informação entregue no PDVSync.

Abaixo temos mais informações sobre cada EndPoint utilizado na comunicação com o ERP/Retaguarda.

Informações

O microserviço de controle está disponível na url

5.1 Compartilhamento

A API compartilhamento é de extrema importância para que o PDVSync saiba onde entregar as informações enviadas em todos as API´s, ou seja, através da composição dos dados da compartilhamento o PDVSync sabe quem é o dado enviado tem um ID Proprietário e este na compartilhamento tem quem são as lojas que devem receber as informações enviadas com um ID Proprietário.

         Segue um exemplo da compartilhamento para a estrutura abaixo.

              Image Removed

           Image Removed

          Image Removed

                                               Image Removed

Exemplo de uma Estrutura e compartilhamento onde temos um ID Proprietário que não pertence a estrutura de lojas, centrais e Rede, o qual é chamado de "Região Interior" e esta região interior é composta pelas lojas (02, 03 e 04). Este tipo de agrupamento na compartilhamento pode ser usado de forma negocial onde pode-se ter uma Cidade, UF, Região, Lojas de Rua, Lojas de Shopping e etc. Com esta estrutura lógica, o ERP/Retaguarda pode enviar configurações para a compartilhamento que venha atender o envio de dados para os agrupamentos de Lojas.

                                          Image Removed

        

                                  Image Removed

...

Código que identifica o proprietário da informação enviada para PDVSync.

Este código determina na estrutura da “Compartilhamento”, todas as lojas abaixo do ID Proprietário que deverão receber os dados enviados para o PDVSync.

...

Bloco de código
languagejava
themeEclipse
titlePOST ​/api​/retaguarda​/compartilhamentos
collapsetrue
{
"idRetaguarda": "a5c20fa2942342188cacabec8b9da543",
"idProprietario": "1639797f5ce64843a73711d919dad5e7",
"nomeCompartilhamento": "Master",
"nivel": 0,
"idRetaguardaPai": "",
"idRetaguardaLoja": "",
"idInquilino": "OMXKpmP8hVjbqExUN7sa"
},
{
"idRetaguarda": "998e4779609b45aa9f09ba04da1eb81e",
"idProprietario": "693325a343724ff0920fa368377ccd19",
"nomeCompartilhamento": "Central",
"nivel": 1,
"idRetaguardaPai": "a5c20fa2942342188cacabec8b9da543",
"idRetaguardaLoja": "",
"idInquilino": "OMXKpmP8hVjbqExUN7sa"
},
{
"idRetaguarda": "1e6186cbdf4345d7bdcafc862510f31d",
"idProprietario": "57348546ff964e9aa63517e829f33f6d",
"nomeCompartilhamento": "Loja 01",
"nivel": 2,
"idRetaguardaPai": "998e4779609b45aa9f09ba04da1eb81e",
"idRetaguardaLoja": "1d7556c01a604bf28dc4cb1ac4a4ae2f",
"idInquilino": "OMXKpmP8hVjbqExUN7sa"
},
{
"idRetaguarda": "91fd568a3e2748cab760b15731447abc",
"idProprietario": "06df84c10a3049ed9e359dc24d37d5a2",
"nomeCompartilhamento": "Loja 02",
"nivel": 2,
"idRetaguardaPai": "998e4779609b45aa9f09ba04da1eb81e",
"idRetaguardaLoja": "7f16bb7c5b8b4d00821af3b8de08f221",
"idInquilino": "OMXKpmP8hVjbqExUN7sa"
}

5.2 InquilinoLoteExterno

A API InquilinoLoteExterno deverá ser utilizada pela ERP/Retaguarda para iniciar, encerrar e consultar o status do processo de integração com o PDVSync. 

O ERP/Retaguarda poderá ter em aberto apenas um lote por inquilino, caso tenha a necessidade de iniciar uma nova integração é necessário encerrar o lote aberto para solicitar uma nova integração. 

 ABERTURA → EndPoint -  /api/retaguarda/inquilinolotesexternos - POST

Para que a integração seja realizada o ERP/Retaguarda deverá solicitar um lote para o PDVSyn, onde deverá informar o inquilino e quais tipos de dados serão integrados.

Parâmetros de entrada:

...

Para iniciar a integração é necessário que o ERP/Retaguarda envie o status:

0 - InicioEnvio

...

Tipo da informação que será integrada com o PdvSync, sendo:
0- Cliente
1-Loja
2-Motivo
3-Usuario
4-Estoque
5-FcpProduto
6-Compartilhamento
7-Imposto
8-Ncm
9-PisCofin
10-TributoNcm
11-Preco
12-ClassificacaoProduto
13-Produto

...

Bloco de código
languagejava
themeEclipse
titlePOST /api/retaguarda/inquilinolotesexternos
collapsetrue
{
    "status": "InicioEnvio",
    "tipoLote": [1,6],
    "idInquilino": "QRXBxobJ11Yr5H93h5ON"
}

Parâmetros de saída: 

...

FECHAMENTO → EndPoint - /api/retaguarda/inquilinolotesexternos/{idInquilino}/{lote} - PUT

Esta API é responsável por avisar o PDVSync que o envio das informações foi concluída, para que inicie o processo de validação e envio para as Lojas.

Detalhes sobre a API estão no MicroServiço https://pdvsync-core-controle-dev-aadivv24nq-ue.a.run.app/swagger/index.html , Módulo INQUILINOLOTEEXTERNO

...

languagejava
themeEclipse
titlePUT ​/api​/retaguarda​/inquilinolotesexternos​/{inquilino}​/{lote}
collapsetrue

5.4 Lote Externo Retornos - INQUILINOLOTEEXTERNO

...

6. Dados Básicos

6.1 Loja - LOJAS

 EndPoint - /api/retaguarda/lojas - POST

Esta API tem como objetivo o cadastro das lojas que estarão operando com o PDV Omni e utilizarão o PDVSync para integração.

Detalhes sobre a API estão no MicroServiço https://pdvsync-core-dadosbasicos-dev-aadivv24nq-ue.a.run.app/swagger/index.html, Módulo LOJA

...

Modelo Fiscal da Loja:
0 - Não Configurado
1 - SAT
2 - NFC-e
3 - MFE

A configuração do modelo fiscal da loja poderá ser realizado através do configurador do PDV

...

6.2 Motivo

EndPoint - /api/retaguarda/motivos - POST

Esta API tem como objetivo o cadastro de motivos (Motivo de Desconto/Acréscimo, Motivo de Cancelamento, Motivo Devolução/Troca, Motivo de Suprimento e Motivo de Sangria) nas lojas que estarão operando com o PDV Omni e utilizarão o PDVSync para integração.

O PDV Omni não exige o tipo do Motivo para as operações, caso não exista o tipo com seus motivos o PDV Omni não solicitará a informação.

Detalhes sobre a API estão no MicroServiço https://pdvsync-core-dadosbasicos-dev-aadivv24nq-ue.a.run.app/swagger/index.html, Módulo MOTIVO

...

Tipo do Motivo utilizado :

AcrescimoDesconto =  0

TrocaDevolucao        = 1

CancelamentoVenda = 5

Sangria                      = 6

Suprimento               = 7

...

Situação do Motivo.

1 - Ativo

0 - Inativo

...

6.2 Usuário

EndPoint - /api/retaguarda/motivos - POST

Esta API tem como objetivo o cadastro de motivos (Desconto,  Cancelamento) nas lojas que estarão operando com o PDV Omni e utilizarão o PDVSync para integração.

Detalhes sobre a API estão no MicroServiço https://pdvsync-core-dadosbasicos-dev-aadivv24nq-ue.a.run.app/swagger/index.html, Módulo MOTIVO

...

7. Produto

7.1 Produto

API com um método Post, Get, Put e Delete para o ERP possa ser enviar o cadastro de produtos no PDVSync.

Parâmetros de entrada: 

...

Exemplo de chamada POST:

Bloco de código
languagejava
themeEclipse
titlePOST /api/retaguarda/produtos
collapsetrue
[{
        "IdInquilino": "V3uEWOAdRCTLUJX7eedZ",
        "IdProprietario": "78965",
        "IdRetaguarda": "12356",
        "Lote": 12345698765,
        "LoteOrigem": "20210420135510963",
        "IdRetaguardaImposto": "6lnnB85sauBB3nZeGX08",
        "IdRetaguardaNcm": "7nnnB85sauBB3nZeGX08",
        "IdRetaguardaPisCofins": "8unnB85sauBB3nZeGX08",
        "Descricao": "Produto 12222 Completo",
        "UnidadeMedida": "UN",
        "DescontoMaximo": 10,
        "TipoArredondaTrunca": "01",
        "CodigoProduto": "56987",
        "CodigoAlternativo": "56987",
        "OrigemProduto": "0",
        "Situacao": 1,
        "Imagem": "alksjdkjaskdjalskdjaisudoi23u4o2i34534h563kj5464k5jh61l2k42l3542m34h5k3jg465k34jh5453j4h5k3j4h5k3j4h545l34jh54l63k4jh6l3k4jh536l34u54y63i4u54y63k4j5h6l34jh6i34u54y6893745yt3489u5ht93458jt9304u5t3904j58t9034j58t9034u5t",
        "TipoProduto": 1,
        "Fracionado": true,
        "CnpjFornecedor": "25362415680001",
        "EscalaRelevante": true,
        "ValorBaseFcp": 0,
        "CodigoBeneficioFiscal": "AB",
        "PercentualFcp": 1,
        "CstIcms": "CST",
        "PercentualReducaoIcms": 1,
        "AliquotaIcms": 1,
        "Vlicmsret": 1,
        "MotivoDesoneracaoIcms": 1,
        "DescontaDesoneracaoNf": false,
        "Cest": "Cest",
        "produtoKits": [{
                "Id": "6lnnB85sauBB3nZeGX08",
                "IdInquilino": "V3uEWOAdRCTLUJX7eedZ",
                "IdRetaguarda": "78965",
                "IdProprietario": "78965",
                "Lote": 12345698765,
                "LoteOrigem": "20210420135510963",
                "IdRetaguardaProduto": "132216354",
                "IdRetaguardaProdutoKit": "1234558",
                "Descricao": "Kit Teste 01",
                "QuantidadeVendaKit": 10,
                "TipoValorKit": 1,
                "Situacao": 1,
                "ValorDesconto": 1,
                "NovoValorUnitario": 58
            }, {
                "Id": "6lnnB85sauBB3nZeGX08",
                "IdInquilino": "V3uEWOAdRCTLUJX7eedZ",
                "IdRetaguarda": "78965",
                "IdProprietario": "78965",
                "Lote": 12345698765,
                "LoteOrigem": "20210420135510963",
                "IdRetaguardaProduto": "132216354",
                "IdRetaguardaProdutoKit": "1234558",
                "Descricao": "Kit Teste 01",
                "QuantidadeVendaKit": 10,
                "TipoValorKit": 1,
                "Situacao": 1,
                "ValorDesconto": 1,
                "NovoValorUnitario": 58
            }, {
                "Id": "6lnnB85sauBB3nZeGX08",
                "IdInquilino": "V3uEWOAdRCTLUJX7eedZ",
                "IdRetaguarda": "78965",
                "IdProprietario": "78965",
                "Lote": 12345698765,
                "LoteOrigem": "20210420135510963",
                "IdRetaguardaProduto": "132216354",
                "IdRetaguardaProdutoKit": "1234558",
                "Descricao": "Kit Teste 01",
                "QuantidadeVendaKit": 10,
                "TipoValorKit": 1,
                "Situacao": 1,
                "ValorDesconto": 1,
                "NovoValorUnitario": 58
            }
        ],
        "produtosSimilares": [{
                "Id": "6lnnB85sauBB3nZeGX08",
                "IdInquilino": "V3uEWOAdRCTLUJX7eedZ",
                "IdRetaguarda": "78965",
                "IdProprietario": "78965",
                "Lote": 12345698765,
                "LoteOrigem": "20210420135510963",
                "IdRetaguardaProduto": "132216354",
                "Situacao": 1,
                "IdRetaguardaSimilar": "1234558"
            }, {
                "Id": "6lnnB85sauBB3nZeGX08",
                "IdInquilino": "V3uEWOAdRCTLUJX7eedZ",
                "IdRetaguarda": "78965",
                "IdProprietario": "78965",
                "Lote": 12345698765,
                "LoteOrigem": "20210420135510963",
                "IdRetaguardaProduto": "132216354",
                "Situacao": 1,
                "IdRetaguardaSimilar": "1234558"
            }
        ],
        "ProdutosSugestoes": [{
                "Id": "6lnnB85sauBB3nZeGX08",
                "IdInquilino": "V3uEWOAdRCTLUJX7eedZ",
                "IdRetaguarda": "78965",
                "IdProprietario": "78965",
                "Lote": 12345698765,
                "LoteOrigem": "20210420135510963",
                "IdRetaguardaProduto": "132216354",
                "Situacao": 1,
                "IdRetaguardaSugestao": "1234558"
            }, {
                "Id": "6lnnB85sauBB3nZeGX08",
                "IdInquilino": "V3uEWOAdRCTLUJX7eedZ",
                "IdRetaguarda": "78965",
                "IdProprietario": "78965",
                "Lote": 12345698765,
                "LoteOrigem": "20210420135510963",
                "IdRetaguardaProduto": "132216354",
                "Situacao": 1,
                "IdRetaguardaSugestao": "1234558"
            }
        ],
        "codigosProduto": [{
                "codigo": "56987",
                "descricao": "CodigoProduto",
                "idRetaguarda": "av25e1d2a3de2df1",
                "dataAtualizacao": "2021-05-11T14:22:18.816Z",
                "dataCadastro": "2021-05-11T14:22:18.816Z",
                "situacao": "1"
            }, {
                "codigo": "7892509156987",
                "descricao": "CódigoBarras",
                "idRetaguarda": "12faserytgf123sdfg",
                "dataAtualizacao": "2021-05-11T14:22:18.816Z",
                "dataCadastro": "2021-05-11T14:22:18.816Z",
                "situacao": "1"
            }
        ]
    }
]

7.2 Classificacoesproduto

...

8. Preço

...

9. Formas de Pagamentos

...

10. Clientes

...

11. Estoque

...

12. Impostos

12.1 FCP Produto

12.2 Imposto

12.3 NCM

12.4 Tributo NCM

12.5 PIS/Cofins

13. Comercial 

13.1 Promoção SMS

13.2 Campanhas Promocionais 

13.3 Metas 

14. Fila Sync para o ERP

15. Dados Síncronos

16. Pré-requisitos

Pre-Requisitos para instalação do Client:

  • PDVSync Omni instalado.
  • Configuração de variáveis de ambiente DOTNET_ENVIRONMENT e ASPNETCORE_ENVIRONMENT. Elas servem para definir qual é o ambiente para o qual o Client irá apontar (Produção = Production, Homologação = Quality, ou Desenvolvimento = Development):
  • Node.Js - Fazer o download do instalador do Node.Js em https://nodejs.org/en/download/. Instalar a versão 16.0 ou superior. Seguir os passos da instalação até a conclusão.
  • .NET - Fazer o download do instalador do .NET em https://dotnet.microsoft.com/en-us/download. Instalar a versão 6.0. Seguir os passos da instalação até a conclusão.
  • Conhecimento básico da ferramenta do Postman.
  • Solicitar para o suporte do Winthor via ticket:
    • Credenciais para viabilizar as criações dos dados iniciais do PDVSync. Conforme template:
      • Nome do cliente
      • CNPJ
      • E-mail administrativo para cadastro do tenant
    • Serviços clients do PDVSync para a instalação na maquina do PDV.

17. Instalação/Configuração

 Este documento tem por objetivo orientar a instalação e configuração do PDVSync. Esse processo deve ser realizado em dois ambientes Server e Client:

  • Server

Onde deverá conter as informações de loja, inquilino, parâmetros, etc.

Para realizar as configurações para a utilização do PDV Sync no PDV Omni, é necessário realizar os cadastros abaixo através das APIs de Parâmetros.

O passo a passo do Postman se encontra no Google Drive no caminho: https://drive.google.com/drive/folders/1KriEZNs0ofg2uBF8u3TLniozko3IA063 (IMPORTANTE: caso não tenha acesso a esse diretório, solicitar o acesso ao time de Integração)

Lá se encontra o arquivo com as Collections montadas para a configuração e as variáveis para a utilização da criação de parâmetros.

1º - Criação do Inquilino

Para a criação do inquilino, utilizar o request 01. Criar Inquilino, informar os valores de acordo com as informações do cliente, realizar a autenticação e em seguida realizar o POST.

Image Removed

Após a criação, utilizar o valor do campo IdInquilino na variável para a configuração dos próximos passos.

Image Removed

2º - Criação dos Parâmetros Controle

Para a criação dos parâmetros do controle, basta apenas realizar a autenticação e realizar o POST.

Image Removed

3º - Criação dos Parâmetros Comercial

Para a criação dos parâmetros comerciais, basta apenas realizar a autenticação e realizar o POST.

Image Removed

4º -  Criação do Parâmetro para a subida de Clientes

Para a criação do parâmetro de subida de cliente, basta apenas realizar a autenticação e realizar o POST.

Image Removed

Obs.: Para realizar esses procedimentos nos ambientes de desenvolvimento e homologação, seguir os mesmos passos acima, mas utilizar sua respectiva pasta (Passo a Passo - Homologação e Passo a Passo - Desenvolvimento).

Os passos a seguir já estão contemplados nos passos descritos anteriormente. Seguir a partir do passo 3 e ignorar o passo 9.

1° - Criação Inquilino

O inquilino é criado pela equipe do PDVSync pelo email: [email protected], com as seguintes informações:

  • Nome Fantasia da Empresa
  • CNPJ da Empresa

Será retornado o IdInquilino e o token authorization para inclusão no pdvsync e nas api's dos passos seguintes.

2º - Cadastrar os parâmetros, conforme exemplo:

Incluir Authorization OAuth2.0 conforme retornado no email.

endpoint: https://pdvsync.varejo.totvs.com.br/controle/api/pdvsyncserver/parametros

Post

[{
    "idInquilino": "IdDoInquilino01-01", /*O código do IdInquilino conforme retornado no email.*/
    "tipoProcesso": 1,/* OnLine = 0, Descida = 1, Subida = 2*/
    "quantidadeRegistros": 1000,
    "tempoChamada": 2000,
    "tempoExpurgoLogs": 365,
    "tipoDado": {
      "codigoTipo": 1,
      "descricaoTipo": "Loja",
      "tipoUtilizador": 0,/*ClienteDown = 0, Server = 1, ClienteUp = 2, ClienteOnLine = 3 */
      "tipoProcesso": 0 /*Criacao = 0, Atualizacao = 1, Interno = 2*/
    }
  }]

Lista de Parâmetros:

 

...

codigoTipo

...

descricaoTipo

...

tipoProcesso

...

 

3º - Abrir Lote com Parâmetro 01 - Loja

Incluir Authorization OAuth2.0 conforme retornado no email.

endpoint: https://pdvsync.varejo.totvs.com.br/controle/api/retaguarda/inquilinolotesexternos

...

Response:

{
    "success": true,
    "message": "",
    "data": {
        "loteOrigem": "20221004175001554",
        "mensagem": null,
        "status": 0,
        "tipoLote": [
            6
        ],
        "id": "DLoi3SX5HDoPOcDlyf0m",
        "idInquilino": "",
        "dataAtualizacao": "2022-10-04T17:50:01.6441804Z",
        "dataCadastro": "2022-10-04T17:50:01.6442468Z",
        "_expandables": []
    }
}

 

4º - Cadastro de uma Loja

**Os dados de cadastros devem ser enviados nas propriedades do json abaixo.

endpoint: https://pdvsync-core-dadosbasicos-prd-q6yz66olca-rj.a.run.app/api/retaguarda/lojas

Post

[
  {
    "razaoSocial": " ",
    "nomeFantasia": " ",
    "cnpj": " ", /*obrigatório e valido - 14 caracteres*/
    "inscricaoEstadual": " ", /*obrigatório - 2 e 14 caracteres*/
    "inscricaoMunicipal": " ", /*obrigatório - até 15 caracteres*/
    "endereco": " ",
    "numero": " ",
    "complemento": " ",
    "bairro": " ",
    "cidade": " ",
    "estado": " ",
    "siglaUf": " ",
    "codigoUFIBGE": " ", /*obrigatório - 2 caracteres*/
    "codigoMunicipioIbge": " ", /*obrigatório - 7 caracteres*/
    "cep": "", /*obrigatorio*/
    "telefone": "", /*obrigatório - 6 e 14 caracteres*/
    "codigoIdentificacaoLoja": "",
    "modeloFiscal": 0,
    "regimeTributario": 1,
    "rede": "", /*obrigatório*/
    "numeroLoja": "0",
    "idRetaguardaRede": "",
    "codigoMaster": " ",
    "nomeMaster": " ",
    "situacao": 1,
    "idInquilino": " ", /*Gerado no passo 1*/
    "idRetaguarda": "3 ", /*código da loja na retaguarda*/
    "idProprietario": " ", /*compartilhamento da loja*/
    "loteOrigem": " " /*Gerado no passo 3*/
  }
]

 

5º - Fechar lote de loja

endpoint: https://pdvsync-core-controle-prd-q6yz66olca-rj.a.run.app/api/retaguarda/inquilinolotesexternos/{idInquilino}/{loteOrigem}

metodo: PUT
{idInquilino} - Gerado no passo 01
{loteOrigem} - Gerado no passo 03

6º - Abrir Lote com Parâmetro 06 - Compartilhamento

Incluir Authorization OAuth2.0 conforme retornado no email.

endpoint: https://pdvsync.varejo.totvs.com.br/controle/api/retaguarda/inquilinolotesexternos

...

Response:

{
    "success": true,
    "message": "",
    "data": {
        "loteOrigem": "20221004175001554",
        "mensagem": null,
        "status": 0,
        "tipoLote": [
            6
        ],
        "id": "DLoi3SX5HDoPOcDlyf0m",
        "idInquilino": "",
        "dataAtualizacao": "2022-10-04T17:50:01.6441804Z",
        "dataCadastro": "2022-10-04T17:50:01.6442468Z",
        "_expandables": []
    }
}

7º - Criar Compartilhamento

endpoint: https://pdvsync-core-controle-prd-q6yz66olca-rj.a.run.app/api/retaguarda/compartilhamentos

Post

[
    {
        "IdRetaguardaLoja": "",
        "IdRetaguarda": "32796d0b-8399-490e-b972-1db212c514fa",
        "IdProprietario": "32796d0b-8399-490e-b972-1db212c514fa",
        "IdInquilino": "",
        "NomeCompartilhamento": "PDV Master",
        "Nivel": 0,
        "IdRetaguardaPai": "",
        "loteOrigem": "20221004175001554"
    },
    {
        "IdRetaguardaLoja": "3f054f05-ee67-407b-935d-9db0fc5e7c58",
        "IdRetaguarda": "3f054f05-ee67-407b-935d-9db0fc5e7c58",
        "IdProprietario": "3f054f05-ee67-407b-935d-9db0fc5e7c58",
        "IdInquilino": "",
        "NomeCompartilhamento": "PDV Loja",
        "Nivel": 1,
        "IdRetaguardaPai": "",
        "loteOrigem": "20221004175001554"
    }
]

...

{
    "success": true,
    "message": "compartilhamento inserido com sucesso: [{\"IdRetaguarda\":\"32796d0b-8399-490e-b972-1db212c514fa\",\"IdProprietario\":\"32796d0b-8399-490e-b972-1db212c514fa\",\"NomeCompartilhamento\":\"PDV Master\",\"Nivel\":0,\"IdRetaguardaPai\":\"\",\"LoteOrigem\":\"20221004175001554\",\"Lote\":null,\"IdRetaguardaLoja\":\"\",\"Id\":null,\"IdInquilino\":\"\",\"DataAtualizacao\":\"0001-01-01T00:00:00\",\"DataCadastro\":\"0001-01-01T00:00:00\",\"_expandables\":[]},{\"IdRetaguarda\":\"3f054f05-ee67-407b-935d-9db0fc5e7c58\",\"IdProprietario\":\"3f054f05-ee67-407b-935d-9db0fc5e7c58\",\"NomeCompartilhamento\":\"PDV Loja\",\"Nivel\":1,\"IdRetaguardaPai\":\"32796d0b-8399-490e-b972-1db212c514fa\",\"LoteOrigem\":\"20221004175001554\",\"Lote\":null,\"IdRetaguardaLoja\":\"3f054f05-ee67-407b-935d-9db0fc5e7c58\",\"Id\":null,\"IdInquilino\":\"\",\"DataAtualizacao\":\"0001-01-01T00:00:00\",\"DataCadastro\":\"0001-01-01T00:00:00\",\"_expandables\":[]}].",
    "data": null
}

 

8º - Fechar o Lote 

endpoint: https://pdvsync-core-controle-prd-q6yz66olca-rj.a.run.app/api/retaguarda/inquilinolotesexternos/{idInquilino}/{loteOrigem}

metodo: PUT

{idInquilino} - Gerado no passo 01
{loteOrigem} Gerado no passo anterior

 

9º - Cadastrar os parâmetros comerciais para a consulta de operações de vendas e caixa

URL: https://pdvsync.varejo.totvs.com.br/comercial/api/pdvsyncserver/parametros

Post

[
  {
    "idInquilino": "", /*Gerado no passo 01*/
    "dataAtualizacao": "2022-10-07T18:59:54.530Z",
    "dataCadastro": "2022-10-07T18:59:54.530Z",
    "codigo": 1,
    "tipo": 1,
    "valor": "10"
  },
  {
    "idInquilino": "",  /*Gerado no passo 01*/
    "dataAtualizacao": "2022-10-07T18:59:54.530Z",
    "dataCadastro": "2022-10-07T18:59:54.530Z",
    "codigo": 2,
    "tipo": 2,
    "valor": "10"
  },
  {
    "idInquilino": "",  /*Gerado no passo 01*/
    "dataAtualizacao": "2022-10-07T18:59:54.530Z",
    "dataCadastro": "2022-10-07T18:59:54.530Z",
    "codigo": 3,
    "tipo": 3,
    "valor": "10"
  },
  {
    "idInquilino": "",  /*Gerado no passo 01*/
    "dataAtualizacao": "2022-10-07T18:59:54.530Z",
    "dataCadastro": "2022-10-07T18:59:54.530Z",
    "codigo": 4,
    "tipo": 4,
    "valor": "10"
  },
  {
    "idInquilino": "",  /*Gerado no passo 01*/
    "dataAtualizacao": "2022-10-07T18:59:54.530Z",
    "dataCadastro": "2022-10-07T18:59:54.530Z",
    "codigo": 5,
    "tipo": 0,
    "valor": "https://pdvsync-core-fila-prd-q6yz66olca-rj.a.run.app/api/stub/historicovenda"
  }

]

10º Baixar Serviços Clients

...

  •  API – Responsável pela comunicação entre o PDV e os Serviços de UP e Down.
  • Controle – Responsável por informar aos Serviços de DOWN que existe informações novas para serem baixadas no PDV.
  • Up – Serviço responsável pela subida de informações do PDV para o Server.
  • Down – Serviço responsável pela baixa de informações do Server para o PDV.

 Instalação dos Serviços UP, DOWN, CONTROLE e API:

  • Criar a pasta C:\PDVSync e executar a instalação dos serviços disponibilizados pelo time do suporte.
  • Acessar a pasta C:\PDVSync descompactar o arquivo baixado acima e executar o arquivo "servicos.bat" como Administrador.
  • Após os passos acima os serviços PDVSync.Client.Api.WebApi, PDVSync.Client.Servico.Up, PDVSync.Client.Servico.Down e PDVSync.Client.Servico.Controle serão instalados e iniciados.

  Desinstalação dos Serviços UP, DOWN, CONTROLE e API:

  •  Para desinstalar os serviços acima basta acessar a pasta C:\PDVSync executar o arquivo “servicos-delete.bat”.

18. Documentação APIs

19. Criação dos Jobs para Expurgo das tabelas log_pdvsync e histórico_integracao do PDV Omni

1º - Pré-requisito

Alterar o arquivo pg_hba.conf localizado no diretório C:\Program Files\PostgreSQL\15\data para que o Agendador de Tarefas tenha acesso a realizar os comandos na máquina local.

Alterar as linhas selecionadas abaixo para “trust

Image Removed

2º - Criação da tarefa para o expurgo da tabela log_pdvsync

Abrir o Agendador de Tarefas do Windows

Image Removed

Abrir a ramificação Biblioteca do Agendador de Tarefas e criar uma nova pasta com o nome “PDV Omni”

Image Removed

Image Removed

Image Removed

Dentro da pasta PDV Omni criar uma nova tarefa básica para o expurgo da tabela log_pdvsync

Image Removed

Image Removed

No disparador manter como diariamente

Image Removed

No campo de data e hora, colocar a data atual e no horário informar as 00:00:00. E para repetir, colocar a cada 1 dia.

Image Removed

Ação executada deixar a primeira opção “Iniciar um programa”

Image Removed

No próximo passo selecionar o programa psql.exe localizado no diretório C:\Program Files\PostgreSQL\15\bin

E no campo Adicione Argumentos, informar o seguinte texto:

-U postgres -d TotvsPDV -w -c "delete from log_pdvsync lp where date_part('day', now() - lp.data_criacao) > 7"

Image Removed

Image Removed

Concluir o agendamento e pronto. O agendador de tarefas vai rodar o expurgo todo dia no horário planejado. Mas antes deve se configurar o usuário de execução. Na tarefa agendada ir em Propriedades

Image Removed

Image Removed

Na Opções de segurança, selecionar a opção “Executar estando o usuário conectado ou não”

Image Removed

Clique em Ok, e caso ele peça a senha do usuário, informar a senha do usuário logado no Windows.

Importante: recomendado deixar a máquina ligada para que a tarefa seja executada.

3º - Criação da tarefa para o expurgo da tabela histórico_integracao

Com o Agendador de Tarefas abertos no passo anterior, dentro da pasta PDV Omni, criar uma nova tarefa básica

Image Removed

Criar uma nova Tarefa Básica

Image Removed

Manter o disparador como “Diariamente”

Image Removed

No campo de data e hora, colocar a data atual e no horário informar as 00:00:00. E para repetir, colocar a cada 1 dia.

Image Removed

Ação executada deixar a primeira opção “Iniciar um programa”

Image Removed

No próximo passo selecionar o programa psql.exe localizado no diretório C:\Program Files\PostgreSQL\15\bin

E no campo Adicione Argumentos, informar o seguinte texto:

-U postgres -d TotvsPDV -w -c "delete from historico_integracao hi where date_part('day', now() - hi.data_atualizacao) > 7"

Image Removed

Image Removed

Concluir o agendamento e pronto. O agendador de tarefas vai rodar o expurgo todo dia no horário planejado. Mas antes deve se configurar o usuário de execução. Na tarefa agendada ir em Propriedades

Image Removed

Na Opções de segurança, selecionar a opção “Executar estando o usuário conectado ou não”

Image Removed

Clique em Ok, e caso ele peça a senha do usuário, informar a senha do usuário logado no Windows.

Importante: recomendado deixar a máquina ligada para que a tarefa seja executada.