01. DADOS GERAIS

Produto:

TOTVS Varejo Food Service

Linha de Produto:

 

Segmento:

Fly01 

Módulo:
Função:
Ticket:
Requisito/Story/Issue (informe o requisito relacionado) :DVARHAN-7161


02. 
SITUAÇÃO/REQUISITO

Disponibilizar uma API para listagem do estoque das lojas

03. SOLUÇÃO

Foi disponibilizada uma API para listar o estoque da(s) loja(s) e está disponível no endpoint abaixo: 

URL: http://chefweb.chef.totvs.com.br/chefwebapi/api/Estoque/ListarEstoque

        Possibilidades de requisições:

        Consulta Completa: Listar o estoque de todos os produtos ativos da loja. O parâmetro "Completa" deve ser passado como 1.

        Payload Request (exemplo):        
        {

               "Token""860758ef-665e-4206-8007-acfb91eee184",   
               "CodigoLoja""50",
               "Completa": 1,
               "Produtos""",
               "CodigoComplementar""CODIGOPROTHEUS"

         }     

        Payload Response (exemplo):

        {
              "Estoque": [
               {
                    "skuId""CHMAN0150A18",
                    "lotId""01",
                    "quantity"0,
                    "locationId"50,
                    "stockType""PHYSICAL",
                    "updatedAt""2021-06-01T08:59:43",
                    "unit""UN"
               },
               {
                    "skuId""ITMAR0149A18",
                    "lotId""01",
                    "quantity"69,
                    "locationId"50,
                    "stockType""PHYSICAL",
                    "updatedAt""2021-06-01T08:59:43",
                    "unit""UN"
                },

                .

                .

                .

                .

               {
                     "skuId""ARESC0951A17",
                     "lotId""01",
                     "quantity"0,
                     "locationId"50,
                     "stockType""PHYSICAL",
                     "updatedAt""2021-06-01T08:59:43",
                     "unit""UN"
               }
              ],
              "Sucesso"true,
              "Erros": []
       }

       Consulta parcial: Listar o estoque de todos os produtos ativos da loja que sofreram alteração de estoque desde a última consulta completa ou parcial. O parâmetro "Completa" deve ser passado como 0.

       Payload Request (exemplo):       
       {            

               "Token""ca0b3a1b-87c7-419b-b885-52dfe004c712",   
               "CodigoLoja""50",
               "Completa": 0,
               "Produtos""",
               "CodigoComplementar""CODIGOPROTHEUS"

       }

       Payload Response (exemplo):

       {
               "Estoque": [
               {
                     "skuId""ITALG0249A16",
                     "lotId""01",
                     "quantity"0,
                     "locationId"50,
                     "stockType""PHYSICAL",
                     "updatedAt""2021-06-01T09:31:15",
                     "unit""UN"
               }
               ],
               "Sucesso"true,
               "Erros": []
        }

       Consulta por produtos específicos: Listar o estoque de todos os produtos ativos da loja com base na lista de códigos recebidos. O parâmetro "Completa" deve ser passado como 0. O         parâmetro "Produtos" deve conter uma lista do tipo texto (entre aspas e separados por vírgula) com todos os códigos desejados.

       Payload Request (exemplo):       

       {
                "Token""045bafa6-9da9-4d48-8028-8fe4b4dba5b6",    
                "CodigoLoja""50",
                "Completa"0,
                "Produtos"["ITALG0249A16","ATKRA0149A16"],    
                "CodigoComplementar""CODIGOPROTHEUS"

       }

       

       Payload Response:

       {
             "Estoque": [
              {
                     "skuId""ITALG0249A16",
                     "lotId""01",
                     "quantity"11,
                     "locationId"50,
                     "stockType""PHYSICAL",
                     "updatedAt""2021-06-01T08:56:54",
                     "unit""UN"
               },
              {
                     "skuId""ATKRA0149A16",
                     "lotId""01",
                     "quantity"11,
                     "locationId"50,
                     "stockType""PHYSICAL",
                     "updatedAt""2021-06-01T08:56:54",
                     "unit""UN"
               },
               {
                     "skuId""ATKRA0149A16",
                     "lotId""01",
                     "quantity"0,
                     "locationId"50,
                     "stockType""PHYSICAL",
                     "updatedAt""2021-06-01T08:56:54",
                     "unit""UN"
               }
               ],
              "Sucesso"true,
              "Erros": []
       }

04. DEMAIS INFORMAÇÕES

Payload request (exemplo):

{
    "Token""8fdef75e-0422-4748-bfb8-dc1a75a0e7b2",
    "CodigoLoja""50",
    "Completa"1,
    "Produtos""",
    "CodigoComplementar""" 
}

Payload response (exemplo):

{
    "Estoque": [],
    "Sucesso"false,
    "Erros": [
        {
            "CodigoErro"20,
            "DescricaoErro""A consulta completa não pode ser realizada pois já atingiu a quantidade máxima liberada para o dia!"
        }
    ]
}

          Consulta Completa:

Payload request (exemplo):

{
    "Token""689bfd30-ab01-4b10-adba-d13b6fbed298",
    "CodigoLoja""50",
    "Completa"1,
    "Produtos""",    
    "CodigoComplementar"""
}

Payload response (exemplo):

{
    "Estoque": [
        {
            "skuId""12241",
            "lotId""01",
            "quantity"0,
            "locationId"50,
            "stockType""PHYSICAL",
            "updatedAt""2021-06-01T10:24:42",
            "unit""UN"
        },
        {
            "skuId""12249",
            "lotId""01",
            "quantity"2,
            "locationId"50,
            "stockType""PHYSICAL",
            "updatedAt""2021-06-01T10:24:42",
            "unit""UN"
        },

        .

        .

        .

        .

       {
            "skuId""9116",
            "lotId""01",
            "quantity"0,
            "locationId"50,
            "stockType""PHYSICAL",
            "updatedAt""2021-06-01T10:24:42",
            "unit""UN"
        }
    ],
    "Sucesso"true,
    "Erros": []
}

      Consulta parcial:

      Payload request (exemplo):

{
    "Token""49b9e162-85f1-447e-ad5a-915d4bbae8c5",
    "CodigoLoja""50",
    "Completa"0,
    "Produtos""",    
    "CodigoComplementar"""
}

      Payload response (exemplo):

{
    "Estoque": [
        {
            "skuId""11900",
            "lotId""01",
            "quantity"0,
            "locationId"50,
            "stockType""PHYSICAL",
            "updatedAt""2021-06-01T10:29:35",
            "unit""UN"
        }
    ],
    "Sucesso"true,
    "Erros": []
}

Consulta por produtos:

Payload request (exemplo):

{
    "Token""f5f947a7-89a3-46b2-8f77-be9e958cd262",
    "CodigoLoja""50",
    "Completa"0,
    "Produtos": ["9944", "12514", "11846"],     
    "CodigoComplementar""" 
}

Payload response (exemplo):

{
    "Estoque": [
        {
            "skuId""9944",
            "lotId""01",
            "quantity"0,
            "locationId"50,
            "stockType""PHYSICAL",
            "updatedAt""2021-06-01T10:34:51",
            "unit""UN"
        },
        {
            "skuId""12514",
            "lotId""01",
            "quantity"11,
            "locationId"50,
            "stockType""PHYSICAL",
            "updatedAt""2021-06-01T10:34:51",
            "unit""UN"
        },
        {
            "skuId""11846",
            "lotId""01",
            "quantity"11,
            "locationId"50,
            "stockType""PHYSICAL",
            "updatedAt""2021-06-01T10:34:51",
            "unit""UN"
        }
    ],
    "Sucesso"true,
    "Erros": []
}

05. ASSUNTOS RELACIONADOS

        Não se aplica




<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>