Design System

Product Card

Card de produto usado no Consultant Catalog (vitrine pública) e no PDV (consultora/vendedora). Exibe imagem com hover, nome, preço, tipo de entrega e botão de adicionar. Componente custom do SYSGO.

import { ProductCard } from "@/components/product-card";

<ProductCard
  product={{
    id: "1",
    name: "Perfume Ana Autentic 50ml",
    slug: "perfume-ana-autentic-50ml",
    image_url: "/products/perfume.jpg",
    retail_price: 189.90,
    delivery_types: ["pronta_entrega"],
  }}
  consultantSlug="ana-paula-carvalho"
/>

Minimal — Card limpo

Variante minimal sem borda, imagem com cantos arredondados, preço com formatação split (R$ menor, valor grande, decimais menor), badge FULL e parcelas. Ideal para vitrines com fundo claro.

Alioth Sabonete Líquido 250mlAlioth Sabonete Líquido 250ml

Alioth

Sabonete Líquido 250ml

R$79,90

FULL

ou 12x de R$ 7,98 no cartão

Merak Body Splash 200mlMerak Body Splash 200ml

Merak

Body Splash 200ml

R$79,90

Local

ou 12x de R$ 7,98 no cartão

Catálogo — Tipos de entrega

Card do catálogo público com duas modalidades: Entrega Local (estoque da consultora) e Full (envio direto pela marca). Hover troca a imagem.

Phecda Body Splash 200mlPhecda Body Splash 200ml

Phecda

Body Splash 200ml

Fragrância fresca e marcante, com notas cítricas e aromáticas que proporcionam energia e elegância.

Entrega Local · 5 un.

R$ 69,90

Megrez Body Splash 200mlMegrez Body Splash 200ml

Megrez

Body Splash 200ml

Fragrância doce e envolvente, com notas gourmand que trazem aconchego e sofisticação.

Full

R$ 69,90

PDV — Card com lucro

Usado no PDV da consultora, vendedora e admin. Mostra preço de venda e lucro estimado com percentual.

Phecda Body Splash 200ml

Phecda

Body Splash 200ml

Fragrância fresca e marcante, com notas cítricas e aromáticas que proporcionam energia e elegância.

R$ 69,90

R$ 20,97 (30%)
Megrez Body Splash 200ml

Megrez

Body Splash 200ml

Fragrância doce e envolvente, com notas gourmand que trazem aconchego e sofisticação.

R$ 69,90

R$ 20,97 (30%)

Estrutura do componente

ElementoClasse / PropFunção
Containerw-full rounded-2xl borderCard com borda leve e cantos arredondados
Favoritoabsolute top-3 right-3 size-8Botão de favoritar com backdrop blur
Imagemaspect-square object-cover / hover trocaImagem preenche todo o espaço (object-cover) com transição de hover (500ms ease-out)
Linhatext-[11px] text-muted-foreground/60Nome da linha (Alioth, Mizar, Vega)
Nometext-[15px] font-semibold line-clamp-2Nome do produto com truncamento em 2 linhas
Descriçãotext-xs line-clamp-2Descrição curta com truncamento em 2 linhas
Avaliação5 estrelas amber-400Rating com estrelas (apenas no catálogo)
Entregaemerald (PE) / violet (AA)Badge de tipo de entrega com estoque opcional
Preçotext-lg font-semibold text-primaryPreço de varejo na cor primária
Lucrobg-success/10 text-successBadge de lucro com percentual (apenas no PDV)
Adicionarh-9 w-full rounded-lg bg-primaryBotão de adicionar ao carrinho

Variantes

Duas variantes do card dependendo do contexto de uso.

VarianteUsado emDiferenças
ProductCardConsultant Catalog (vitrine pública)Favorito, hover imagem, rating, badge de entrega
ProductCardWithProfitPDV (consultora, vendedora, admin)Sem favorito, sem rating, com lucro e percentual
ProductCardMinimalVitrine / Landing pageSem borda, imagem arredondada, preço split, badge FULL, parcelas, hover imagem

API Reference

PropTypeDefaultDescrição
productProductObjeto do produto com id, name, slug, image_url, retail_price, delivery_types
consultantSlugstringSlug da consultora para construir a URL do produto
prioritybooleanfalseSe true, usa priority loading na imagem (LCP)
showProfitbooleanfalseExibir lucro estimado (variante PDV)
isFavoritedbooleanfalseEstado do botão de favoritar
onFavoriteToggle() => voidCallback ao clicar no botão de favoritar