Árvore de páginas

Versões comparadas

Chave

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

...

  • 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 PDV Omnishop 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


Image Added


...


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                       

...

      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.

  1.                                  

...

  1.                   

...

     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

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

4. 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. 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.
  1. Enviamos os dados da API de Loja
  2. /api/retaguarda/inquilinolotesexternos/{idInquilino}/{lote} → PUT              Fazemos o encerramento do Lote
  3. 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.
  4. /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.


...

Â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

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 Added   

...

           

...

  Image Added


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 Added



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:

...


...

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

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


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 Modified


           Image Modified



          Image Modified




                                               Image Modified         Exemplo

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 Added

        

                                  Image Added


CampoTipoTamanhoObrigatórioDescrição
idRetaguardaString100SimIdentificador do compartilhamento no ERP/Retaguarda
idProprietarioString100Sim

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.

nomeCompartilhamentoString100SimNome do compartilhamento que está sendo criado
nivelString2SimDefine o nível hierárquico da informação no compartilhamento que está sendo criado
idRetaguardaLojaString100SimIdentificador da loja no ERP/Retaguarda
idInquilinoString100SimIdentificador da estrutura de redes, franquias, centrais  lojas
dataAtualizacaoString26SimData/hora do envio
dataCadastroString26SimData/hora do cadastro 



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:

CampoTipoTamanhoObrigatórioDescrição
loteOrigem


do inquilino no TOTVS RAC

mensagem



situacao


situação
tipoLote


Tipo do lote externo para o PdvSync
Cliente = 0,
Loja = 1,
Motivo = 2,
Usuario = 3,
Estoque = 4,
FcpProduto = 5,
Compartilhamento = 6,
Imposto = 7,
Ncm = 8,
PisCofin = 9,
TributoNcm = 10,
Preco = 11,
ClassificacaoProduto = 12,
Produto = 13
id



idInquilino



dataAtualizacao



dataCadastro





Bloco de código
languagejava
themeEclipse
titlePOST /api/retaguarda/inquilinolotesexternos
collapsetrue


Parâmetros de saída: 


CampoTipoTamanhoObrigatórioDescrição
sucess



message



loteOrigem



mensagem



status



tipoLote














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

                                          Image Removed

        

                                  Image Removed

       Exemplo da API de Compartilhamento.

[
{
"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.3 Inquilino Lote Externo Abertura e Fechamento de Lote - INQUILINOLOTEEXTERNO

...

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


CampoTipoTamanhoObrigatórioDescrição








































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

5.4 Lote Externo Retornos - INQUILINOLOTEEXTERNO


 EndPoint /api/retaguarda/

...

LoteExternoRetornos/{idInquilino}/{

...

loteOrigem}

...

-

...

GET

Esta API

...

retorna o sucesso ou qual erro ocorreu na validação do Lote de informações enviados para o PDVSync.

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

...

5.4 Lote Externo Retornos - INQUILINOLOTEEXTERNO

 EndPoint - /api/retaguarda/LoteExternoRetornos/{idInquilino}/{loteOrigem} - GET

...




Bloco de código
languagejava
themeEclipse
titleGET ​/api​/retaguarda​/LoteExternoRetornos​/{inquilino}​/{loteOrigem}
collapsetrue



Informações

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



...

Âncora
dadosBasicos
dadosBasicos

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


CampoTipoTamanhoObrigatoriedadeDescrição
razaoSocialString50SimRazão social da loja.
nomeFantasiaString50SimNome fantasia da loja.
cnpjString14SimCNPJ da loja.
inscricaoEstadualString15NãoSimInscrição Estadual da Loja
inscricaoMunicipalString15NãoInscrição Municipal da Loja
enderecoStringString200SimEndereç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
telefoneString20SimNãoTelefone da Loja
codigoIdentificacaoLojaString20SimNãoCódigo de Identificação da Loja
modeloFiscalString1NãoSim

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
redeString40SimNãoCódigo Descrição da REDE no ERP/Retaguarda
numeroLojaString30NãoSimCóidgo da Loja no ERP/RetaguardaidStringNão
idInquilinoString
SimCódigo do Inquilino o qual a Loja pertence
idRetaguardaString
SimCódigo da Loja no ERP/RetaguardadataAtualizacaoStringNãoData da Atualização no PDVSyncdataCadastroDateTimeNãoData de Cadastro no PDVSync
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

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 OmniShop e utilizarão o PDVSync para integração.

O PDV OmniShop não exige o tipo do Motivo para as operações, caso não exista o tipo com seus motivos o PDV OmniShop 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


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, 

...