Data alteração | Motivo | O que mudou? | Aprovadores | Versão |
---|---|---|---|---|
21/03/2025 | Deixar claro que na API de processo online de estoque que GET é para PDV e POST para retaguarda. | O processo continua o mesmo, porém a escrita poderia gerar interpretação errada, pois estava apenas descrito a API de GET utilizada pelo PDV e não evidenciado o POST utilizado pela retaguarda. |
2. O que fazer?
Desenvolver o processo de consulta de estoque de produto com visualização de destalhes de deposito. No processo de integração de venda efetuar a baixa de estoque de acordo com o deposito vinculado ao tipo da operação.
Dores e necessidades | Possibilitar a utilização de diferentes depositos no processo no PDV e pedido de venda para baixa do saldo de estoque na retaguarda |
Negócio | Na operação no PDV e no pedido de venda, de acordo com parametrização da retaguarda, deve ser possivel informar o deposito que o saldo de estoque deve ser utilizado para baixa nos processos de venda |
Entrega de valor | Será possivel efetuar a selecão de diferentes depositos para as operações de venda |
3. Tabelas e campos novos - PDV Omni
3.1 Tabela: pre_venda_item
Nome do campo | Tipo do campo | Obrigatorio |
---|---|---|
id_retaguarda_deposito | Character varyant (100) | opcional |
4. Parametros novos
Não há
5. Definição de contratos de API:
Request
Parametro | Descrição | Tipo | Obrigatório | Observação |
---|---|---|---|---|
inquilino | Identificador do inquilino | string | Sim | |
idRetaguardaProduto | Identificador do produto na retaguarda | string | Sim | |
idRetaguardaLojaOrigem | Identificador da loja de consultante do saldo | string | Sim | |
idRetaguardaLojasConsultaEstoque | Identificador das lojas para consulta do estoque | string | Não | Pode ser enviado mais de um valor separando-os por vírgula (,) |
idRetaguardaProdutoEmbalagem | Identificador da embalagem | string | Não | Pode ser enviado mais de um valor separando-os por vírgula (,) |
Response
Os novos campos estão em destaque.
Campo | Tipo | Obrigatório | Descrição | Observação |
---|---|---|---|---|
success | Booleano | Sim | Indica se a requisição retornou sucesso | |
message | String | Não | Campo com as mensagens de erro | |
data | Lista de Objetos | Não | Conteúdo de retorno | |
data.estoque | Lista de Objetos | Não | Lista de estoques | |
data.estoque.deposito | Lista de Objetos | Não | Lista de objetos de depósitos | Deve ser utilizado pela retaguarda quando há a possibilidade de ter mais de um depósito de produto por loja. |
data.estoque.deposito.idRetaguarda | String | Sim | Identificador de depósito na retaguarda |
|
data.estoque.deposito.descricao | String | Sim | Descrição do depósito |
|
data.estoque.deposito.quantidade | Decimal | Sim | Quantidade de produto disponível por depósito |
|
data.estoque.deposito.padrao | Boolean | Sim | Depósito padrão para venda |
|
data.estoque.armazem | Objeto | Não | Objeto armazem |
|
data.estoque.armazem.id | String | Não | Identificador do armazem | |
data.estoque.armazem.descricao | String | Não | descrição do armazem | |
data.estoque.loja | Objeto | Não | Objeto loja | |
data.estoque.loja.endereco | String | Não | Endereço da loja | |
data.estoque.loja.idRetaguarda | String | Não | Identificador da loja na retaguarda | |
data.estoque.loja.descricao | String | Não | Descrição da loja | |
data.estoque.produtoLote | Lista de Objetos | Não | Identificação de lotes do produto | |
data.estoque.produtoLote.idRetaguarda | String | Não | Identificador do lote do produto na retaguarda | |
data.estoque.produtoLote.quantidade | Numeric | Não | Quantidade de produtos disponível no lote. | |
data.estoque.produtoLote.identificacaoLote | String | Não | Código ou identificação única do lote. | |
data.estoque.produtoLote.dataValidade | DateTime (formato ISO 8601) | Não | Data de validade do lote. | |
data.estoque.quantidade | Decimal | Não | Quantidade em estoque | |
data.idRetaguardaProduto | String | Não | Identificador do produto na retaguarda | |
errors | Nulo | Não | Lista com erros | |
totalTime | Inteiro | Não | Tempo de requisição | |
numberOfRecords | Inteiro | Não | Número de linhas retornadas |
Exemplos
Sucesso:
{
"success": true,
"message": "",
"data": [
{
"estoque": [
{
"armazem": null,
"deposito":
[
{
"idRetaguarda":"22325869",
"descricao":"Depósito São Paulo/Santana",
"quantidade": 400.0
"padrao": true
},
{
"idRetaguarda":"78556697",
"descricao":"Depósito São Paulo/Ipiranga"
"quantidade": 402.0
"padrao": false
}
],
"loja": {
"endereco": "GOIANIA - RUA 135",
"idRetaguarda": "1",
"descricao": "TOTVS BRASILIA SOFTWARE LTDA "
},
"produtoLote": [],
"quantidade": 882.0
}
],
"idRetaguardaProduto": "2-2"
}
],
"errors": null,
"totalTime": 0,
"numberOfRecords": 0
}
5.2 Contrato de envio de pré-venda no processo online
Adicionar no body de requisição do POST novo campo idRetaguardaDeposito no objeto preVendaItens.
Campo | Tipo | Descrição | Obrigatório | Observação |
---|---|---|---|---|
PreVendaItens.idRetaguardaDeposito | string | Identificação de qual depósito o produto será retirado | Não |
|
6. Restrições:
Não será efetuado transferência automática entre depósitos na primeira versão da funcionalidade
7. Pontos de atenção:
O Processo de utilização de múltiplos depósitos para reserva deverá ocorrer apenas no fluxo online e offline.
A identificação do deposito irá ocorrer de forma manual para a operação de pedido de venda.
A reserva de estoque de mercadoria deve ocorrer para o estoque de acordo com o deposito selecionado.
Para operação de de PDV venda autosserviço e pedido com o tipo de entrega Retira imediata (RI) o deposito utilizado deverá ser padrão.