Это не макет сайта — это работающая часть, которая обычно и оказывается самой сложной: расчёт предварительной цены и срока, сохранение сборки по ссылке и проверка, войдёт ли конкретная икона в выбранный киот. Цифры ниже считаются здесь же, в браузере; на настоящем сайте то же самое считает сервер по справочникам из CMS — почему именно так, написано в конце страницы.
Выберите параметры. Главное здесь не итоговое число, а то, что рядом с ним видно, откуда оно взялось: заказчик икон почти никогда не понимает, почему одна цена вдвое больше другой, и именно это непонимание съедает сделку.
| Из чего сложилась цена | ₽ | Дней |
|---|
Самая частая причина возврата и переделки в этой нише — киот не подошёл по размеру, и чаще всего не по высоте с шириной, а по толщине: про оклад и про зазор под стекло при заказе никто не думает. Введите размеры своей иконы и посмотрите, что ответит проверка.
| Модель | Окно, мм | Глубина, мм | Подходит вашей иконе |
|---|
Окно — наибольшая икона, которая входит в модель серийно. Припуск 3 мм на сторону обязателен: доска дышит от влажности, и подогнанный «в ноль» киот со временем её зажимает.
В ТЗ это одна строка, а на деле — источник ошибок. Разница между стилями не «13 дней всегда»: она зависит от века. Для XX и XXI веков — 13 дней, для XIX — 12, для XVIII — 11. Поэтому пересчёт должен быть функцией, а не прибавлением константы.
| Непереходящий праздник | Новый стиль | Старый стиль |
|---|
Переходящие праздники (Пасха и всё, что считается от неё) в демо не считаю намеренно: это отдельная формула, и её результат обязан сверяться с календарём, а не выдумываться. В рабочем сайте такой справочник ведёт редакция мастерской через CMS.
Здесь главная сложность не поиск, а то, что святых с одним именем много. «Напишите икону Александра» — это не заказ, пока не выбран конкретный святой. Традиция даёт правило: именины — ближайшая память после дня рождения. Такой подсказки в каталогах обычно нет, и мастерская выясняет это перепиской на два дня.
| Святой | Память, н. ст. | О чём просят |
|---|
Справочник в демо короткий и показывает устройство, а не полноту. Содержание такого раздела — зона ответственности мастерской: мы делаем структуру, поиск и редактор, наполняет и сверяет его тот, кто за это отвечает.
На этой странице расчёт идёт в браузере — так демо живёт без сервера. В рабочем сайте так делать нельзя: цену, собранную на клиенте, можно подменить перед отправкой заявки. Формула и справочники остаются на сервере, браузер только показывает результат. Клиенту уходит ещё и слепок расчёта — чтобы через месяц было видно, по каким ставкам считали.
Здесь сборка упакована в адрес (нажмите кнопку в первом блоке). Для настоящего сайта лучше короткий код и строка в PostgreSQL: тогда ссылку можно отправить в мессенджер, а менеджер видит ту же сборку в CRM и историю её правок. Заодно это защищает от подделки: по ссылке восстанавливается то, что сохранил сервер.
В каталоге готовых икон у позиции нет остатка: она одна. Значит нужна не корзина, а бронь с временем жизни — иначе две оплаты за одну икону, и это не теория, а обычное дело в таких каталогах. Проданная позиция при этом не удаляется: она остаётся страницей с историей, и такие страницы со временем приводят в мастерскую больше людей, чем каталог наличия.
В MVP — каталог, конфигуратор иконы и киота с расчётом, бронь, формы реставрации с загрузкой фото, CRM и аналитика. Во вторую очередь — трёхмерная примерка, календарь с переходящими праздниками и телефония. Причина простая: первая половина приносит заявки, вторая делает сайт красивее. Трёхмерная примерка в вашем случае заменяется проверкой чисел — вы её сейчас потрогали, и для решения «войдёт или нет» этого достаточно.
Об изображениях. На странице нет ни одной иконы, и это не недоработка. Писать иконы — ваша работа, и подставлять сюда картинки, сгенерированные нейросетью, было бы неуважением к ней. Полоса сверху — только материалы: левкас, листовое золото, пигменты. В рабочем сайте на этих местах стоят ваши фотографии, и под них заложена подготовка: несколько размеров, ленивая загрузка и водяной знак для каталожных кадров.