apps/storefront-template

Do clone ao storefront
em 1 dia

Skeleton Next.js 15 consumindo as 8 libs. Fork, configure 3 env vars, customize logo + cor - está no ar.

O que vem dentro

Tudo que uma loja real precisa, pronto para customizar.

Home

Hero carousel + featured products + CTA

Listagem com filtros facetados

Filtros por categoria, brand, preço, tag

Detalhe de produto

Galeria, variantes, preço por lista, add to cart

Carrinho persistente

UUID + expiry, sync com Odoo quando logado

Wishlist completa

FAB, drawer, badge no header, sync logado

Auth Supabase

Login email/senha + social, recuperação, perfil

Checkout completo

Endereços, fretes, métodos pagamento, NF-e

Dashboard cliente

Pedidos, downloads, endereços, dados pessoais

Getting started

5 passos do clone à customização.

1

Clone e instale

Fork o monorepo, instale dependências com pnpm. Tudo pronto para typecheck e tests verdes.

git clone git@github.com:kmee/k-shop-libs.git
cd k-shop-libs
pnpm install
pnpm typecheck    # verde
pnpm test         # verde
2

Configure o template

Edite .env.local com URLs do seu Odoo, Elasticsearch e Supabase. Sem segredo, são 3 backends.

# Odoo / Shopinvader
NEXT_PUBLIC_ODOO_BASE_URL=https://shop.example.com/shop

# Elasticsearch (server-side)
ELASTICSEARCH_URL=https://elastic.example.com
ELASTICSEARCH_API_KEY=YOUR-KEY
ELASTICSEARCH_PRODUCT_INDEX=products

# Supabase
NEXT_PUBLIC_SUPABASE_URL=https://YOUR.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=YOUR-ANON-KEY
3

Suba o dev server

Hero carousel default, listagem de featured products do seu Elasticsearch, header com search/wishlist/cart, footer.

pnpm --filter storefront-template dev
# -> http://localhost:3000
4

Customize o branding

Logo, cores via tokens HSL, footer. Toda a UI segue automaticamente.

/* app/globals.css */
@import "@kmee/shop-ui/tokens.css";

@layer base {
  :root {
    --primary: 25 100% 50%;          /* sua cor */
    --primary-foreground: 0 0% 100%;
    --radius: 0.75rem;
  }
}
5

Customize páginas e fluxos

Sobrescreva páginas que precisar. Adicione novos componentes consumindo os providers do shop-react.

// app/produto-customizado/page.tsx
"use client"
import { useCart } from "@kmee/shop-react"
import { ProductCard } from "@kmee/shop-ui"

export default function Page() {
  const { addToCart } = useCart()
  // ...
}

Quão fundo dá pra customizar

Do branding superficial ao adapter customizado.

Branding visual

1 dia

Cores, fonte, raio, logo, footer. Sem tocar em código TypeScript - só CSS vars.

Conteúdo das páginas

2-5 dias

Textos, imagens, banners do hero, links do footer, FAQ. JSX direto, fácil de mexer.

Novos fluxos de checkout

1-4 semanas

Cotação B2B, aprovação por alçada, pagamento customizado. Componha com providers existentes.

Integração com gateway/ERP terceiro

1-3 semanas

Adapter customizado plugando como subclass de OdooHttpClient ou ProductService.

Modo offline para avaliar

Sem backend real? Mockando, dá pra ver a UI rodando.

Se você quiser apenas avaliar a UI sem ter Odoo + Elasticsearch + Supabase configurados, é possível mockar os adapters retornando dados estáticos. O storefront-template tem fallback com FALLBACK_SLIDES e fake products - abra app/page.tsx e lib/server.ts para o ponto de entrada do mock.

Para avaliação séria com dados reais, sugerimos colar uma instância Odoo de demo da KMEE. Pergunte no diagnóstico.

Quer um template white-label customizado?

A KMEE entrega o template já com sua identidade visual, fluxos B2B/B2C ajustados e integração com seu Odoo. Você recebe pronto para deploy.