1 звезда на GitHub = 1 новый компонент.

Поставить звезду
Готовые шаблоны

Интернет-магазин

Полноценный доступный интернет-магазин: главная, каталог, карточка товара, корзина и оформление заказа.

Nova Store — готовый к продакшену шаблон интернет-магазина на Astro. Пять страниц используют общую корзину, которая сохраняется в браузере, каталог фильтруется мгновенно без бэкенда, а оформление заказа проверяет данные, считает доставку, налог и промокоды и подтверждает заказ. Каждый блок — компонент библиотеки: используйте весь магазин или только нужные части.

4 страниц 32 компонентов 0 deps

Живой просмотр

Страницы

Каждая страница — настоящий интерактивный предпросмотр, корзина общая для всех.

Главная магазина

Hero с избранным товаром, гарантии, категории, хиты продаж, баннер, новинки и рассылка.

src/pages/index.astro

Страница категории

Каталог с хлебными крошками, чипами категорий, фильтрами, счётчиком результатов и сортировкой.

src/pages/shop.astro

Карточка товара

Галерея, блок покупки с выбором цвета, размера и количества, отзывы и похожие товары.

src/pages/product/[slug].astro

Оформление заказа

Оформление заказа в режиме фокуса: шаги, контакты, доставка, оплата и итог заказа.

src/pages/checkout.astro

Что внутри

  • Сохраняемая корзина с панелью и живым счётчиком
  • Мгновенные фильтры: категория, цена, цвет, рейтинг, наличие
  • Оформление заказа с доставкой, налогом и промокодами
  • Без runtime-зависимостей, WCAG AA, mobile-first
  • Иллюстрации товаров в комплекте — изображения не нужны
  • Светлая и тёмная тема с переключателем
  • Живые уведомления: корзина, обратный отсчёт, малый остаток и недавние покупки

Установка и использование

  1. Установите пакет

    bash
    npm install astro-component-kit
    npm install astro-component-kit
  2. Создайте по странице Astro для каждой страницы шаблона

    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. Подключите свой каталог, валюту и маршруты

    Возьмите демо-магазин за основу и замените нужное. Товары принимают реальное фото или одну из 16 встроенных иллюстраций.

    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/' }} />

Новые e-commerce компоненты 22

Созданы для этого шаблона и доступны в библиотеке по отдельности.

Компонент

Promo Bar

Тонкая панель объявлений с ротацией сообщений, паузой при наведении и кнопкой закрытия.

Компонент

Cart Drawer

Выезжающая корзина с количеством, удалением, прогрессом до бесплатной доставки и итогом. Доступное модальное окно.

Компонент

Store Hero

Hero магазина с градиентным заголовком, кнопками, цифрами доверия и парящим избранным товаром.

Компонент

Trust Badges

Ряд гарантий магазина — доставка, возврат, безопасная оплата и поддержка — в виде карточек, строки или с разделителями.

Компонент

Store Product Card

Карточка товара с иллюстрацией или фото, бейджем, рейтингом, цветами, старой ценой, избранным и кнопкой «в корзину».

Компонент

Product Grid

Адаптивная сетка карточек товаров с пустым состоянием — цель для FilterSidebar и ProductToolbar.

Компонент

Filter Sidebar

Фильтры по категории, цене, цвету, рейтингу и наличию, мгновенно фильтрующие и сортирующие ProductGrid с синхронизацией URL.

Компонент

Product Toolbar

Заголовок каталога с живым счётчиком результатов и сортировкой (ModernSelect), связанной с FilterSidebar.

Компонент

Product Gallery

Просмотр изображений товара с большим окном и миниатюрами с клавиатурной навигацией; без фото создаёт иллюстрированные ракурсы.

Компонент

Variant Picker

Выбор цвета или размера как нативная группа радиокнопок, синхронизированная с кнопкой «в корзину».

Компонент

Product Buy Box

Блок покупки на странице товара: цена, скидка, цвет и размер, количество, «в корзину», «купить сейчас» и раскрывающиеся детали.

Компонент

Order Summary

Боковая сводка заказа с товарами, промокодами, доставкой, налогом и живым итогом по выбранному способу доставки.

Компонент

Checkout Form

Оформление заказа на одной странице — контакты, доставка, способ доставки и оплата — с автозаполнением, проверкой и анимированным подтверждением.

Компонент

Product Media

Изображение товара: реальное фото или цветной фон с одной из 16 линейных иллюстраций товаров.

Компонент

Product Rating

Рейтинг звёздами только для чтения с дробной заливкой, значением и числом отзывов и единой доступной подписью.

Компонент

Cart Toast

Живые всплывающие уведомления: «Добавлено в корзину» с кнопкой корзины и любые свои сообщения через событие ack:notify.

Компонент

Countdown Banner

Живой обратный отсчёт распродажи — дни, часы, минуты, секунды, кнопка и состояние «завершено»; фиксированная дата или срок для каждого посетителя.

Компонент

Stock Indicator

Уведомление о малом остатке со шкалой и живым счётчиком просматривающих товар.

Компонент

Cart Store

Состояние корзины без фреймворков для всех компонентов магазина: хранение в localStorage, синхронизация вкладок, кнопки «в корзину» и формат цен.

Повторно используемые компоненты

Существующие компоненты, из которых собран шаблон.