Главная магазина
Hero с избранным товаром, гарантии, категории, хиты продаж, баннер, новинки и рассылка.
src/pages/index.astro 1 звезда на GitHub = 1 новый компонент. Уже звезды — помогите открыть следующий.
Поставить звездуПолноценный доступный интернет-магазин: главная, каталог, карточка товара, корзина и оформление заказа.
Nova Store — готовый к продакшену шаблон интернет-магазина на Astro. Пять страниц используют общую корзину, которая сохраняется в браузере, каталог фильтруется мгновенно без бэкенда, а оформление заказа проверяет данные, считает доставку, налог и промокоды и подтверждает заказ. Каждый блок — компонент библиотеки: используйте весь магазин или только нужные части.
Каждая страница — настоящий интерактивный предпросмотр, корзина общая для всех.
Hero с избранным товаром, гарантии, категории, хиты продаж, баннер, новинки и рассылка.
src/pages/index.astro Каталог с хлебными крошками, чипами категорий, фильтрами, счётчиком результатов и сортировкой.
src/pages/shop.astro Галерея, блок покупки с выбором цвета, размера и количества, отзывы и похожие товары.
src/pages/product/[slug].astro Оформление заказа в режиме фокуса: шаги, контакты, доставка, оплата и итог заказа.
src/pages/checkout.astro npm install astro-component-kit npm install astro-component-kit src/pages/index.astro
---
import { StoreHomePage } from 'astro-component-kit/templates/ecommerce';
---
<StoreHomePage /> ---
import { StoreHomePage } from 'astro-component-kit/templates/ecommerce';
---
<StoreHomePage /> src/pages/shop.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
---
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
---
import { StoreCheckoutPage } from 'astro-component-kit/templates/ecommerce';
---
<StoreCheckoutPage /> ---
import { StoreCheckoutPage } from 'astro-component-kit/templates/ecommerce';
---
<StoreCheckoutPage /> Возьмите демо-магазин за основу и замените нужное. Товары принимают реальное фото или одну из 16 встроенных иллюстраций.
---
// 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/' }} /> Созданы для этого шаблона и доступны в библиотеке по отдельности.
Шапка магазина с выпадающими категориями, поиском, аккаунтом и корзиной с живым счётчиком; мобильное меню в комплекте.
Тонкая панель объявлений с ротацией сообщений, паузой при наведении и кнопкой закрытия.
Выезжающая корзина с количеством, удалением, прогрессом до бесплатной доставки и итогом. Доступное модальное окно.
Hero магазина с градиентным заголовком, кнопками, цифрами доверия и парящим избранным товаром.
Сетка категорий с иллюстрациями, количеством товаров и анимированной стрелкой.
Ряд гарантий магазина — доставка, возврат, безопасная оплата и поддержка — в виде карточек, строки или с разделителями.
Карточка товара с иллюстрацией или фото, бейджем, рейтингом, цветами, старой ценой, избранным и кнопкой «в корзину».
Адаптивная сетка карточек товаров с пустым состоянием — цель для FilterSidebar и ProductToolbar.
Фильтры по категории, цене, цвету, рейтингу и наличию, мгновенно фильтрующие и сортирующие ProductGrid с синхронизацией URL.
Заголовок каталога с живым счётчиком результатов и сортировкой (ModernSelect), связанной с FilterSidebar.
Просмотр изображений товара с большим окном и миниатюрами с клавиатурной навигацией; без фото создаёт иллюстрированные ракурсы.
Выбор цвета или размера как нативная группа радиокнопок, синхронизированная с кнопкой «в корзину».
Блок покупки на странице товара: цена, скидка, цвет и размер, количество, «в корзину», «купить сейчас» и раскрывающиеся детали.
Боковая сводка заказа с товарами, промокодами, доставкой, налогом и живым итогом по выбранному способу доставки.
Оформление заказа на одной странице — контакты, доставка, способ доставки и оплата — с автозаполнением, проверкой и анимированным подтверждением.
Изображение товара: реальное фото или цветной фон с одной из 16 линейных иллюстраций товаров.
Рейтинг звёздами только для чтения с дробной заливкой, значением и числом отзывов и единой доступной подписью.
Живые всплывающие уведомления: «Добавлено в корзину» с кнопкой корзины и любые свои сообщения через событие ack:notify.
Сменяющиеся уведомления о недавних покупках (социальное доказательство); пауза при наведении и закрытие на сессию.
Живой обратный отсчёт распродажи — дни, часы, минуты, секунды, кнопка и состояние «завершено»; фиксированная дата или срок для каждого посетителя.
Уведомление о малом остатке со шкалой и живым счётчиком просматривающих товар.
Состояние корзины без фреймворков для всех компонентов магазина: хранение в localStorage, синхронизация вкладок, кнопки «в корзину» и формат цен.
Существующие компоненты, из которых собран шаблон.