Cópia do starter ecomplus/store
tematizada para clubes de tiro e varejo de produto controlado. Serve de
vitrine navegável para a hipótese de nicho que hoje só existe como demo
noindex no site institucional.
- Marca e copy:
www.e-com.plus/src/config/brands.ts, objetoraiaCommerce(rota/demo/raia-commerce). - Vitrine do nicho:
www.e-com.plus/src/components/clubes-de-tiro/vitrine/. - Referência de mercado: guns.com — usada só como referência de UX de catálogo técnico (faceta por calibre, tipo de ação, fabricante). O modelo comercial é outro: lá é varejo americano com rede FFL, aqui é a loja do clube sob norma brasileira.
Diferente das outras duas variantes, aqui existe risco legal para o lojista, não só risco de marketing.
- CR é emitido pela Polícia Federal, a arma é registrada no SIGMA (Exército) e a venda de munição passa pelo SICOVEM, que desde 01/01/2025 exige SIGMA e CPF antes de concluir a venda.
- A e-com.plus não reimplementa nada disso. O desenho é: o ERP do clube é a fonte da verdade do sócio (CR, categoria, acervo) e a loja consulta a elegibilidade antes de liberar produto controlado.
- O registro da venda no SICOVEM continua sendo etapa do lojista. A integração que existe hoje no ERP do nicho passa por extensão de navegador com conferência do operador, não por API — o pedido online não fecha o ciclo sozinho, e a copy foi escrita para não prometer que fecha.
- A consulta de elegibilidade é estado ideal, não recurso disponível. Por isso a seção de nicho traz um aviso visível ao leitor, além do comentário no código: um clube que veja esta demo não pode sair achando que já está pronto.
- No site institucional esta variante existe só como demo
noindex, sem página de segmento pública — armas e munição são categoria restrita no Google Ads e uma página indexada no domínio pode afetar a conta de anúncios.
Nenhum número de cota, habitualidade ou calibre permitido aparece na copy: são definidos por norma, mudam, e errar na frente de quem domina o assunto custa credibilidade.
| Arquivo | O que mudou |
|---|---|
functions/ssr/content/settings.json |
Nome, descrição, domínio, logo/ícone, primaryColor azul-aço + secondaryColor laranja de segurança, 5% no Pix, 6x sem juros, frete grátis (itens não controlados) a partir de R$ 299 |
functions/ssr/tailwind.config.js |
Escala neutra aço/grafite, cantos quase retos |
functions/ssr/content/layout.json |
Pitch bar (retirada no clube, frete, aviso de produto controlado), títulos das listas do rodapé, ogImage |
functions/ssr/content/pages/home.json |
Hero de 3 slides, 3 vitrines de produto, grade de 3 banners e a seção de nicho |
functions/ssr/src/sections/NichoTiroSection.astro |
Novo. Vitrine aberta × controlada, elegibilidade lida do ERP (com aviso de demonstração), facetas por calibre e retirada no clube |
functions/ssr/src/sections/_Sections.astro |
Registro da seção customizada c:nicho-tiro |
functions/ssr/content/extra-pages/ |
Contato, trocas (regra própria para item controlado) e termos — os dois últimos com pendência jurídica explícita |
functions/ssr/public/img/uploads/ |
Banners do Unsplash; imagens de demo do starter removidas. Créditos em CREDITOS.md |
Herdado da curadoria já feita em brands.ts: só imagens com disciplina de
segurança visível (cano apontado para o alvo, proteção auricular e ocular).
Foram descartadas, durante esta montagem:
- uma foto de fuzil AR em mata — no Brasil lê como uso restrito, e o contexto de caça não é o do clube;
- um alvo de silhueta humana com a marca de um estande americano legível — o
mesmo problema que já estava anotado como
TODOna foto de loja do site.
Foto de cano apontado para a câmera não é descartada por ser "agressiva": é descartada porque, para este público, sinaliza que não conhecemos a cultura do nicho.
npm i
npm run dev # http://localhost:3000
npm run buildO catálogo é remoto: sem uma loja E-Com Plus configurada (npm run setup), as
vitrines de produto vêm vazias — o hero, os banners e a seção de nicho
renderizam normalmente.
- Não há API pública documentada do ERP do nicho (sistemaclubedetiro.com.br) para sócio e acervo. É o que decide se toda esta arquitetura fecha — precisa ser acertado com o parceiro antes de virar roadmap.
- A separação vitrine aberta × controlada é copy: a regra de visibilidade por elegibilidade não está implementada.
- Logo e ícone são wordmarks placeholder rasterizados. A fonte display prevista
em
brands.ts(Fira Sans Extra Condensed) não foi aplicada — exige adicionar a fonte e apontar--font-brand. - As rotas (
/s/9x19,/p/produto-controlado,/p/retirada…) só respondem depois que o catálogo e as páginas correspondentes existirem.
Este repositório é uma casca fina. O storefront, os componentes e a lógica
de loja moram nos pacotes @cloudcommerce/*, não aqui. Atualizar o tema para
uma versão nova da plataforma não é fazer merge com o starter
ecomplus/store — é subir a versão das
dependências, exatamente como as lojas em produção fazem: a
tiasonia tem mais de 260 commits Update to v
no próprio repositório e nenhum merge com o starter.
Todos os pacotes @cloudcommerce/* andam na mesma versão, na raiz e em cada
grupo de functions (ssr, many, with-apps):
# 1. ver a versão mais recente e o changelog
npm view @cloudcommerce/cli version
# https://github.com/ecomplus/cloud-commerce/releases
V=2.61.4 # troque pela versão alvo
# 2. raiz
npm i -D @cloudcommerce/cli@$V @cloudcommerce/eslint@$V
# 3. cada grupo de functions
(cd functions/ssr && npm i \
@cloudcommerce/api@$V @cloudcommerce/firebase@$V @cloudcommerce/ssr@$V \
@cloudcommerce/i18n@$V @cloudcommerce/storefront@$V @cloudcommerce/types@$V)
(cd functions/many && npm i \
@cloudcommerce/feeds@$V @cloudcommerce/firebase@$V @cloudcommerce/passport@$V)
(cd functions/with-apps && npm i \
@cloudcommerce/events@$V @cloudcommerce/firebase@$V @cloudcommerce/modules@$V)
# 4. validar antes de commitar
npm run build
# 5. commitar no padrão das lojas em produção
git commit -am "Update to v$V"Se o build quebrar depois de atualizar, a correção pertence ao
cloud-commerce, não a este
repositório. Aqui só entra o que é do tema: functions/ssr/src/,
functions/ssr/content/ e functions/ssr/public/.
Use "Use this template" no GitHub para começar uma loja a partir deste tema. O repositório gerado é independente: não existe upstream para puxar, e a manutenção segue o fluxo de versão acima.
Antes de ir ao ar, troque o que é placeholder:
functions/ssr/content/settings.json— nome, domínio, logo, cores, contatofunctions/ssr/public/img/uploads/— logo, ícone e banners (as fotos atuais vêm do Unsplash; créditos emCREDITOS.md)functions/ssr/content/extra-pages/— contato, trocas e termosfunctions/ssr/public/robots.txt— hoje bloqueia tudo, porque a demo énoindexfunctions/*/config.json—storeIde projeto Firebase (npm run setup)
Demo publicada: tema-raia.web.app —
noindex, com catálogo compartilhado de demonstração.
Documentação do starter: SETUP.pt-BR.md · Cloud Commerce