Atualizando parcialmente um produto

O método de requisição PATCH aplica atualizações parciais em um produto, permitindo modificações mais flexíveis.

Para alterações de dados de um produto, como imagem, categoria e atributos utilize o endpoint que Atualiza parcialmente um produto.

Parâmetros para inserção:

  • identificador - Identificador do produto.
  • tipoIdentificador - Tipo de identificador;

Request body:

{
  "sku": "boiilnha",
  "dataCadastro": "2025-05-20T12:21:45.797Z",
  "idPaiExterno": "string",
  "idVinculoExterno": "string",
  "nome": "string",
  "nomeProdutoPai": "string",
  "exibirMatrizAtributos": "Sim",
  "contraProposta": true,
  "fabricante": "string",
  "autor": "string",
  "editora": "string",
  "colecao": "string",
  "genero": "string",
  "precoCusto": 0,
  "precoDe": 0,
  "precoPor": 0,
  "fatorMultiplicadorPreco": 0,
  "prazoEntrega": 0,
  "valido": true,
  "exibirSite": true,
  "freteGratis": "Sempre",
  "trocaGratis": true,
  "peso": 0,
  "altura": 0,
  "comprimento": 0,
  "largura": 0,
  "garantia": 0,
  "isTelevendas": true,
  "ean": "string",
  "localizacaoEstoque": "string",
  "listaAtacado": [
    {
      "precoPor": 0,
      "quantidade": 0
    }
  ],
  "estoque": [
    {
      "estoqueFisico": 0,
      "estoqueReservado": 0,
      "centroDistribuicaoId": 0,
      "alertaEstoque": 0
    }
  ],
  "atributos": [
    {
      "nome": "string",
      "valor": "string",
      "exibir": true
    }
  ],
  "quantidadeMaximaCompraUnidade": 0,
  "quantidadeMinimaCompraUnidade": 0,
  "condicao": "string",
  "urlVideo": "string",
  "spot": true,
  "paginaProduto": true,
  "marketplace": true,
  "somenteParceiros": true,
  "buyBox": true,
  "prazoValidade": 0,
  "consumo": {
    "quantidadeDias": 0,
    "enviarEmail": true
  },
  "categorias": {
    "categoriaPrincipalId": 0,
    "listaCategoriaId": [
      0
    ]
  },
  "informacoes": [
    {
      "titulo": "string",
      "texto": "string",
      "exibirSite": true,
      "tipoInformacao": "string"
    }
  ],
  "imagens": [
    {
      "base64": "string",
      "formato": "string",
      "exibirMiniatura": true,
      "estampa": true,
      "ordem": 0
    }
  ],
  "seo": {
    "tagCanonical": "string",
    "title": "string",
    "metaTags": [
      {
        "content": "string",
        "httpEquiv": "string",
        "name": "string",
        "scheme": "string"
      }
    ]
  }
}

📘

Para que as atualizações parciais reflitam de acordo no produto, atenção aos seguintes cenários

Cenário 1: Não é possível enviar um campo com valor null, nesse caso é preciso excluir o campo da requisição. Sendo assim, se o campo não for enviado será mantido o valor existente no banco de dados.

Cenário 2: Se for enviado um campo vazio, todos os itens/valores existentes no banco serão excluídos.

Cenário 3: Se for enviado um campo com valores, as novas informações serão salvas. Os valores que estiverem no banco e não estiverem no array, serão excluídos.

Exemplo: SKU 123

Atributos salvos no banco: cor azul, tamanho M e gênero masculino

O produto foi atualizado via PATCH com os valores cor azul e tamanho M, o resultado disso será que o gênero masculino será deletado.

Os cenários se aplicam para todos os campos presentes no corpo do endpoint. Logo:

SKU: Se não for enviado, será mantido o valor existente no banco.

Data Cadastro: Se não for enviado, será mantido o valor existente no banco.

Categorias:

Cenário 1: Se os campos não forem enviados, serão mantidos os valores que estão no banco.

Cenário 2: Se for enviado um array vazio, serão excluídos todos os itens.

Cenário 3: Se for enviado um array com valores, serão salvos os valores recebidos no array. Já os que estiverem no banco e não estiverem no array serão excluídos.

Informações:

Cenário 1: Se os campos não forem enviados, serão mantidos os valores que estão no banco.

Cenário 2: Se for enviado um array vazio, serão excluídos todos os itens.

Cenário 3: Se for enviado um array com valores, serão salvos os valores recebidos no array. Já os que estiverem no banco e não estiverem no array serão excluídos.

Imagens:

Cenário 1: Se os campos não forem enviados, serão mantidos os valores que estão no banco.

Cenário 2: Se for enviado um array vazio, serão excluídos todos os itens.

Cenário 3: Se for enviado um array _com valores, serão salvos os valores recebidos no _array. Já os que estiverem no banco e não estiverem no array serão excluídos.

SEO:

Cenário 1: Se os campos não forem enviados, serão mantidos os valores que estão no banco.

Cenário 2: Se for enviado um objeto com os valores tagCanonical e title preenchidos, serão atualizados pelos recebidos na requisição.

Cenário 2.1: Se o campo metaTags não for enviado, serão mantidas as metaTags que existentes no banco.

Cenário 2.2: Se o campo metaTags for um array vazio, serão excluídos todos os itens.

Cenário 2.3: Se o campo metaTags for um array com valores, serão salvos os valores recebidos no array . Já os que estiverem no banco e não estiverem no array, serão excluídos.