Árvore de páginas

Versões comparadas

Chave

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

...

14. Fila Sync para o ERP

15. Dados Síncronos

16.

...

Pré-requisitos

Pre-Requisitos para instalação do Client:

  • PDVSync OmniShop instalado.
  • Configuração de variáveis de ambiente:
    • Função para definir qual é o ambiente o Client irá apontar (Produção = Production, Homologação = Quality, ou Desenvolvimento = Development):
      •  DOTNET_ENVIRONMENT
      • ASPNETCORE_ENVIRONMENT
    • Definição das credenciais necessárias para gravar o log centralizado:
      •  LOGCENTRAL_LOGIN
      •  LOGCENTRAL_SENHA
      • LOGCENTRAL_URL
  • 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
  • Conhecimento básico da ferramenta do Postman.
  • Solicitar para o suporte 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.

Cadastrados e configurados corretamente para realizar a troca de informações com o Client, segue abaixo os passos para configuração do ambiente no Server:

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

0ClienteDown
1LojaDown
2MotivoDown
3PerfilDown
4UsuarioDown
6CompartilhamentoDown
7ImpostoDown
8NcmDown
9PisCofinsDown
12ProdutoDown
13PrecoDown
14EstoqueDown
15OperadoraDown
16DadoComplementarDown
17CondicaoPagtoDown
18FormaPagtoDown
19VendaUp
20CaixaUp
22TrocaUp
23VendaCustodiaXmlUp
25ClienteUp
26PreVendaUp
54AlteracaoEstoqueDown
55PreVendaDown

 

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

Post
{
    "status": "InicioEnvio",
    "tipoLote": [
         1
    ],
    "idInquilino": "" /*O código do IdInquilino conforme retornado no email.*/
}

Response:

{
    "success": true,
    "message": "",
    "data": {
        "loteOrigem": "20221004175001554",
        "mensagem": null,
        "status": 0,
        "tipoLote": [
            6
        ],
        "id": "DLoi3SX5HDoPOcDlyf0m",

...

 

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 cadastrados e configurados corretamente para realizar a troca de informações com o Client, segue abaixo os passos para configuração do ambiente no Server:

1° - Criação Inquilino

O inquilino é criado normalmente no início de um contrato com uma retaguarda através da API de controle conforme exemplo abaixo:

URL: https://pdvsync-core-controle-qa-aadivv24nq-ue.a.run.app/api/pdvsyncserver/inquilinos

Post

{
    "idIdentificacaoExterna": " ", → Identificação do inquilino>
    "nome": " ", → <Nome do inquilino>
    "situacao": " ", → Podem seguir os seguintes status "Inativo(0)", "Ativo(1)", "Pendente(2)"
    "envioDadoTipo": "0", → tipo de envio do dado para a retaguarda em caso de retornos, utiliza 0 por enquanto ?????
    "envioDado": "", → dependendo do tipo de envio preencher a informação relevante, vazio por enquanto ???
    "connectionString": "", → está relacionado com a informação anterior, vazio por enquanto ???
    "lote": "0" → não utilizado ainda, utilizar 0 por enquanto.
}

 

O código do IdInquilino é fornecido automaticamente pelo Totvs RAC após o envio do serviço.

...

{
    "success": true,
    "message": "",
    "data": {
        "idIdentificacaoExterna": "Tupan",
        "nome": "Tupan",
        "situacao": 1,
        "envioDadoTipo": 0,
        "envioDado": "",
        "connectionString": "",
        "clientId": null,
        "clientSecret": null,
        "usuario": null,
        "senha": null,
        "tokenUrl": null,
        "id": "4rlMuI3YwrWO8NKtvE8V", → código gerado pelo TOTVS RAC
        "idInquilino": null,
        "dataAtualizacao": "2022-10-04T14:50:25.2424018Z",
        "dataCadastro": "2022-10-04T14:50:25.2424462Z",
        "_expandables": []
    }
}

2º - Cadastrar os parâmetros.

Post

{
    "idInquilino": "LAxcSC2vkgynDwGtWreo",
    "QuantidadeRegistros": 100,
    "TempoChamada": 2,
    "TempoExpurgoLogs": 130000,
    "TipoDado": {
        "CodigoTipo": 14,
        "DescricaoTipo": "Estoque",
        "TipoUtilizador": 1
    },
    "TipoProcesso": 1
}

Lista de Parâmetros:

 

codigoTipo

descricaoTipo

tipoUtilizador

tipo

47

AlteracaoNcm

1

Down

9

PisCofins

1

Down

23

VendaCustodiaXml

2

Online

0

Cliente

0

Online

20

Caixa

2

Up

40

AlteracaoCliente

1

Down

13

Preco

1

Down

1

Loja

1

Down

8

Ncm

1

Down

3

Perfil

1

Down

16

DadoComplementar

1

Down

14

Estoque

1

Down

18

FormaPagto

1

Down

19

Venda

2

Up

15

Operadora

1

Down

2

Motivo

1

Down

6

Compartilhamento

1

Down

4

Usuario

1

Down

22

Troca

2

Up

25

Cliente

2

Up

Exemplo do Parâmetro:

{
    "success": true,
    "message": "",
    "data": [
        {
            "tipoProcesso": 1,
            "quantidadeRegistros": 10000,
            "tempoChamada": 2.0,
            "tempoExpurgoLogs": 130000.0,
            "tipoDado": {
                "id": null,
                "codigoTipo": 47,
                "descricaoTipo": "AlteracaoNcm",
                "tipoUtilizador": 1,
                "tipoProcesso": 0,
                "_expandables": []
            },
            "id": "6eYL6pa5dsvQsKbKwIXy",
            "idInquilino": "YchOUFQPn2i7plLpsay9",
            "dataAtualizacao": "2022-0810-05T1504T17:1050:2101.604886Z6441804Z",
            "dataCadastro": "2022-0810-05T1504T17:1050:2101.604888Z6442468Z",
            "_expandables": []
        }
}

 

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

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

[
  Post
{
    "statusrazaoSocial": 0" ",
    "tipoLotenomeFantasia": [
        6
    ]" ",
    "idInquilinocnpj": " 4rlMuI3YwrWO8NKtvE8V ",
}

Response:

{
/*obrigatório e valido - 14 caracteres*/
    "successinscricaoEstadual": true," ", /*obrigatório - 2 e 14 caracteres*/
    "messageinscricaoMunicipal": " ", /*obrigatório - até 15 caracteres*/
    "dataendereco": {" ",
        "loteOrigemnumero": " 20221004175001554 ",
        "mensagemcomplemento": null" ",
        "statusbairro": 0" ",
        "tipoLotecidade": [
            6" ",
        ]"estado": " ",
        "idsiglaUf": " DLoi3SX5HDoPOcDlyf0m ",
        "idInquilinocodigoUFIBGE": " 4rlMuI3YwrWO8NKtvE8V ",
    /*obrigatório - 2 caracteres*/
    "dataAtualizacaocodigoMunicipioIbge": " 2022-10-04T17:50:01.6441804Z ",
  /*obrigatório - 7 caracteres*/
      "dataCadastrocep": "2022-10-04T17:50:01.6442468Z", /*obrigatorio*/
        "_expandablestelefone": []
    }
}

4º - Criar Compartilhamento

Post

[
    {
        "IdRetaguardaLoja"", /*obrigatório - 6 e 14 caracteres*/
    "codigoIdentificacaoLoja": "",
    "modeloFiscal": 0,
    "regimeTributario": 1,
    "rede": "", /*obrigatório*/
        "IdRetaguardanumeroLoja": "32796d0b-8399-490e-b972-1db212c514fa0",
        "IdProprietarioidRetaguardaRede": "32796d0b-8399-490e-b972-1db212c514fa",
        "IdInquilinocodigoMaster": " 4rlMuI3YwrWO8NKtvE8V ",
        "NomeCompartilhamentonomeMaster": " PDV Lupan Master ",
        "Nivelsituacao": 01,
        "IdRetaguardaPaiidInquilino": " ",
    /*Gerado no passo 1*/
    "loteOrigemidRetaguarda": "20221004175001554"3 ", /*código da loja na retaguarda*/
    },
    {
    "idProprietario": " ", /*compartilhamento da loja*/
    "IdRetaguardaLojaloteOrigem": " 3f054f05-ee67-407b-935d-9db0fc5e7c58",
        "IdRetaguarda": "3f054f05-ee67-407b-935d-9db0fc5e7c58",
        "IdProprietario": "3f054f05-ee67-407b-935d-9db0fc5e7c58",
        "IdInquilino": "4rlMuI3YwrWO8NKtvE8V",
        "NomeCompartilhamento": "PDV Lupan Loja",
        "Nivel": 1,
        "IdRetaguardaPai": "32796d0b-8399-490e-b972-1db212c514fa",
        "loteOrigem": "20221004175001554"
    }
]Response:" /*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

Post
{
    "status": "InicioEnvio",
    "tipoLote": [
        6
    ],
    "idInquilino": "" /*O código do IdInquilino conforme retornado no email.*/
}

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

 

5º - Fechar o Lote 

https://pdvsync-core-controle-qa-aadivv24nq-ue.a.run.app/api/retaguarda/inquilinolotesexternos/{idInquilino}/{loteOrigem}

...

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


Response:

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

 

6º - Abrir lote com Parâmetro 01 - Loja

Post

{
    "status": 0,
    "tipoLote": [
        1
    ],
    "idInquilino": "4rlMuI3YwrWO8NKtvE8V",
}

 

7º - Cadastro de uma Loja

Post

[
  {
    "razaoSocial": " ",
    "nomeFantasia": " ",
    "cnpj": " ",
    "inscricaoEstadual": " ", --
    "inscricaoMunicipal": " ",
    "endereco": " ",
    "numero": " ",
    "complemento": " ",
    "bairro": " ",
    "cidade": " ",
    "estado": " ",
    "siglaUf": " ",
    "codigoUFIBGE": " ",
    "codigoMunicipioIbge": " ",
    "cep": "",
    "telefone": "",
    "codigoIdentificacaoLoja": "",
    "modeloFiscal": "",
    "regimeTributario": "",
    "rede": "",
    "numeroLoja": "0",
    "idRetaguardaRede": "",
    "codigoMaster": " ",
    "nomeMaster": " ",
    "situacao": 1,
    "idInquilino": " ", - Gerado no passo 1
    "idRetaguarda": "3 ", - Gerado no passo 4
    "idProprietario": " ",- Gerado no passo 4
    "loteOrigem": " " - Gerado no passo 6
  }
]

 

8º - Fechar lote de loja

https://pdvsync-core-controle-qaprd-aadivv24nqq6yz66olca-uerj.a.run.app/api/retaguarda/inquilinolotesexternos/{idInquilino}/{loteOrigem}

metodo: PUT

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

 

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

URL: https://pdvsync-core-comercial-qa-aadivv24nq-ue.a.run.app.varejo.totvs.com.br/comercial/api/pdvsyncserver/parametros

Post

[
  {
    "idInquilino": "vAh0y1bKvHMfwsZxDKfW", - /*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": "vAh0y1bKvHMfwsZxDKfW",  /*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": "vAh0y1bKvHMfwsZxDKfW",  /*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": "vAh0y1bKvHMfwsZxDKfW",  /*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": "vAh0y1bKvHMfwsZxDKfW",  /*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-qaprd-aadivv24nqq6yz66olca-uerj.a.run.app/api/stub/historicovenda"
  }

...

]

10º Baixar Serviços Clients

  •  Processoresponsável pela leitura dessas informações cadastradas no server e fará a troca das informações entre o PDV e o Server. Ele é dividido basicamente em 4 serviços que devem ser instalados no PDV:
    •  
                 
    • 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.

 

Pre-Requisitos para instalação do Client:

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

 

Ex:

 

 

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

 

 

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

...

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

18.1. Configuração do PDV Sync Server para a loja via Postman

Para realizar as configurações para a utilização do PDV Sync no PDV Omnishop, é 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

Lá se encontra o arquivo com as Collections montadas para a configuração e com 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 Added

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

Image Added

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 Added

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 Added

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 Added


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

 

...

 

Após os passos acima os serviços Api, Up, Down e 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”.

...