Skip to content

Produtos

Gerencie o catálogo de produtos da loja.

Listar produtos

http
GET /api/v1/products

Query parameters

ParâmetroTipoDescrição
searchstringBusca por nome, SKU ou código de barras
brand_idintegerFiltrar por marca
category_idintegerFiltrar por categoria
activebooleanFiltrar por status ativo (true/false)
featuredbooleanFiltrar por produtos em destaque
typestringFiltrar por tipo: simple ou variable
skustringBusca exata por SKU
price_minnumberPreço mínimo
price_maxnumberPreço máximo
includestringIncluir relações: variants
sortstringCampo de ordenação (padrão: created_at)
directionstringDireção: asc ou desc (padrão: desc)
per_pageintegerItens por página (máx: 100, padrão: 25)

Exemplo

bash
curl -X GET "https://sualoja.com.br/api/v1/products?active=true&brand_id=1&include=variants" \
  -H "X-API-Key: SUA_CHAVE"

Resposta

json
{
  "data": [
    {
      "id": 1,
      "type": "variable",
      "name": "Camiseta Preta",
      "slug": "camiseta-preta",
      "sku": "CAM-001",
      "barcode": "7891234567890",
      "description": "Camiseta 100% algodão",
      "price": 79.90,
      "sale_price": 59.90,
      "promotion_price": null,
      "current_price": 59.90,
      "is_on_sale": true,
      "stock": 150,
      "weight": 0.3,
      "dimensions": {
        "length": 30,
        "width": 25,
        "height": 3
      },
      "active": true,
      "featured": false,
      "is_new": true,
      "brand": {
        "id": 1,
        "name": "Nike"
      },
      "categories": [
        { "id": 2, "name": "Camisetas" }
      ],
      "images": {
        "cover": "https://sualoja.com.br/storage/.../cover.webp",
        "gallery": [
          "https://sualoja.com.br/storage/.../foto1.webp",
          "https://sualoja.com.br/storage/.../foto2.webp"
        ]
      },
      "variants": [
        {
          "id": 10,
          "sku": "CAM-001-P",
          "price": null,
          "sale_price": null,
          "stock": 50,
          "attributes": { "Tamanho": "P", "Cor": "Preto" }
        }
      ],
      "seo": {
        "title": "Camiseta Preta | Minha Loja",
        "description": "Camiseta preta 100% algodão...",
        "keywords": "camiseta, preta, algodão"
      },
      "rating_avg": 4.5,
      "rating_count": 23,
      "created_at": "2026-01-15T10:30:00Z",
      "updated_at": "2026-03-10T14:22:00Z"
    }
  ],
  "meta": {
    "current_page": 1,
    "last_page": 5,
    "per_page": 25,
    "total": 120
  }
}

Buscar produto

http
GET /api/v1/products/{id}

Retorna um produto com todas as relações (variantes, categorias, marca, imagens).

Exemplo

bash
curl -X GET https://sualoja.com.br/api/v1/products/1 \
  -H "X-API-Key: SUA_CHAVE"

Criar produto

http
POST /api/v1/products

Campos

CampoTipoObrigatórioDescrição
namestringNome do produto
typestringsimple ou variable
pricenumberPreço (mínimo: 0)
sale_pricenumberPreço promocional
skustringSKU (deve ser único)
barcodestringCódigo de barras
descriptionstringDescrição do produto
stockintegerQuantidade em estoque
weightnumberPeso em kg
lengthnumberComprimento em cm
widthnumberLargura em cm
heightnumberAltura em cm
brand_idintegerID da marca
category_idsarrayArray de IDs de categorias
activebooleanAtivo na loja (padrão: true)
featuredbooleanProduto em destaque
is_newbooleanLançamento
seo_titlestringTítulo para SEO
seo_descriptionstringMeta description para SEO
seo_keywordsstringPalavras-chave para SEO

Exemplo

bash
curl -X POST https://sualoja.com.br/api/v1/products \
  -H "X-API-Key: SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Camiseta Azul",
    "type": "simple",
    "price": 89.90,
    "sku": "CAM-AZUL-001",
    "stock": 100,
    "brand_id": 1,
    "category_ids": [2, 5],
    "active": true,
    "featured": true
  }'

Resposta 201 Created

json
{
  "data": {
    "id": 2,
    "type": "simple",
    "name": "Camiseta Azul",
    "slug": "camiseta-azul",
    "sku": "CAM-AZUL-001",
    "price": 89.90,
    "stock": 100,
    "active": true,
    "featured": true,
    "brand": { "id": 1, "name": "Nike" },
    "categories": [
      { "id": 2, "name": "Camisetas" },
      { "id": 5, "name": "Lançamentos" }
    ]
  }
}

Atualizar produto

http
PUT /api/v1/products/{id}

Aceita os mesmos campos do POST, todos opcionais. Apenas os campos enviados serão atualizados.

Exemplo

bash
curl -X PUT https://sualoja.com.br/api/v1/products/2 \
  -H "X-API-Key: SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "price": 69.90,
    "sale_price": 49.90,
    "stock": 80
  }'

Excluir produto

http
DELETE /api/v1/products/{id}

Exemplo

bash
curl -X DELETE https://sualoja.com.br/api/v1/products/2 \
  -H "X-API-Key: SUA_CHAVE"

Resposta

json
{
  "message": "Produto removido."
}

Tipos de produto

TipoDescrição
simpleProduto com SKU único, sem variações
variableProduto com múltiplas variantes (cor, tamanho, etc.)

Para gerenciar variantes de um produto variable, veja Variantes.