Índice 

1.  PDVSync

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

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

O PDVSync é composto por dois componentes principais:




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


                                                   


     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.

                                 



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





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.

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.


              


           



          




                                               

         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.


                                          

        

                                  


       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


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

Esta API é responsável por avisar o PDVSync que será enviado um lote de informações para que seja enviado 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


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


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



6. Dados Básicos

6.1 Loja 

6.2 Motivo

6.2 Usuário


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: 

CampoTipoObrigatoriedadeDescrição
IdInquilino


IdProprietario


Lote


LoteOrigem


IdRetaguardaImposto


IdRetaguardaNcm


IdRetaguardaPisCofins


Descricao


UnidadeMedida


DescontoMaximo


TipoArredondaTrunca


CodigoProduto


CodigoAlternativo


OrigemProduto


Situacao


Imagem


TipoProduto


Fracionado


CnpjFornecedor


EscalaRelevante


ValorBaseFcp


CodigoBeneficioFiscal


PercentualFcp


CstIcms


PercentualReducaoIcms


AliquotaIcms


Vlicmsret


MotivoDesoneracaoIcms


DescontaDesoneracaoNf


Cest


produtoKits


produtoKits.Id


produtoKits.IdInquilino


produtoKits.IdRetaguarda


produtoKits.IdProprietario


produtoKits.Lote


produtoKits.LoteOrigem


produtoKits.IdRetaguardaProduto


produtoKits.IdRetaguardaProdutoKit


produtoKits.Descricao


produtoKits.QuantidadeVendaKit


produtoKits.TipoValorKit


produtoKits.Situacao


produtoKits.ValorDesconto


produtoKits.NovoValorUnitario


produtosSimilares


produtosSimilares.Id


produtosSimilares.IdInquilino


produtosSimilares.IdRetaguarda


produtosSimilares.IdProprietario


produtosSimilares.Lote


produtosSimilares.LoteOrigem


produtosSimilares.IdRetaguardaProduto


produtosSimilares.Situacao


produtosSimilares.IdRetaguardaSimilar


ProdutosSugestoes


produtosSimilares.Id


ProdutosSugestoes.IdInquilino


ProdutosSugestoes.IdRetaguarda


ProdutosSugestoes.IdProprietario


ProdutosSugestoes.Lote


ProdutosSugestoes.LoteOrigem


ProdutosSugestoes.IdRetaguardaProduto


ProdutosSugestoes.Situacao


ProdutosSugestoes.IdRetaguardaSugestao


codigosProduto


codigosProduto.codigo


codigosProduto.descricao


codigosProduto.idRetaguarda


codigosProduto.dataAtualizacao


codigosProduto.dataCadastro


codigosProduto.situacao



Exemplo de chamada POST:

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