Logo Plataforma Yep
API REST · Plataforma Yep Documentação técnica para integrações homologadas

Produtos

Criação, atualização, consulta, vínculo, imagens e exclusão de produtos — com suporte a paginação determinística, seleção explícita de store_id, controle de limit e metadados opcionais de paginação.

REST JSON Bearer Token Novo em 2026

Visão geral

O endpoint /api2/products é uma rota integracional/administrativa. Ele não se limita a produtos ativos de vitrine — ele expõe o catálogo para sincronização com ERPs, PIMs, marketplaces e rotinas internas. A rota suporta tanto listagem paginada quanto busca individual por id ou sku.

200
Limit máximoPor página, quando especificado via limit.
20
Limit padrãoQuando limit é omitido ou inválido.
1+
Store explícitaDeterminístico em ambientes multi-store.
opt
Metadadostotal, last_page, has_next sob include_pagination=1.
POST/api2/products/

Criar produto configurável.

JSONCatálogo
{
  "attribute_set_id": 4,
  "type_id": "configurable",
  "visibility": 4,
  "store_id": 1,
  "sku": "novo_configuravel",
  "name": "novo configuravel",
  "description": "Descrição do produto configurável",
  "short_description": "Curta descrição",
  "price": 99.90,
  "status": 1,
  "tax_class_id": 2,
  "categories": [54, 59, 128],
  "website_id": [1],
  "additional_attributes": {
    "single_data": [
      {"key": "color", "value": "AZUL"},
      {"key": "ncm", "value": "5543"}
    ]
  },
  "configurable_attributes": [335]
}
POST/api2/products/

Criar produto simples.

{
  "type_id": "simple",
  "attribute_set_id": 4,
  "sku": "produto_teste",
  "store_id": 1,
  "name": "Produto teste",
  "price": "2000",
  "special_price": "150",
  "weight": "0.5",
  "status": 1,
  "visibility": 4,
  "categories": [54, 59, 128],
  "website_id": [1],
  "stock_data": {"qty": "99", "is_in_stock": 1}
}
PATCH/api2/products/

Atualizar produto.

{
  "type": "sku",
  "id": "novo_produto",
  "name": "Novo nome do produto"
}
O update aceita sucesso parcial quando parte do payload for ignorada por campos, atributos ou valores inválidos. A resposta detalha invalid_fields, invalid_attributes e invalid_attribute_values.
GET/api2/products/Atualizado

Consultar produto (individual) ou listar com paginação determinística.

?page=1&type=sku&id=novo_produto
POST/api2/products/vincular

Vincular simples a configurável.

{
  "type": "sku",
  "configurable_id": "novo_produto",
  "simples": "novo_configuravel"
}
DELETE/api2/products/

Excluir produto.

{
  "type": "sku",
  "id": "novo_produto"
}

Novidades do GET /api2/products

Três evoluções principais foram incorporadas ao endpoint de listagem, tornando-o mais previsível em ambientes multi-store e mais eficiente para sincronizações em lote.

5) Suporte a store_id opcional Novo

Agora é possível informar store_id para tornar o resultado explícito e determinístico em cenários multi-store. Sem esse parâmetro, a seleção de store segue a regra default do ambiente; com ele, a integração assume o controle.

store_id Opcional Novo
Inteiro. ID da store a ser usada como contexto da listagem. Recomendado em qualquer integração multi-store.

Exemplo

GET /api2/products?page=1&store_id=1

6) Metadados opcionais de paginação Novo

Foi adicionado suporte opcional a campos de paginação no corpo da resposta. Eles só são retornados quando for enviado include_pagination=1, evitando overhead em sincronizações que não precisam desses metadados.

include_pagination Opcional Novo
Flag boolean (1 habilita). Quando ativa, inclui na resposta os campos total, last_page e has_next.
total
Total de produtos elegíveis para o filtro atual (apenas com include_pagination=1).
last_page
Número da última página considerando o limit corrente.
has_next
Boolean indicando se existe próxima página. Útil para terminar loops de sincronização com segurança.

Exemplo

GET /api2/products?page=1&include_pagination=1

7) Suporte a limit opcional Novo

O endpoint aceita limit para definir a quantidade de produtos por página. Valores inválidos (não numéricos, arrays, negativos, zero ou acima do máximo) são normalizados para o padrão, garantindo que nenhuma requisição quebre por entrada inesperada.

RegraValorComportamento
Padrão20Aplicado quando limit é omitido.
Máximo200Teto rígido para proteger a rota em cenários de alta carga.
InválidoValores inválidos são normalizados para 20.

Exemplos

GET /api2/products?page=1&limit=50
GET /api2/products?page=1&limit=200

Formas de uso suportadas

Referência rápida das combinações testadas e homologadas para o GET /api2/products.

Listagem padrão GET /api2/products
Paginada GET /api2/products?page=2
Limite customizado GET /api2/products?page=1&limit=100
Busca por ID GET /api2/products?id=24404
Busca por SKU GET /api2/products?id=ABC-123&type=sku
Store explícita GET /api2/products?page=1&store_id=1
Com metadados GET /api2/products?page=1&limit=100&include_pagination=1

Recomendações para integração

Boas práticas consolidadas após a evolução do endpoint. Seguir essas diretrizes reduz retrabalho, evita paginação infinita e garante determinismo em ambientes multi-store.

Recomendado

  • Enviar sempre page explicitamente em rotinas de paginação.
  • Usar store_id sempre que a integração precisar de resultado determinístico em ambiente multi-store.
  • Preferir limit=50 ou limit=100 para sincronizações usuais.
  • Usar limit=200 apenas quando houver necessidade real de reduzir o número de chamadas.
  • Usar include_pagination=1 para controlar avanço de paginação com mais segurança (loop baseado em has_next).

Evitar

  • Enviar parâmetros como array em campos escalares — por exemplo id[] ou limit[].
  • Considerar que o endpoint retorna apenas produtos ativos de vitrine. Esta rota é integracional/administrativa.
  • Depender de ordenação implícita entre páginas em cenários multi-store sem store_id.

Dica de sincronização

Para sincronizações periódicas, combine store_id + limit=100 + include_pagination=1. Você obtém determinismo, throughput equilibrado e um critério de parada confiável (has_next=false).

Imagens de produto

POST/api2/products/imagem

Upload de imagem em base64.

{
  "type": "sku",
  "product_id": "novo_produto",
  "position": 1,
  "label": "Imagem",
  "file_name": "minha_imagem.png",
  "file_mime_type": "image/png",
  "file_content": "iVBORw0KGgoAAAANS...",
  "types": ["image"]
}
PATCH/api2/products/imagem

Atualizar metadados da imagem.

{
  "type": "sku",
  "product_id": "produtoteste",
  "image_id": "70449",
  "position": 999,
  "label": "Imagem atualizada",
  "types": ["image"]
}
DELETE/api2/products/imagem

Excluir imagem do produto.

{
  "type": "sku",
  "product_id": "produtoteste",
  "image_id": "70449"
}