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

...

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






...

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



...


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.

...

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


...

Âncora
Conceitos de ID Inquilino / ID Retaguarda / ID Proprietário
Conceitos de ID Inquilino / ID Retaguarda / ID Proprietário

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

IDInquilino : OMXKpmP8hVjbqE

...

                                 



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.

...


...

Âncora
Controle
Controle

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.

...

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.

...

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. 

...

Bloco de código
languagejava
themeEclipse
titlePUT ​/api​/retaguarda​/inquilinolotesexternos​/{inquilino}​/{lote}
collapsetrue

5.4 Lote Externo Retornos - INQUILINOLOTEEXTERNO



...

Âncora
dadosBasicos
dadosBasicos

6. Dados Básicos

6.1 Loja - LOJAS

 EndPoint - /api/retaguarda/lojas - POST

...

CampoTipoTamanhoObrigatoriedadeDescrição
razaoSocialString50SimRazão social da loja.
nomeFantasiaString50SimNome fantasia da loja.
cnpjString14SimCNPJ da loja.
inscricaoEstadualString15SimInscrição Estadual da Loja
inscricaoMunicipalString15NãoInscrição Municipal da Loja
enderecoString200SimEndereço da Loja
numeroString10SimNúmero da Loja
complementoString100NãoComplemento do Endereço da Loja
bairroString150SimBairro da Loja
cidadeString150SimCidade da Loja
estadoString60SimEstado da Loja
siglaUfString2SimSigla do Estado da Loja (UF)
codigoUFIBGEString2SimCódigo da UF no IBGE
codigoMunicipioIbgeString50SimCódigo do Município do IBGE
cepString10SimCEP da Loja
telefoneString20SimTelefone da Loja
codigoIdentificacaoLojaString20SimCódigo de Identificação da Loja
modeloFiscalString1Não

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

regimeTributarioString1SimEnquadramento Fiscal da Loja
0 - Simples Nacional
1 - Normal
redeString40SimDescrição da REDE no ERP/Retaguarda
numeroLojaString30SimCóidgo da Loja no ERP/Retaguarda
idInquilinoString
SimCódigo do Inquilino o qual a Loja pertence
idRetaguardaString
SimCódigo da Loja no ERP/Retaguarda
idProprietarioDateTime
SimCódigo do Proprietário da informação, no caso da Loja é o próprio ID Retaguarda
loteOrigemInteger
SimNúmero do lote que está sendo integrado, disponibilizado pelo PDV Sync ao ERP na abertura da integração
loteInteger
NãoInformação do PDV Sync, não integrado pelo ERP


6.2 Motivo

EndPoint - /api/retaguarda/motivos - POST

...

CampoTipoTamanhoObrigatoriedadeDescrição
DescriçãoString
SimDescrição do Motivo
TipoInteger
Sim

Tipo do Motivo utilizado :

AcrescimoDesconto =  0

TrocaDevolucao        = 1

CancelamentoVenda = 5

Sangria                      = 6

Suprimento               = 7

SituaçãoInteger
Sim

Situação do Motivo.

1 - Ativo

0 - Inativo

idString
NãoCampo Interno do PDVSync
idInquilinoString100SimCódigo do Inquilino o qual a Loja pertence
idRetaguardaString100SimCódigo da Loja no ERP/Retaguarda
dataAtualizacaoDateTime
NãoCampo Interno data da atualização no PDVSync
dataCadastroDateTime
NãoCampo Interno data de cadastro no PDVSync
idProprietarioString100SimCódigo do Proprietário da informação, no caso da Loja é o próprio ID Retaguarda
loteOrigemInterger
SimNúmero do lote que está sendo integrado, disponibilizado pelo PDVSync ao ERP na abertura da integração
loteInterger
NãoCampo Interno Informação do PDVSync, 

6.2 Usuário

EndPoint - /api/retaguarda/motivos - POST

...

CampoTipoTamanhoObrigatoriedadeDescrição
DescriçãoString100SimDescrição do Motivo
TipoInteger
SimTipo do Motivo utilizado
0 -
1 -
SituaçãoInteger
SimAituação do Motivo
idString
Não
idInquilinoString100SimCódigo do Inquilino o qual a Loja pertence
idRetaguardaString100SimCódigo da Loja no ERP/Retaguarda
dataAtualizacaoDateTime
NãoData da Atualização no PDVSync
dataCadastroDateTime
NãoData de Cadastro no PDVSync
idProprietarioString100SimCódigo do Proprietário da informação, no caso da Loja é o próprio ID Retaguarda
loteOrigemInterger
SimNúmero do lote que está sendo integrado, disponibilizado pelo PDV Sync ao ERP na abertura da integração
loteInterger
NãoInformação do PDV Sync, não integrado pelo ERP

Âncora
Produto
Produto

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.

...

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


Âncora
Preco
Preco

8. Preço


Âncora
FormaPagamento
FormaPagamento

9. Formas de Pagamentos


Âncora
Cliente
Cliente

10. Clientes

Âncora
estoque
estoque

11. Estoque

Âncora
imposto
imposto

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

...