1 estrella en GitHub = 1 componente nuevo.

Dar una estrella
Plantillas completas

Tienda e-commerce

Una tienda online completa y accesible: home, catálogo, ficha de producto, carrito y checkout.

Nova Store es una plantilla e-commerce lista para producción en Astro. Cinco páginas comparten un carrito que se guarda en el navegador, el catálogo filtra al instante sin backend y el checkout valida, calcula envío, impuestos y códigos promocionales y confirma el pedido. Cada bloque es un componente de la librería: puedes usar la tienda entera o solo las piezas que necesites.

4 páginas 32 componentes 0 deps

Vista previa en vivo

Páginas

Cada página es una vista previa real e interactiva: el carrito se comparte entre todas.

Home de la tienda

Hero con producto destacado, garantías, categorías, más vendidos, banner editorial, novedades y newsletter.

src/pages/index.astro

Página de categoría

Catálogo con migas de pan, chips de categoría, filtros fijos, contador de resultados y ordenación.

src/pages/shop.astro

Ficha de producto

Galería, bloque de compra con color, talla y cantidad, resumen de reseñas y productos relacionados.

src/pages/product/[slug].astro

Checkout

Checkout en modo foco con pasos, contacto, entrega, envío, pago y resumen del pedido en vivo.

src/pages/checkout.astro

Qué incluye

  • Carrito persistente con panel lateral y contador en vivo
  • Filtros instantáneos: categoría, precio, color, valoración y stock
  • Checkout con envío, impuestos y códigos promocionales
  • Sin dependencias en runtime, WCAG AA y mobile-first
  • Ilustraciones de producto incluidas: no necesitas imágenes
  • Modo claro y oscuro con selector
  • Avisos en vivo: toasts del carrito, cuenta atrás, stock bajo y compras recientes

Instalar y usar

  1. Instala el paquete

    bash
    npm install astro-component-kit
    npm install astro-component-kit
  2. Crea una página de Astro por cada página de la plantilla

    src/pages/index.astro

    astro
    ---
    import { StoreHomePage } from 'astro-component-kit/templates/ecommerce';
    ---
    
    <StoreHomePage />
    --- import { StoreHomePage } from 'astro-component-kit/templates/ecommerce'; --- <StoreHomePage />

    src/pages/shop.astro

    astro
    ---
    import { StoreCategoryPage } from 'astro-component-kit/templates/ecommerce';
    ---
    
    <!-- Category links use /shop/?category=audio -->
    <StoreCategoryPage />
    --- import { StoreCategoryPage } from 'astro-component-kit/templates/ecommerce'; --- <!-- Category links use /shop/?category=audio --> <StoreCategoryPage />

    src/pages/product/[slug].astro

    astro
    ---
    import { StoreProductPage, demoStore } from 'astro-component-kit/templates/ecommerce';
    
    export function getStaticPaths() {
      return demoStore.products.map((p) => ({ params: { slug: p.slug } }));
    }
    ---
    
    <StoreProductPage slug={Astro.params.slug} />
    --- import { StoreProductPage, demoStore } from 'astro-component-kit/templates/ecommerce'; export function getStaticPaths() { return demoStore.products.map((p) => ({ params: { slug: p.slug } })); } --- <StoreProductPage slug={Astro.params.slug} />

    src/pages/checkout.astro

    astro
    ---
    import { StoreCheckoutPage } from 'astro-component-kit/templates/ecommerce';
    ---
    
    <StoreCheckoutPage />
    --- import { StoreCheckoutPage } from 'astro-component-kit/templates/ecommerce'; --- <StoreCheckoutPage />
  3. Usa tu propio catálogo, moneda y rutas

    Parte de la tienda demo y reemplaza lo que necesites. Los productos aceptan una imagen real o una de las 16 ilustraciones incluidas.

    astro
    ---
    // src/pages/index.astro — same store + routes on every page
    import { StoreHomePage, demoStore, type StoreConfig } from 'astro-component-kit/templates/ecommerce';
    
    const store: StoreConfig = {
      ...demoStore,
      name: 'My Shop',
      currency: 'EUR',
      locale: 'es-ES',
      cartKey: 'my-shop-cart',
      products: [
        {
          slug: 'linen-shirt',
          name: 'Linen Shirt',
          price: 59,
          category: 'apparel',
          image: '/products/linen-shirt.webp', // or icon: 'shirt'
          sizes: ['S', 'M', 'L'],
          rating: 4.7,
          reviews: 40,
        },
      ],
    };
    ---
    
    <StoreHomePage store={store} routes={{ home: '/', shop: '/shop/', product: '/product/', checkout: '/checkout/' }} />
    --- // src/pages/index.astro — same store + routes on every page import { StoreHomePage, demoStore, type StoreConfig } from 'astro-component-kit/templates/ecommerce'; const store: StoreConfig = { ...demoStore, name: 'My Shop', currency: 'EUR', locale: 'es-ES', cartKey: 'my-shop-cart', products: [ { slug: 'linen-shirt', name: 'Linen Shirt', price: 59, category: 'apparel', image: '/products/linen-shirt.webp', // or icon: 'shirt' sizes: ['S', 'M', 'L'], rating: 4.7, reviews: 40, }, ], }; --- <StoreHomePage store={store} routes={{ home: '/', shop: '/shop/', product: '/product/', checkout: '/checkout/' }} />

Componentes e-commerce nuevos 22

Creados para esta plantilla y disponibles por separado en la librería.

Componente

Promo Bar

Barra de anuncios con mensajes rotativos, pausa al pasar el ratón y botón de cerrar recordado durante la sesión.

Componente

Cart Drawer

Carrito lateral con cantidades, eliminar, progreso hacia envío gratis y subtotal. Modal accesible con foco atrapado.

Componente

Trust Badges

Fila de garantías de la tienda (envío, devoluciones, pago seguro y soporte) en estilo tarjeta, en línea o dividido.

Componente

Store Product Card

Tarjeta de producto con ilustración o foto, insignia, valoración, colores, precio anterior, favoritos y botón de añadir al carrito.

Componente

Product Grid

Cuadrícula responsiva de tarjetas de producto con estado vacío; es el objetivo de FilterSidebar y ProductToolbar.

Componente

Filter Sidebar

Filtros de categoría, precio, color, valoración y stock que filtran y ordenan una ProductGrid al instante, sincronizados con la URL.

Componente

Product Toolbar

Cabecera de catálogo con contador de resultados en vivo y selector de orden (ModernSelect) conectado a FilterSidebar.

Componente

Product Gallery

Visor de imágenes de producto con escenario grande y miniaturas navegables con teclado; genera vistas ilustradas si no hay fotos.

Componente

Variant Picker

Muestras de color o tallas como grupo de radios nativo que mantiene sincronizado el botón de añadir al carrito.

Componente

Product Buy Box

Bloque de compra de la ficha: precio, ahorro, color y talla, cantidad, añadir al carrito, comprar ya y detalles desplegables.

Componente

Order Summary

Resumen lateral del checkout con productos, códigos promocionales, envío, impuestos y total en vivo según el método de envío.

Componente

Checkout Form

Checkout en una página (contacto, entrega, envío y pago) con autocompletado, validación y confirmación animada.

Componente

Product Media

Imagen de producto: una foto real o un fondo tintado con una de 16 ilustraciones de producto a línea.

Componente

Product Rating

Valoración con estrellas de solo lectura con relleno fraccionario, valor y número de reseñas, con una única etiqueta accesible.

Componente

Cart Toast

Notificaciones apiladas en vivo: «Añadido al carrito» con acción para ver el carrito y cualquier aviso propio enviado con el evento ack:notify.

Componente

Countdown Banner

Cuenta atrás en vivo para ofertas con días, horas, minutos y segundos, CTA y estado finalizado; fecha fija o plazo por visitante.

Componente

Stock Indicator

Aviso de stock bajo con barra de nivel y contador en vivo de personas viendo el producto.

Componente

Cart Store

Estado del carrito sin frameworks compartido por todos los componentes de tienda: persistencia en localStorage, sincronización entre pestañas, botones de añadir y formato de precios.

Componentes de la librería reutilizados

Componentes existentes con los que se monta la plantilla.