Разработка интернет-магазина цветов – это прежде всего логистика, заведенная в данные, и уже потом каталог: букет должен приехать в конкретный день и в конкретный интервал, иначе заказ теряет смысл. Поэтому каркас строим вокруг календаря доставки, зон по городу и правила замены сезонной позиции, а не вокруг количества карточек. Каталог в нише маленький – в измеренных нами магазинах такого масштаба это от 76 до 300 позиций. Два магазина с одинаковым ассортиментом расходятся в объеме работ вдвое, и разводят их зоны, слоты и предел времени приема на сегодняшний день.
от 126,3 до 1 544,5 мс среди 24 измеренных магазинов на OpenCart
Условия
предоплата 50%, два раунда правок на дизайне, гарантия 30 дней
Показатели сняты нашим замером на живых сайтах соответствующего масштаба.
после бесплатного аудита
Стоимость
30
Гарантия
дней после подписания акта
20–40
Срок
рабочих дней от утверждения ТС
76–300
Каталог в нише
позиций в измеренных магазинах такого масштаба
зоны, интервалы и предел времени приема на сегодня, а не количество карточек
Задающий объем работ
от 126,3 до 1 544,5 мс среди 24 измеренных магазинов на OpenCart
Первый ответ сервера
предоплата 50%, два раунда правок на дизайне, гарантия 30 дней
Условия
после бесплатного аудита, сметой по этапам
Цена
Что входит
Полный перечень работ и того, что вы получаете на выходе
Каталог по приводу и типу букета с фильтром по цветку, цвету и ценовому диапазону.
Карта с составом букета поштучно, размером и предупреждением о допустимой замене сезонной позиции
Календарь доставки с интервалами по часам: прошлые слоты гасятся сами, у каждого свой предел приема
Зоны доставки с отдельной стоимостью и отдельным правилом для доставки в день заказа
Получатель отдельно от заказчика: другое имя, другой телефон, режим анонимной доставки
Текст открытки отдельным полем с ограничением по символам – доезжает до флориста как написанный
Приложения — открытка, ваза, сладости, шарик — допродажей в корзине, а не карточками каталога
Сценарий отсутствующей позиции: замена равноценным цветком с согласия покупателя вместо пустой карты
Оформление в один экран на мобильном без обязательной регистрации: телефон, дата, интервал, адрес, оплата
Оплата картой онлайн, Apple Pay и Google Pay, перевод, оплата получателем
Техническое SEO: ЧПУ, canonical, уникальные title и карта сайта, которую принимаем по количеству байтов в ответе
Передача: доступы, письменная инструкция под ваши процессы, проход админки с человеком, который будет вести каталог
Когда эта услуга не подходит
Что не входит в работу — чтобы не было сюрпризов на сдаче
Предметная съемка букетов
Курьерская служба и маршрутизация как операционный процесс
Складской учет свежесрезанного цветка со сроками годности
Реклама после запуска
Хостинг, домен, эквайринг
Кому подходит
Ситуации, в которых эта услуга даёт результат
Сценарий 1 из 4
Принимаете заказ в директе, возите собственным курьером
Менеджер каждый раз выбивает по телефону дату, адрес, имя получателя и текст открытки. Магазин переносит это в чекаут: дата и интервал выбираются в календаре, получатель заполняется отдельно от заказчика, открытка приходит полем, а не голосовым. Это снятая ручная работа и меньше шансов привезти не туда – спрос создает ваш букет и ваша реклама, а не форма заказа.
Разберём вашу ситуацию на бесплатном аудите
Сценарий 2 из 4
Пиковые даты разбираете вручную и каждый раз перевыполняете обещания
14 февраля и 8 марта дают поток, не держащий ни один блокнот. Календарь со слотами разводит этот поток: покупатель видит только те интервалы, которые вы успеваете выполнить, и сам отсекает нереальные. Честный предел: сайт распределяет заказ, но не добавляет курьеров — когда слоты закончились физически, он должен показать, а не продать еще одно.
Сценарий 3 из 4
Продаете не только живой букет
Сухоцветы, вазы, свечи и подарочные наборы едут перевозчиком и не зависят от одних суток в год. В каталоге они стоят рядом с букетами, в чекате – отдельной веткой с выбором отделения. Разводить ветки нужно сразу: пока она одна, покупатель рано или поздно укажет отделение для живого букета, и такой заказ заканчивается возвратом.
Сценарий 4 из 4
Город разбит на зоны с разной стоимостью доставки
Центр, спальные районы, пригород и отдельно доставка в день заказа – это четыре цены и четыре разных предела времени приема. Заведенные в данные, они числятся сами при оформлении. Работает это только тогда, когда зоны описаны до разработки: если границы районов существуют только в уме у владельца, календарь доставки ставить не из чего.
Вместо ценовой вилки – бесплатный аудит цветочного магазина.
В цветах сайт продает обещание: букет будет такого вида, приедет в такой день и в такой интервал. Аудит проверяет, способен ли ваш магазин этот обещание держать, и показывает, что именно ломается в пиковую дату. Без этих ответов любая названная сумма будет выдумкой.
Что мы измеряем
Логистика доставки в данныхСколько у вас зон, разбиты ли сутки на интервалы, есть ли доставка в день заказа и до какого часа принимается. Это главный множитель объема работ в нише.
Поведение страницы под нагрузкойПервый ответ сервера и вес разметки, раздельно на главной и раздельно в категории. Разброс среди 24 измеренных магазинов на OpenCart – от 126,3 до 1 544,5 мс; в магазине полива категория на 100 позиций весит 554 КБ против 143,6 КБ на главной.
Что происходит с отсутствующей позициейЕсть ли сценарий замены цветка или покупатель просто видит пустую карточку. Без сценария менеджер обзванивает вручную каждый такой заказ.
Фото и соответствие букетаЕсть ли в описании состав поштучно и предупрежден ли о допустимой замене. Это самая частая причина возвращений в ниши.
Прием заказа с телефонаСколько шагов от карты до оплаты на мобильном и сколько из них обязательны. В цветах большинство заказов импульсны и по телефону.
Оплата и получательМожно ли заплатить картой онлайн и указать другого человека в качестве получателя с отдельным телефоном. Без этого анонимная доставка не работает совсем.
Что вы получаете
Документ по магазинам: скорость, вес страниц, поведение формы заказа, полнота данных по доставке.
Схему зон и интервалов в том виде, как ее нужно завести на сайте.
Список недостающих сценариев: замена позиции, анонимный получатель, открытка, время доставки.
Разговор на 30-40 минут по документу.
Срок: 2–4 рабочих дня
Почему это бесплатно
Ибо объем работ в цветах держится на логистике, а ее не видно из описания задачи. Подсчитать зоны и интервалы — вопрос нескольких дней, после чего сумма называется один раз и не плывет.
Что дальше
Далее – сумма и срок по этапам с датами, договор, счет, акт. Если из цифр станет видно, что вам достаточно доделать имеющийся магазин, мы так и скажем.
Короткая форма: контакт и адрес сайта
Договор, акт и гарантия 30 дней
На каждый проект письменный договор: объём, сроки, сумма, порядок приёмки. После сдачи — акт и счёт, затем 30 календарных дней гарантии.
ФОП и безналичный расчёт
Исполнитель — зарегистрированный ФОП. Оплата на счёт с закрывающими документами.
Права и доступы — ваши
Код, дизайн и материалы переходят к вам после полной оплаты. Домен, хостинг, репозиторий оформляем на вас.
Портал клиента вместо переписки
Во время работы вы получаете доступ к порталу: договоры, счета, акты и статус проекта в одном месте.
Заказчики из Европы
Среди работ — проекты для Норвегии, Болгарии, Молдовы и Испании.
Цифры, которые можно проверить
Каждый кейс в портфолио — со ссылкой на живой сайт и техническим замером.
Сначала аудит, потом сумма
Прайса на сайте нет намеренно: объём одной и той же работы у двух клиентов отличается кратно.
Говорим «нет», когда не уверены
Если задача не наша или срок нереальный — скажем сразу.
Что влияет на стоимость
Почему две одинаковые на вид задачи считаются по-разному
Количество зон доставкиОдна зона и один тариф – настройка на пол дня. Четыре зоны с разными ценами, отдельным тарифом на пригород и правилом для доставки в день заказа – это данные, которые нужно описать, возвести и проверить на границах районов.
Интервалы и предел времени приемаСутки, разбитые на слоты, где у каждого свой предел приема и своя стоимость. Часы съедают не товары, а исключения: выходные, праздники, ночная доставка, сокращенный день перед пиковой датой.
Глубина сценария заменыПредупреждение в карте стоит часа. Таблица равноценных замен с галочкой «соглашаю» и отдельным уведомлением флористу — отдельная строка сметы, зато менеджер перестает обзванивать.
Состояние фото и описанийСнимки на однородном фоне с составом букета поштучно экономят недели. Фотографии с телефона в разных ракурсах приходится приводить к одному виду вручную, и это считается отдельно.
Подготовка к пиковой датеКэш, сжатие, вес категории и проверка сервера под нагрузкой – отдельная работа, а не побочный эффект разработки. Разница в семь раз между самым быстрым и медленным из измеренных магазинов сидит именно в настройке.
Набор способов оплатыКаждый шлюз – это договор, комиссия и отдельный пункт в сверке. Два способа относятся быстро; семь логотипов в футере сами собой не продают — значение имеет именно те, которыми платит ваш покупатель.
Кейсы
Задачи и результат в цифрах — все показатели сняты нашим замером
магазин систем автоматического полива с ландшафтными услугами – сезонный спрос, каталог на несколько сотен позиций
Задача
Собрать каталог, где позиции визуально почти одинаковы и отличаются пустяками, и не потерять скорость отдачи в сезон. Природа задачи та же, что и с букетами: выбор делается глазами, а разница между вариантами — в деталях.
Решение
OpenCart 3 по nginx с HTTP/2 и сжатием brotli. Каталог на четыре уровня вложенности, OCFilter в категориях, быстрый просмотр карты и заказ в один клик. В ожидании два перевозчика с шестью способами доставки и три способа оплаты.
Результат
Измерение 01.08.2026: 300 товаров в 40 категориях, цифра подтверждена двумя независимыми методами с расхождением 0%. Первый ответ сервера 235 мс (медиана из пяти замеров), вес HTML главной 143,6 КБ, у brotli – 22,5 КБ; страница категории со 100 позициями весит 554 КБ. Найдены дефекты: ни одного блока JSON-LD, аналитики не установлены вообще, две из пяти корневых категорий пусты.
интернет-магазин садового инструмента для частных покупателей
Задача
Держать страницу легкой там, где на экране преимущественно фотографии товара, а не текст и дать покупателю выбор из нескольких перевозчиков.
Решение
OpenCart 3.x по nginx с HTTP/2. Отложена загрузка почти всех изображений, пять способов оплаты и четыре перевозчика на странице доставки.
Результат
Измерение 31.07.2026: 66 из 69 тегов изображений (96%) грузятся отложено – самый легкий HTML среди магазинов партии, 252,6 КБ при первом ответе 547,2 мс. Найденные дефекты: /sitemap.xml отдает HTTP 200 с телом на ноль байт, поэтому объем каталога извне сосчитать невозможно; на главной нет тэга h1; названия перевозчиков представлены картинками без alt; PHP 7.3.33 без поддержки с декабря 2021 года.
мебельный магазин для испанского рынка с большой галереей на каждую позицию
Задача
Продавать небольшим каталогом, где решение принимается за фото, а не по характеристикам.
Решение
OpenCart 3 на LiteSpeed, галерея высокого качества в каждой карте, фильтры по типу, материалу и цвету, оплата картой онлайн и банковским переводом.
Результат
Измерение 31.07.2026: 76 товаров — цифра совпала в двух независимых источниках, расхождение 0; в карте сайта 88 адресов вместе. Первый ответ 348,2 мс, полная загрузка HTML 515,6 мс, но вес разметки 374 КБ: по галерее платят именно весом. Найден дефект: на главной нет ни одного блока JSON-LD и ни одной microdata.
Не нашли свой случай?
Опишите, как это устроено у вас, — ответим, подходит ли «Разработка интернет-магазина цветов» и что это значит в вашей ситуации. Без брифа и без звонка: один вопрос, один ответ.
Этапы работы
Прозрачные этапы с согласованием на каждом шагу
Общий срок:20–40 дней
1
Бриф и техническое задание
3–5 рабочих дней
Разбираем зоны, интервалы, предел времени приема, правило замены и сценарий получателя. На выходе - ТС, по которому считается смета и принимается работа.
2
Прототип: каталог, карта, чекаут
3–5 рабочих дней
Дерево категорий по приводу и типу букета, поля карты с составом поштучно, шаги оформления в один экран. Соглашаемся к дизайну – перерабатывать ждут после верстки дорого.
3
Дизайн
4–8 рабочих дней
Главная, категория, карта букета, корзина с допродажей, ждут. Здесь же фиксируем целевой вес страницы отдельно для главной и отдельно для категории.
4
Сборник магазина
6–11 рабочих дней
Верстка темы, календарь со слотами и границами приема, зоны доставки, поля получателя и открытки, сценарий замены позиции, роли в админке.
5
Каталог и фото
2–5 рабочих дней
Завод ассортимента с составом букета поштучно и размерами, обработка изображений в WebP, отложенная загрузка, проверка карт на мобильном.
6
Интеграции, погрузка, передача
2–6 рабочих дней
Оплата, мессенджеры, GTM и GA4 с событиями корзины и покупки, проверка под погрузкой до пиковой даты, сквозной прогон заказа и проход админки с вашим человеком.
Технологии и интеграции
На чём строим и с чем это соединяется
Стек
OpenCart 4.x — ставим по умолчанию, это развивающая ветвь
OpenCart 3.x – когда критический модуль еще не имеет сборки под 4.x; версию фиксируем в ТС
PHP актуальной ветви: в четырех измеренных магазинах стоит 7.3.33 без поддержки с 2021 года
MySQL – каталог здесь мал, узкое место не база, а вес страницы
nginx или LiteSpeed, HTTP/2, HTTPS
WebP и отложенная загрузка: в цветах изображений больше, чем текста
OCFilter – фильтр по цветку и цвету; на малом каталоге он второстепен против понятных категорий
Календарь слотов – собственная логика поверх коробки: ваших пределов времени приема не знает ни один коробочный модуль
Интеграции
LiqPay
WayForPay
monobank
Apple Pay
Google Pay
собственная курьерская доставка по городу
Новая Почта для сухоцветов и подарков
Google Tag Manager
GA4
Meta Pixel
Instagram
Telegram
Viber
Свой магазин цветов против витрины в соцсети и SaaS-конструктора
Чем этот вариант отличается от альтернативы
Витрина в соцсети / SaaS-конструкторНаш подход
Дата и интервал доставкиВитрина: договариваетесь в переписке. SaaS: календарь не везде, интервалы часто без пределов приемаполе заказа с валидацией: прошлые слоты гасятся, предел приема своя у каждого
Зоны и стоимость доставкиВитрина: менеджер называет вручную. SaaS: обычно одна ставка на городсчитаются при оформлении по адресу покупателя
Получатель отдельно от заказчикаВитрина: в переписке. SaaS: часто одно поле контакта на всеотдельные поля, отдельный телефон, анонимный режим
Пиковая датаВитрина: ограничивает скорость набора текста менеджером. SaaS: ресурсы тарифа, влияния у вас неткэш, вес категории и сервер меряются до 14 февраля
Плата за платформуВитрина: нет. SaaS: абонплата ежемесячно вне зависимости от сезонанет, только хостинг и домен
Что нужно от вас
Без этого не начнём — лучше подготовить заранее
1Ассортимент с составом букетов поштучно и размерами.
2Фотографии букетов – в цветах покупатель покупает именно по фото.
3Зоны доставки со стоимостью и пределом времени приема заказов на сегодня.
4Правило замены: какие цветки вы считаете равноценными, когда нужного нет.
5Доступ к хостингу и домену — или согласие на то, чтобы хостинг подобрали мы.
6Одного человека с правом утвердить структуру каталога и макеты.
Если чего-то из этого нет — скажите, подскажем, как собрать или сделаем сами отдельной задачей.
Частые вопросы
Что спрашивают чаще всего — с конкретными ответами
Как сделать, чтобы букет приехал в конкретный час?
Календарем с интервалами, а не полем пожелания к заказу. Сутки делятся на слоты, у каждого слота свой предел приема и своя стоимость, прошлые слоты гасятся автоматически. Покупатель видит только то, что вы реально успеваете выполнить, и менеджер не переговаривается по телефону. У механизма предел: он распределяет спрос по слотам, но не добавляет курьеров — когда все слоты на 14 февраля заняты, честнее показать это, чем взять заказ и сорвать его.
Что делать, если нужного цветка не будет?
Заводить правило замены на этапе ТС, а не договариваться по телефону каждый раз. В карточке пишется, что сезонная позиция может быть заменена равноценной, в заказе стоит выбор «соглашаю замену» или «сперва позвоните по телефону», флорист получает это вместе с заказом. Без такого правила вы либо отказываете покупателю, либо ставите его перед фактом — и то и другое заканчивается возвращением и отзывом.
Выдержит ли сайт 14 февраля?
Это вопрос к настройке сервера и весу страниц, а не к платформе. Среди 24 измеренных нами магазинов на OpenCart первый ответ сервера разбросан от 126,3 до 1 544,5 мс – разница в семь раз на одном и том же движке. Мерить нужно не только главную: в магазине полива главная весит 143,6 КБ, а страница категории со 100 позициями – 554 КБ, и именно ее открывает большинство. Перед пиковой датой отдельно проверяем кэш, сжатие и вес категории.
Нужна анонимная доставка – это сложно?
Сами поля просты: получатель отдельно от заказчика, отдельный телефон, галочка «не называть отправителя». Сложнее не показать имя заказчика там, куда оно попадает автоматически – в SMS перевозчика, в чеке, в письме о статусе заказа. Об этом нужно договориться к разработке: переделывать уведомления после запуска дороже, чем завести их сразу.
Как продавать приложения – вазу, открытку, сладости?
Допродажей в корзине, а не отдельными карточками в каталоге. Покупатель уже выбрал букет, и именно там уместно предложить открытку с текстом, вазу или шарик. Вынесенные в каталог по отдельности, они туда просто не попадают: за открыткой не приходят. Это наша рекомендация по практике, а не правило платформы – технически можно и так, и так.
Сколько длится технология?
20-40 рабочих дней от утверждения ТС. Это шесть этапов: бриф и ТС 3–5 дней, прототип 3–5, дизайн 4–8, сборник 6–11, каталог и фото 2–5, интеграция с передачей 2–6. Время идет не на товары — каталог в нише маленький, а на логистику: календарь, слоты, зоны, правила замены и сценарий получателя. Если у вас уже описаны зоны и интервалы, срок держится нижней границы.
Можно ли продавать сухоцветы и подарки по почте?
Да, и это разумный способ не зависеть от одних суток в год. Сухоцветы, вазы и подарочные наборы живут в том же каталоге, но с другим способом доставки — перевозчиком, а не собственным курьером. В ждуте это разные ветки, и разделять их нужно сразу, иначе покупатель рано или поздно выберет отделение для живого букета.
Почему на странице нет цены?
Ибо в цветах сумму задает не размер каталога – он здесь маленький, – а логистика: количество зон, наличие интервалов, доставка в день заказа, глубина сценария замены. Два магазина с одинаковым ассортиментом могут отличаться по объему работ вдвое именно поэтому, и любая вилка на странице была бы выдумкой. Поэтому сначала бесплатный аудит на 2–4 рабочих дня, затем сумма и срок по этапам.
Магазин попадет в Google?
Позиции никто не гарантирует, и мы не будем. Техническую часть закрываем: ЧПУ, canonical, уникальные title, карта сайта, JSON-LD. Дыра чаще всего именно здесь – в измеренном магазине садового инструмента /sitemap.xml отдает HTTP 200 с телом на ноль байт, а в магазине полива нет ни одного блока JSON-LD. Честный предел: карта сайта не поднимает позиции и не гарантирует индексацию, она лишь убирает техническую причину, по которой страницы в индекс не попадают.
Опишите зоны доставки и предел времени приема – дальше считаем мы.
За 2–4 рабочих дня вернемся с документом: скорость и вес страниц, схема зон и интервалов в том виде, как ее нужно завести на сайте, и перечень недостающих сценариев. Далее – сумма и срок по этапам с датами.
Из измеренных кейсовИзмерение 01.08.2026: 300 товаров в 40 категориях, цифра подтверждена двумя независимыми методами с расхождением 0%
Прайса на сайте нет намеренно: объём той же работы у двух клиентов отличается в разы, и цифра «от» в этом случае ничего не объясняет. Сначала бесплатный аудит — считаем ваши страницы, дубли и скорость, — потом называем сумму и срок и фиксируем их в договоре.