...
...
...
...
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.
...
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.
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:
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 | ||||
---|---|---|---|---|
|
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.
...
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 | ||||
---|---|---|---|---|
|
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.
...
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
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.
Campo | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
idRetaguarda | String | 100 | Sim | Identificador do compartilhamento no ERP/Retaguarda |
idProprietario | String | 100 | Sim | 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. |
nomeCompartilhamento | String | 100 | Sim | Nome do compartilhamento que está sendo criado |
nivel | String | 2 | Sim | Define o nível hierárquico da informação no compartilhamento que está sendo criado |
idRetaguardaLoja | String | 100 | Sim | Identificador da loja no ERP/Retaguarda |
idInquilino | String | 100 | Sim | Identificador da estrutura de redes, franquias, centrais lojas |
dataAtualizacao | String | 26 | Sim | Data/hora do envio |
dataCadastro | String | 26 | Sim | Data/hora do cadastro |
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
[
{
"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"
}
] |
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:
Campo | Tipo | Tamanho | Obrigatório | Descriçã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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Parâmetros de saída:
Campo | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
sucess | ||||
message | ||||
loteOrigem | ||||
mensagem | ||||
status | ||||
tipoLote | ||||
FECHAMENTO → EndPoint - /api/retaguarda/inquilinolotesexternos/{idInquilino}/{lote} - PUT
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"
}
]
...
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
Campo | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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
...
EndPoint - /api/retaguarda/LoteExternoRetornos/{idInquilino}/{loteOrigem} - GET
...
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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 | ||||
---|---|---|---|---|
|
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
Campo | Tipo | Tamanho | Obrigatoriedade | Descrição | ||||||||
razaoSocial | String | 50 | Sim | Razão social da loja. | ||||||||
nomeFantasia | String | 50 | Sim | Nome fantasia da loja. | ||||||||
cnpj | String | 14 | Sim | CNPJ da loja. | ||||||||
inscricaoEstadual | String | 15 | NãoSim | Inscrição Estadual da Loja | ||||||||
inscricaoMunicipal | String | 15 | Não | Inscrição Municipal da Loja | ||||||||
enderecoString | String | 200 | Sim | Endereço da Loja | ||||||||
numero | String | 10 | Sim | Número da Loja | ||||||||
complemento | String | 100 | Não | Complemento do Endereço da Loja | ||||||||
bairro | String | 150 | Sim | Bairro da Loja | ||||||||
cidade | String | 150 | Sim | Cidade da Loja | ||||||||
estado | String | 60 | Sim | Estado da Loja | ||||||||
siglaUf | String | 2 | Sim | Sigla do Estado da Loja (UF) | ||||||||
codigoUFIBGE | String | 2 | Sim | Código da UF no IBGE | ||||||||
codigoMunicipioIbge | String | 50 | Sim | Código do Município do IBGE | ||||||||
cep | String | 10 | Sim | CEP da Loja | ||||||||
telefone | String | 20 | SimNão | Telefone da Loja | ||||||||
codigoIdentificacaoLoja | String | 20 | SimNão | Código de Identificação da Loja | ||||||||
modeloFiscal | String | 1 | NãoSim | Modelo Fiscal da Loja: A configuração do modelo fiscal da loja poderá ser realizado através do configurador do PDV | ||||||||
regimeTributario | String | 1 | Sim | Enquadramento Fiscal da Loja 0 - Simples Nacional 1 - Normal | ||||||||
rede | String | 40 | SimNão | Código Descrição da REDE no ERP/Retaguarda | ||||||||
numeroLoja | String | 30 | NãoSim | Cóidgo da Loja no ERP/Retaguardaid | String | Não | ||||||
idInquilino | String | Sim | Código do Inquilino o qual a Loja pertence | |||||||||
idRetaguarda | String | Sim | Código da Loja no ERP/Retaguarda | dataAtualizacao | String | Não | Data da Atualização no PDVSync | dataCadastro | DateTime | Não | Data de Cadastro no PDVSync | |
idProprietario | DateTime | Sim | Código do Proprietário da informação, no caso da Loja é o próprio ID Retaguarda | |||||||||
loteOrigem | Integer | Sim | Número do lote que está sendo integrado, disponibilizado pelo PDV Sync ao ERP na abertura da integração | |||||||||
lote | Integer | Não | Informação do PDV Sync, não integrado pelo ERP |
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
Campo | Tipo | Tamanho | Obrigatoriedade | Descrição |
Descrição | String | Sim | Descrição do Motivo | |
Tipo | Integer | Sim | Tipo do Motivo utilizado : AcrescimoDesconto = 0 TrocaDevolucao = 1 CancelamentoVenda = 5 Sangria = 6 Suprimento = 7 | |
Situação | Integer | Sim | Situação do Motivo. 1 - Ativo 0 - Inativo | |
id | String | Não | Campo Interno do PDVSync | |
idInquilino | String | 100 | Sim | Código do Inquilino o qual a Loja pertence |
idRetaguarda | String | 100 | Sim | Código da Loja no ERP/Retaguarda |
dataAtualizacao | DateTime | Não | Campo Interno data da atualização no PDVSync | |
dataCadastro | DateTime | Não | Campo Interno data de cadastro no PDVSync | |
idProprietario | String | 100 | Sim | Código do Proprietário da informação, no caso da Loja é o próprio ID Retaguarda |
loteOrigem | Interger | Sim | Número do lote que está sendo integrado, disponibilizado pelo PDVSync ao ERP na abertura da integração | |
lote | Interger | Não | Campo Interno Informação do PDVSync, |
...