Informações |
---|
title | 1 - Procedimentos para Configuração |
---|
|
|
Expandir |
---|
| - Inquilino ativo na base do POSH
- Usuário e senha do RAC
- Acesso validado com token
|
Expandir |
---|
title | Configurações iniciais |
---|
| |
|
Informações |
---|
icon | false |
---|
title | Envio de dados do ERP para o PDV Omni |
---|
|
Expandir |
---|
|
|
Todo a arquitetura do funciona através do envio de lotes.Podemos imaginar um lote como um container em um navío, esse container contêm os dados que serão enviados para a(s) loja(s).
O envio dos dados segue o seguinte fluxo
- Abertura de lote
- Envio dos dados
- Fechamento do lote
- Monitoramento do lote
Abaixo está listado cada passo e as informações para o envio.
Expandir |
---|
title | Passo 1 - Abertura de lote |
---|
|
Expandir |
---|
|
Para se abrir um lote é necessário fazer uma requisição para o micro serviço do PDVSync,Core.Controle.
- Endpoint: /api/retaguarda/inquilinolotesexternos
- Método: Post
- Autenticação: Bearer token
- Permissão: Retaguarda
O retorno dessa requisição gerará um código chamado loteOrigem, ele é de suma importância, pois, esse código identifica qual o lote que pertence o(s) dado(s) e deverá ser passado no envio dos dados para que a integração funcione corretamente.
Expandir |
---|
|
{
"status":0,
"tipoLote":[
17
],
"idInquilino":"{{IdInquilino}}"
} Expandir |
---|
title | Definição dos campos de requisição |
---|
|
Campo | Tipo | Descrição | Observações |
---|
idInquilino | string | idInquilino gerado na criação do inquilino | Não Nulo |
tipoLote | Lista de string | Lista dos tipos de dados a serem enviados. São aceitos vários tipos. (Tipos na seção Tipos Lote) | Não nulo |
status | string | Status do lote, na abertura sempre enviar 0 - Inicio Envio | Não nulo |
Expandir |
---|
|
Os tipos de dados passados na requisição são os seguintes: Cliente = 0 Loja = 1 Motivo = 2 Perfil = 3 Usuario = 4 FcpProduto = 5 Compartilhamento = 6 Imposto = 7 Ncm = 8 PisCofins = 9 TributoNcm = 10 ClassificacaoProduto = 11 Produto = 12 Preco = 13 Estoque = 14 Operadora = 15 DadoComplementarPagto = 16 CondicaoPagto = 17 FormaPagto = 18 CanalVenda = 24 AlteracaoCliente = 40 AlteracaoImposto = 47 AlteracaoNcm = 48 AlteracaoPisCofins = 49 AlteracaoTributoNcm = 50 AlteracaoClassificacaoProduto = 51 AlteracaoProduto = 52 AlteracaoPreco = 53 AlteracaoEstoque = 54 PreVenda = 55 ClienteEndereco = 56 |
Expandir |
---|
title | Retorno da requisição |
---|
|
{
"success":true,
"message":"",
"data":{
"loteOrigem":"{LoteOrigem}",
"mensagem":null,
"status":0,
"tipoLote":[
"17"
],
"idInquilino":"{IdInquilino)",
"dataAtualizacao":"{DataAtualizacao}",
"dataCadastro":"{DataCadastro}",
"id":"{Identificador}",
"_expandables":[]
}
} Expandir |
---|
title | Definição dos campos de retorno |
---|
|
Campo | Tipo | Descrição |
---|
Success | bool | Indica se a criação do lote foi feita com sucesso |
Message | string | Caso ocorra erros durante a criação do lote eles serão enviados nesse campo |
Data | objeto | Objeto lote criado |
Data.LoteOrigem | string | Número de identificação do lote |
Data.Mensagem | string | Data.Status | int | Status do lote |
Data.TipoLote | List String | Lista de tipos de dados que serão enviados no lote |
Data.IdInquilino | string | idInquilino vinculado ao lote |
Data.DataAtualização | datetime | Data da ultima atualização do registo |
Data.DataCadastro | datetime | Data de criação do lote |
Data.Id | string | Identificador do lote no banco |
Expandir |
---|
title | Passo 2 - Envio dos dados |
---|
|
Os dados são enviados para os seus respectivos micro serviços. Exemplo: venda é enviada para o serviço comercial Todos os dados que serão enviados deverão conter o loteOrigem para identificar de qual lote ele pertence. Caso o loteOrigem não seja enviado os dados não serão integrados com o PDV Omni. O lote deve conter o tipo de dado que está sendo enviado |
Expandir |
---|
title | Passo 3 - Fechamento do lote |
---|
|
Expandir |
---|
|
Todo lote que é aberto deve ser fechado após o envio dos dados. Para se fechar um lote é necessário fazer uma requisição para o micro serviço do PDVSync,Core.Controle. - Endpoint: /api/retaguarda/inquilinolotesexternos/{IdInquilino}/{LoteOrigem}
- Método: Put
- Autenticação: Bearer token
- Permissão: Retaguarda
Ao ser fechado o lote começa a ser processado pela inteligência do POSH, nesse momento são feitas várias verificações de integridade dos dados e há um processo para enviar os dados para todas as lojas que fazem parte do compartilhamento. |
Expandir |
---|
title | Retorno da requisição |
---|
|
{
"success":true,
"message":"Lote finalizado e processado com sucesso",
"data":null
} Expandir |
---|
title | Definição dos campos de retorno |
---|
|
Campo | Tipo | Descrição |
---|
Success | bool | Indica se a criação do lote foi feita com sucesso |
Message | string | Mensagem enviada |
Expandir |
---|
title | Passo 4 - Monitoramento do lote |
---|
|
Expandir |
---|
|
O monitoramento do lote pode ser feito de várias formas. Antes é necessário que haja o entendimento que há dois tipos de lote. - Lote Externo - Lote criado pela retaguarda que identifica os dados que serão enviados
- Loja Lote - Lote criado pelo POSH para enviar para o PDV Omni
O loja lote é criado pelo POSH quando o lote externo é fechado pela Retaguarda, o passo a passo é o seguinte: - Retaguarda fecha o lote
- O POSH verifica os dados do lote
- O POSH verifica os corpartilhamentos do inquilino
- O POSH cria os loja lotes de acordo com os compartlhamentos do inquilino
Nesse módulo teremos a explicação de como fazer o monitoramento dos dois tipos de lotes. IMPORTANTE: O POSH tem rotinas de expurgo de dados que rodam automaticamente todos os dias, os dados ficam nos serviços do POSH por 14 dias corridos, depois disso não há como recuperar as informações dos lotes. |
Expandir |
---|
title | Monitoramento Lote Externo |
---|
|
Expandir |
---|
|
O monitoramento do lote externo é feito pelas apis do PDVSync.Core.Controle. Nesse endpoint teremos algumas informações muito importante com relação ao lote aberto pela retaguarda. - Endpoint: /api/retaguarda/v2/inquilinolotesexternos/{id lote externo}
- Método: GET
- Autenticação: Bearer token
- Permissão: Retaguarda
Nesse endpoint um dos dados mais importantes é o status, ele indica se o lote prosseguiu para o próximo passo ou se ele foi barrado por algum motivo. |
Expandir |
---|
title | Retorno da requisição |
---|
|
{
"success":true,
"message":"",
"data":{
"loteOrigem":"string",
"mensagem":"string",
"status":int,
"tipoLote":[
"string"
],
"idInquilino":"string",
"dataAtualizacao":"datetime",
"dataCadastro":"datetime",
"id":"string",
"_expandables":[]
}
} Expandir |
---|
title | Definição dos campos de retorno |
---|
|
Campo | Tipo | Descrição |
---|
Success | bool | Indica se a requisição foi realizada com sucesso |
Message | string | Caso ocorra erros durante a criação do lote eles serão enviados nesse campo |
Data | objeto | Objeto lote externo |
Data.LoteOrigem | string | Número de identificação do lote |
Data.Mensagem | string | Mensagem enviada no cadastro do lote |
Data.Status | int | Status do lote (Definições na seção abaixo) |
Data.TipoLote | List String | Lista de tipos de dados que serão enviados no lote |
Data.IdInquilino | string | idInquilino vinculado ao lote |
Data.DataAtualização | datetime | Data da ultima atualização do registo |
Data.DataCadastro | datetime | Data de criação do lote |
Data.Id | string | Identificador do lote no banco |
Expandir |
---|
|
Código | Nome | Descrição |
---|
0 | InicioEnvio | Indica que o lote foi aberto pela retaguarda e está sendo enviado os dados para o lote. |
1 | FimEnvio | Indica que a retaguarda fechou o lote para iniciar o processamento do lote. |
2 | ValidadoOK | Indica que o POSH validou os dados e criou os loja lotes para baixa |
3 | ValidadoErro | Indica que ocorreu algum erro no processo e não foram criado os loja lotes. O erro mais comum nesse caso é o POSH não encontra os dados q foram enviados. |
4 | Processando | Indica que o POSH está processando o lote |
Expandir |
---|
title | Monitoramento Loja Lote |
---|
|
Expandir |
---|
|
O monitoramento do loja lote é feito pelas apis do PDVSync.Core.Controle.
Nesse endpoint temos informações com relação aos loja lotes, informações como:
- Quais itens deram problema na baixa? Por quê?
- Quais lojas baixaram os dados? Quais não iniciaram a baixa?
Para acessar os dados a requisição é a seguinte
- Endpoint: /api/retaguarda/v2/LojaLoteStatusRetorno/{id lote externo}?{parâmetros}
- Método: GET
- Autenticação: Bearer token
- Permissão: Retaguarda
Para esse endpoint, alguns parâmetro precisam ser enviados na requisição. Estes parâmetros são:
Parametro | Descrição | Tipo | Observação |
---|
inquilino | Id inquilino do loja lote | string | Obrigatório |
loteorigem | Lote origem que será buscado o status | string | Obrigatório |
idRetaguardaLoja | Id retaguarda da loja que será buscado o status | string | Opcional |
tipoLote | Tipo do lote que será buscado o status | int | Opcional |
Os parâmetros opcionais funcionam como um filtro de dados, caso estejam preenchidos ele trará somente os dados relacionados ao filtro.
Expandir |
---|
title | Retorno da requisição |
---|
|
{ "success": bool, "message": "string", "data": { "lote": "string", "loteOrigem": "string", "lojaLotes": [ { "status": int, "errosIdentificados": [ { "tipoLote": int, "idRetaguarda": "string", "erro": "string", "tipoLojaLote": int } ], "idRetaguardaLoja": "string", "idInquilino": "string", "dataAtualizacao": "datetime", "dataCadastro": "datetime", "id": int } ], "pagina": int, "hasnext": bool } } |
Expandir |
---|
title | Definição dos campos de retorno |
---|
|
Campo | Tipo | Descrição |
---|
Success | bool | Indica se a requisição foi feita com sucesso |
Message | string | Mensagem de erro retornada |
Data | objeto | Objeto de retorno |
Data.Lote | string | Número de identificação do lojaLote |
Data.Loteorigem | string | Número de identificação do lote |
Data.Lojalotes | lista de objetos | Lista com os loja lotes |
Data.Lojalotes.Status | int | Indica o status em que o loja lote se encontra. (Definição dos status na seção abaixo) |
Data.Lojalotes.Errosidentificados | lista de objetos | Lista com o erros identificados na integração do loja lote |
Data.Lojalotes.Errosidentificados.Tipolote | int | Indica o tipo do lote |
Data.Lojalotes.Errosidentificados.Idretaguarda | string | Id retaguarda do item |
Data.Lojalotes.Errosidentificados.Erro | string | Erro ocorrido com o item |
Data.Lojalotes.ErrosidentificadosTipolojalote | int | Indio o tipo do loja lote do item |
Data.Idretaguardaloja | string | Id retaguada da loja proprietária do lote |
Data.Idinquilino | string | Identificação do inquilino |
Data.Dataatualizacao | datetime | data de atualização do loja lote |
Data.Datacadastro | datetime | data de cadastro do loja lote |
Data.Id | int | Id do loja lote |
Pagina | int | Indica em qual página está os dados |
Hasnext | bool | Indica se há mais páginas de dados |
Expandir |
---|
|
Código | Nome | Descrição |
---|
0 | EmPreparacao | Indica que o POSH está criando o loja lote |
1 | EmProcessamento | Indica que o POSH está validando o loja lote |
2 | Disponivel | Indica que o loja lote está disponível para a baixa pelo PDV Omni |
3 | Indisponivel | Indica que o loja lote está indisponível para baixa pelo PDV Omni |
4 | EmProcessoDeBaixa | Indica que o loja lote está sendo baixado pelo PDV Omni |
5 | BaixadoComSucesso | Indica que todos os dados enviados para o loja lote foram integrados com sucesso ao PDV Omni |
6 | BaixadoComErro | Indica que ao menos um item deu erro na integração com o PDV Omni |
7 | EnviadoComSucesso | Indica que o loja lote foi envidado com sucesso para a retaguarda |
8 | EnviadoComErro | Indica que o loja lote não foi enviado com sucesso para a retaguarda |
9 | ComProblemaVerificar | Indica que ocorreu alguma problema com o loja lote e deve-se verificar |