AstroVueE-commerce

tema-raia — Astro Ecommerce Template

By ecomplus

Raia Commerce is a store template on the E-Com Plus platform, customized from ecomplus/store, aimed at shooting clubs and controlled goods retail scenarios. The README states that it includes brand configuration, homepage layout, custom blocks and extra pages, but the compliance integrations required for controlled goods sales are not yet implemented.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-13View source

What stands out

A quick read of the recorded project description.

01

Customized from ecomplus/store, aimed at shooting clubs and controlled goods retail scenarios

02

Includes brand configuration, homepage layout, custom blocks and extra pages

03

README explicitly states legal risk; compliance processes are not implemented within the platform

04

Eligibility query is described as an ideal state, not an implemented feature

05

Provides run and build commands, but an E-Com Plus store must be configured to display products

06

Known to-dos include the lack of a public API and unimplemented eligibility visibility rules

Template Details

Raia Commerce is a store template on the E-Com Plus platform, customized from ecomplus/store, aimed at shooting clubs and controlled goods retail scenarios. The README explicitly states that this is a demo template intended to showcase assumptions for this niche, not a production-ready solution. The template includes brand configuration, homepage layout, custom blocks and extra pages, and provides run and build commands.

The README specifically notes that this template involves legal risk. CR is issued by the Federal Police, firearms are registered in SIGMA, ammunition sales require SICOVEM, and as of January 1, 2025, SIGMA and CPF are required to complete a sale. E-Com Plus does not reimplement these processes; by design, the club's ERP serves as the source of truth for membership information, and the store queries eligibility before releasing controlled goods. However, the eligibility query is described as an "ideal state," not an implemented feature.

The template includes several customizations over the starter, including settings files, Tailwind configuration, layout files, homepage content, a new NichoTiroSection block, extra pages and image assets. The README also lists known to-dos, such as the lack of a public API, unimplemented eligibility visibility rules, and placeholder logos and icons.

AstroVueE-commerce

Is it right for your project?

Use Cases

  • As a demo template for a shooting club or controlled goods retail store
  • To showcase assumptions and design direction for this niche
  • As a starting point for developers customizing a store on the E-Com Plus platform
  • For internal evaluation or demonstration, not for direct launch

Suitable For

  • Shooting clubs or controlled goods retailers for demonstration or evaluation
  • Developers familiar with the E-Com Plus platform
  • Teams needing to customize a store template
  • Merchants who understand the relevant laws and regulations and handle compliance processes themselves

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Run npm i to install dependencies, npm run dev to start the development server, npm run build to build

  2. 2

    An E-Com Plus store must be configured via npm run setup, otherwise product display will be empty

  3. 3

    To update the platform version, follow the steps in the README to upgrade @cloudcommerce/* dependencies

  4. 4

    Replace placeholder content before use, such as settings files, images, extra pages and robots.txt

  5. 5

    The README notes that eligibility queries and compliance integrations are not yet implemented and must be handled separately

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not mean external services or third-party assets are free.

Must comply with when using

  • Free use, modification, commercial use and distribution of this version's code are permitted.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
  • The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.

Additional costs & items to verify

  • The README mentions Firebase integration; before enabling related dynamic features, configure it yourself and check Firebase quotas and charges.
  • Demo images, fonts, icons and other third-party assets must be checked against their respective licenses; the code's MIT license alone is not sufficient to determine this.
  • External services such as domain, hosting, database, payment or AI may incur additional charges.
  • The directory is remote data: when an E-Com Plus store is not configured via npm run setup, product display is empty and only the hero, banner and niche blocks render normally.
  • The ERP for this niche (sistemaclubedetiro.com.br) has no publicly documented API for membership and inventory; progress requires negotiation with partners.
  • The distinction between open display and controlled display is copy only: eligibility-based visibility rules are not yet implemented.
  • Logos and icons are placeholder bitmaps; the display font planned in brands.ts (Fira Sans Extra Condensed) is not applied, and the font must be added and --font-brand set.
  • Routes (/s/9x19, /p/produto-controlado, /p/retirada, etc.) only respond after the directory and corresponding pages exist.
  • Replace placeholder content before launch: logos, icons and banners in functions/ssr/public/img/uploads/ (current photos are from Unsplash, credits in CREDITOS.md).
  • functions/ssr/public/robots.txt currently blocks all crawling because this demo is noindex.
  • Configure storeId and the Firebase project in functions/*/config.json (npm run setup).
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

O catálogo é remoto: sem uma loja E-Com Plus configurada (`npm run setup`), as

Original README

- **Não há API pública documentada do ERP do nicho** (sistemaclubedetiro.com.br)

Original README

- A separação vitrine aberta × controlada é copy: a regra de visibilidade por

Original README

- Logo e ícone são wordmarks placeholder rasterizados. A fonte display prevista

Original README

- As rotas (`/s/9x19`, `/p/produto-controlado`, `/p/retirada`…) só respondem

Original README

- `functions/ssr/public/img/uploads/` — logo, ícone e banners (as fotos atuais

Original README

- `functions/ssr/public/robots.txt` — hoje bloqueia tudo, porque a demo é

Original README

- `functions/*/config.json` — `storeId` e projeto Firebase (`npm run setup`)

Original README
https://github.com/ecomplus/tema-raia/blob/main/LICENSEhttps://github.com/ecomplus/tema-raia/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-13. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
GitHub
Documentation and maintenance reference score
More documented · 85 / 100
Technologies
Astro · Vue
Website type
E-commerce
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2026-08-03
Screenshot last checked
2026-10-13

A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.

The catalog identifies Astro as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Review declaration: codex-user-requested-batch-review-20261017 · 2026-10-16

Inspect the recorded source material

SHA-256: 947d7a624abbd209f47dff4466659fc8e752ea5ff8a963cd26ee84a83f52f9ee

2026-10-13T01:27:48.633Z

Source file / repository
# Raia Commerce — loja demo do nicho de clubes de tiro

Cópia do starter [`ecomplus/store`](https://github.com/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`, objeto `raiaCommerce`
  (rota `/demo/raia-commerce`).
- Vitrine do nicho: `www.e-com.plus/src/components/clubes-de-tiro/vitrine/`.
- Referência de mercado: [guns.com](https://www.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.

## Leia isto antes de mexer

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.

## O que foi customizado em relação ao starter

| 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` |

## Critério das fotos

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 `TODO` na 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.

## Rodando

```bash
npm i
npm run dev     # http://localhost:3000
npm run build
```

O 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.

## Pendências conhecidas

- **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.

## Como atualizar a base da plataforma

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`](https://github.com/ecomplus/store) — é subir a versão das
dependências, exatamente como as lojas em produção fazem: a
[tiasonia](https://www.tiasonia.com.br) 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`):

```bash
# 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`](https://github.com/ecomplus/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/`.

## Este repositório é um template

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, contato
- `functions/ssr/public/img/uploads/` — logo, ícone e banners (as fotos atuais
  vêm do Unsplash; créditos em `CREDITOS.md`)
- `functions/ssr/content/extra-pages/` — contato, trocas e termos
- `functions/ssr/public/robots.txt` — hoje bloqueia tudo, porque a demo é
  `noindex`
- `functions/*/config.json` — `storeId` e projeto Firebase (`npm run setup`)

> **Demo publicada:** [tema-raia.web.app](https://tema-raia.web.app) — `noindex`, com
> catálogo compartilhado de demonstração.

---

Documentação do starter: [SETUP.pt-BR.md](./SETUP.pt-BR.md) ·
[Cloud Commerce](https://github.com/ecomplus/cloud-commerce)
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.