Веб-сайт / Интернет-магазинДоставка цветов · Казахстан
FLEUR

Цветы онлайн — от выбора до оплаты

Стек: HTML · CSS · JS

Интернет-магазин цветов с корзиной, размерами букетов, расчётом доставки и оформлением заказа — целиком на чистом HTML, CSS и JavaScript.

Главная страница магазина FLEUR
Технологии

На чём собрано и почему

Разметка

HTML5, семантика
Семантические теги и ARIA-атрибуты — доступно для скринридеров и поисковиков.

Стили

Vanilla CSS, токены
CSS-переменные и clamp() дают адаптив без брейкпоинтов и резких скачков.

Логика

Vanilla JavaScript
Корзина, фильтры и расчёт стоимости на чистом JS, без единой зависимости.

Хостинг

Vercel, статика
Статичный сайт раздаётся с CDN — страницы открываются мгновенно.
0
зависимостей
3
способа оплаты
2
языка: RU и EN
100%
статика
Описание

Что это за продукт

FLEUR — это интернет-магазин доставки цветов в Казахстане. Клиент выбирает букет в каталоге, подбирает размер, добавляет открытку и оформляет заказ целиком онлайн, без звонка. Многостраничный сайт собран на чистом HTML, CSS и JavaScript, без фреймворков.

Корзина, фильтры каталога и расчёт стоимости работают на стороне браузера, а состояние сохраняется между страницами. Сайт мгновенно открывается с любого устройства и есть в русской и английской версиях.

Задача

Сделать покупку цветов простой

Нужен был магазин, который доводит клиента от витрины до оплаты сам: показывает букеты, считает стоимость с учётом размера и доставки и принимает заказ без переписки с менеджером. Всё это — быстро и аккуратно, на лёгком статичном сайте.

  • показать каталог с удобными фильтрами и сортировкой
  • дать выбрать размер букета с понятной разницей в цене
  • считать сумму и доставку прямо в корзине
  • оформить заказ онлайн с выбором способа оплаты
  • сохранять выбор между страницами и работать на мобильном
Проблема

Заказы шли через переписку

Раньше покупка букета начиналась с сообщения: клиент уточнял наличие, цену и сроки, ждал ответа и согласовывал детали вручную. Каталога с ценами, корзины и онлайн-оплаты не было.

Это теряло часть заказов, особенно в пиковые даты вроде 8 марта, когда отвечать каждому быстро невозможно, а клиент уходит туда, где можно оформить заказ сразу.

Решение

Магазин, который продаёт сам

Мы собрали сайт вокруг одной цели: клиент сам выбирает букет, видит итоговую сумму и оформляет заказ за минуту.

01 · Каталог с фильтрами

Находит букет за пару кликов

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

  • фильтр: Все, Букеты, Композиции, Сухоцветы, Подписка
  • сортировка по цене ↑ ↓ и по алфавиту
  • «1 букет», «3 букета», «12 букетов» — верное склонение
  • sticky-тулбар фильтров при скролле
ВсеБукетыКомпозицииСухоцветыПодписка
8 букетовЦена ↑
Розовое утро
Розовое утро
14 900 ₸
Розовый шёлк
Розовый шёлк
12 900 ₸
Белый шёпот
Белый шёпот
15 900 ₸
02 · Корзина и расчёт

Корзина, которая не теряется

Товар добавляется с любой страницы и сохраняется в localStorage между переходами. Размеры S / M / L меняют цену, количество регулируется прямо в корзине, а сумма и доставка пересчитываются на лету.

  • добавление с каталога, главной и карточки товара
  • размеры S / M / L: 15 / 25 / 39 стеблей и разная цена
  • бесплатная доставка от 25 000 ₸, иначе +2 000 ₸
  • бейдж в хедере обновляется через CustomEvent
Корзина
2
Розовый шёлк
Розовый шёлк
Размер S
12 900 ₸
1+
Терракота
Терракота
Размер S
9 900 ₸
1+
До бесплатной доставки ещё 2 200 ₸
Товары22 800 ₸
Доставка2 000 ₸
Итого24 800 ₸
03 · Карточка товара

Всё о букете на одном экране

Галерея переключает фото по миниатюрам, блок с ценой и кнопкой остаётся закреплённым при скролле, а цена и заголовок вкладки меняются вместе с выбранным размером. Снизу — четыре похожих букета из каталога.

  • галерея с переключением по миниатюрам
  • sticky-блок с ценой и размером
  • цена и <title> обновляются под размер
  • хлебные крошки и блок «Похожие товары»
Главная / Букеты / Белый шёпот
Букет «Белый шёпот»
Белый шёпот
19 900 ₸
SML
04 · Оформление заказа

Заказ без звонка менеджеру

Форма собирает имя, телефон, адрес, дату не раньше сегодня, временной слот и текст открытки. Три способа оплаты, HTML5-валидация и экран подтверждения с уникальным номером заказа FL-XXXXXX.

  • оплата: картой онлайн, Kaspi QR или наличными
  • HTML5-валидация: required, type="tel", type="date"
  • экран подтверждения с номером FL-XXXXXX
  • экранирование ввода через esc() — защита от XSS
Оформление
Имя получателя
Телефон
Адрес доставки
8 июня
12:00–15:00
Картой онлайн
Kaspi QR
Наличными
Заказ FL-7K2P9X принят
05 · Как собрано

Что держит магазин лёгким и доступным

  • Дизайн-токены в основе. Цвета, шрифты, отступы, радиусы и easing вынесены в CSS-переменные — единый стиль и лёгкая смена темы.
  • Адаптив без брейкпоинтов. Все размеры на clamp(), а сетки на CSS Grid сами перестраиваются под экран — без резких переключений.
  • Состояние без бэкенда. Корзина живёт в localStorage (fleur_cart_v2) и переживает переходы между страницами, а бейдж обновляется через CustomEvent.
  • Доступность и защита. aria-label, aria-current, aria-pressed, loading="lazy" и экранирование пользовательского ввода через esc() против XSS.
Результат

Заказ оформляется за минуту, без звонка

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

Корзина не теряется между страницами, сайт грузится мгновенно и одинаково удобен на компьютере и телефоне. Всё это работает на чистом HTML, CSS и JavaScript, без фреймворков и тяжёлого бэкенда.

Связанный кейс

Ещё один сайт с каталогом и онлайн-заказом →

Витрина проката Rental8: каталог техники с мгновенной загрузкой, AI-подбор комплекта и онлайн-бронирование без звонков.

Контакты

Нужен такой же магазин?

YK Partnership собирает сайты, интернет-магазины и digital-продукты под ключ. Расскажите о задаче, предложим решение.

Начать проектКейс Rental8
Написать в WhatsApp
Написать нам