Skip to main content

Produtos (SKUs)

Descrição​

API para o gerenciamento de produtos do embarcador.

Finalidade​

Fornecer uma interface unificada para a manipulação de informações dos produtos do embarcador.

Objetivos​

Permitir que sejam expostas operações para que o gerenciamento de produtos do embarcador seja flexível, permitindo que seja possível armazenar, editar, remover e visualizar os seus produtos por meio de uma API e também exportar dados por uma interface de relatórios

Stakeholders (envolvidos)​

  • Embarcadores
  • Suporte

Serviços Correlacionados (outras aplicações)​

  • API de cotação
    • Sincronizar os produtos do embarcador
  • API de relatórios
    • Gerar reports sobre os produtos do embarcador
  • API interna
    • Receber atualizações dos produtos vindas do painel e CMS
  • API externa
    • Consultar dados básicos(token e CNPJ) dos embarcadores para validação inicial
  • MongoDB Atlas
    • Banco de dados
  • NATS
    • Serviço de mensageria para atualização de dados do embarcador
  • Redis
    • Ratelimiter compartilhado entre aplicações (120 RPM)
  • MS Teams
    • Logger padrão para erros HTTP 500+

Response padrão em caso de erro (JSON)​

{
"error": ["string"],
"message": "string"
}

Rotas​

  • POST /products - Armazena uma lista de produtos

    • Query params

      NameValidationTypeDescription
      tokenrequiredstringToken de integração do embarcador
    • Payload (JSON):

      NameValidationTypeDescription
      productsrequired; max:1000arrayLista de produtos a serem salvos
       originoptionalstringOrigem da requisição (apenas para chamadas internas)
       skurequiredstringSKU do produto
       categoryrequired;positiveintCódigo da categoria do produto na Frete Rápido
       descriptionoptionalstringDescrição do produto
       volumesrequiredarrayVolumes que compõem o produto
        descriptionoptionalstringDetalhamento do volume
        tagoptionalstringTag para agrupamento ou identificação do volume
        amountrequirednumberQuantidade
        heightrequirednumberAltura (em m)
        widthrequirednumberLargura (em m)
        lengthrequirednumberComprimento (em m)
        weightrequirednumberPeso unitário (em kg)
        priceoptionalnumberValor unitário
        consolidaterequiredbooleanPode consolidar
        overlaidrequiredbooleanPode sobrepor
        rotaterequiredbooleanPode rotacionar
      {
      "products": [
      {
      "origin": "",
      "sku": "",
      "category": 0,
      "description": "",
      "volumes": [
      {
      "description": "",
      "tag": "",
      "amount": 0,
      "height": 0,
      "width": 0,
      "length": 0,
      "weight": 0,
      "price": 0,
      "consolidate": false,
      "overlaid": false,
      "rotate": false
      }
      ]
      }
      ]
      }
  • GET /products

    • Realiza a consulta dos produtos de um embarcador de acordo com os parâmetros informados via query params

    • Query params

      NameValidationTypeDescription
      tokenrequiredstringToken de integração do embarcador
      tagoptionalstringTag de detalhamento do volume
      skuoptionalstringSKU do produto para consulta
      onlyInvalidsoptionalbooleanListar apenas produtos inválidos
      descriptionoptionalstringBuscar pela descrição do produto
      categoryoptional;positiveintCategoria dos produtos
      pagerequired;min:1intPágina atual
      perPagerequired;max:100intQuantidade de registros por página
{
"total": 0,
"products": [
{
"shipperCnpj": "",
"sku": "",
"active": true,
"category": 0,
"categoryDescription": "Acessório para decoração (com vidro)"
"description": "",
"origin": "",
"updatedAt": "2021-08-27T19:22:20.564Z",
"volumes": [
{
"description": "VOLUME 1/2",
"tag": "",
"amount": 0,
"width": 0,
"height": 0,
"length": 0,
"weight": 0,
"price": 0,
"consolidate": false,
"overlaid": false,
"rotate": false
},
{
"description": "VOLUME 2/2",
"tag": "",
"amount": 0,
"width": 0,
"height": 0,
"length": 0,
"weight": 0,
"price": 0,
"consolidate": false,
"overlaid": false,
"rotate": false
}
]
}
]
}
  • GET /reports

    • Gera um relatório com todos os produtos utilizados pelo embarcador. O processamento é assíncrono e será disponiblizado via e-mail

    • Query params

      NameValidationTypeDescription
      tokenrequiredstringToken de integração do embarcador
      receiversrequiredstringLista dos destinatários separada por ponto e vírgula(;)
  • DELETE /products

    • Remove produtos de um embarcador de acordo com os parâmetros especificados nos query params

    • Atenção: Caso nenhum parâmetro seja especificado, TODOS os produtos serão excluídos

    • Query params

      NameValidationTypeDescription
      tokenrequiredstringToken de integração do embarcador
      tagoptionalstringTag dos produtos a serem removidos
      skusoptionalstringLista de SKUs separadas por ponto e vírgula(;)
      categoryoptional;positivenumberCategoria dos produtos a serem removidos
  • GET /categories

    • Retorna todas as categorias disponíveis para os produtos

    • Query params

      NameValidationTypeDescription
      tokenrequiredstringToken de integração do embarcador
    • Response

    [
    {
    "id": 0,
    "description": ""
    }
    ]