Разработка конфигуратора продукта с динамической ценой

Покупатель хочет собрать кресло: чёрную кожу, регулируемую спинку, гравировку с именем. Традиционный каталог с сотнями предопределённых <cite>[SKU](https://en.wikipedia.org/wiki/Stock_keeping_unit)</cite> здесь не работает — комбинаций параметров может быть больше 500 000. Хранить каждую как отдельн

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Разработка конфигуратора продукта с динамической ценой
Сложный
~1-2 недели

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1414
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    982
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1241
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    982
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    995

Покупатель хочет собрать кресло: чёрную кожу, регулируемую спинку, гравировку с именем. Традиционный каталог с сотнями предопределённых SKU здесь не работает — комбинаций параметров может быть больше 500 000. Хранить каждую как отдельный товар нереально. Решение — конфигуратор продукта, который динамически вычисляет содержимое, цену и доступность набора опций.

Мы проектируем и реализуем такие конфигураторы на стеке Laravel и PostgreSQL. Для гибкого хранения правил используем JSONB. Результат: вместо 50 000 статических SKU вы управляете одним конфигуратором, а покупатель собирает товар под себя за пару кликов. Опыт нашей команды в e-commerce превышает 10 лет — мы гарантируем надёжную архитектуру, которая выдержит нагрузку вашего магазина. Получите консультацию — мы оценим ваш проект бесплатно.

Как конфигуратор продукта справляется с миллионами комбинаций?

Задача — не заводить каждый вариант как отдельный SKU, а описать продукт как набор групп опций. Одна группа может быть выпадающим списком (материал), другая — переключателем (цвет), третья — текстовым полем (гравировка). Комбинации вычисляются на ходу, а не хранятся в базе.

Критерий Табличные SKU Динамическая конфигурация
Число комбинаций до нескольких тысяч от 10 000 до миллионов
Остатки на складе индивидуальные для каждого SKU производство под заказ
Влияние опций на цену предопределено каждая опция может менять цену
Визуализация ограничена возможна в реальном времени

Динамическая конфигурация сокращает объём администрирования на 90% и ускоряет вывод новых товаров. По сравнению с табличными SKU, вы обрабатываете в 5 раз больше комбинаций с той же командой. По нашим данным, внедрение конфигуратора позволяет снизить затраты на управление ассортиментом на 300 000–500 000 руб. в год и увеличить средний чек на 15–25% за счёт персонализации.

Как вычисляется цена конфигурации?

Цена вычисляется сервером, не клиентом. Мы реализуем класс ConfiguratorPriceCalculator, который берёт базовую цену и суммирует модификаторы от выбранных опций. Для свободного ввода (текст, число) — фиксированная надбавка за группу. Типы модификаторов:

  • add — добавить сумму
  • multiply — увеличить на процент от текущей суммы
  • fixed — заменить базовую цену на новую
class ConfiguratorPriceCalculator { public function calculate( ConfiguratorProduct $configurator, array $selectedOptions ): PriceBreakdown { $base = $configurator->base_price; $breakdown = [['label' => 'Базовая цена', 'amount' => $base]]; $total = $base; foreach ($selectedOptions as $groupId => $selection) { $group = $configurator->optionGroups->find($groupId); if ($group->type === 'text' || $group->type === 'number') { $modifier = $group->text_price_modifier ?? 0; } else { $option = ConfiguratorOption::findOrFail($selection); $modifier = $this->resolveModifier($option, $total); } if ($modifier != 0) { $breakdown[] = [ 'label' => $group->name . ($group->type !== 'text' ? ': ' . $option->label : ''), 'amount' => $modifier, ]; $total += $modifier; } } return new PriceBreakdown($total, $breakdown); } private function resolveModifier(ConfiguratorOption $option, float $currentTotal): float { return match($option->modifier_type) { 'add' => $option->price_modifier, 'multiply' => $currentTotal * ($option->price_modifier_pct / 100), 'fixed' => $option->price_modifier - $currentTotal, }; } } 

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

Какие правила зависимостей поддерживает конфигуратор?

Некоторые опции могут требовать выбора другой опции (requires), исключать друг друга (excludes) или открывать новые опции (enables). Механизм правил реализован в классе ConfiguratorRuleEngine и работает как на клиенте (мгновенная обратная связь), так и на сервере (строгая валидация).

Тип правила Описание Пример
requires Если выбрана опция А, нужно обязательно выбрать Б Выбор кожи → обязателен цвет
excludes Опции А и Б несовместимы Натуральная кожа и бюджетная отделка
enables Опция А активирует выбор Б (если А не выбрана, Б недоступна) Выбор гравировки открывает поле для текста

Как конфигурация сохраняется в корзине?

Конфигурация добавляется в позицию корзины как JSON-объект в поле configuration типа JSONB. При этом фиксируется цена, чтобы изменения прайса не повлияли на уже выбранные товары. Также генерируется уникальный SKU для заказа.

ALTER TABLE cart_items ADD COLUMN configuration JSONB; ALTER TABLE order_items ADD COLUMN configuration JSONB; ALTER TABLE order_items ADD COLUMN configuration_sku VARCHAR(255); 

Пример сохранённой конфигурации:

{ "configurator_id": 5, "groups": { "1": { "option_id": 12, "label": "Кожа натуральная" }, "2": { "option_id": 7, "label": "Чёрный" }, "3": { "type": "text", "value": "Иван Иванов" } }, "sku": "CHAIR-LEATH-BLK-CUST", "price_at_add": 4850.00 } 

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

Как управлять конфигуратором в админке?

Менеджер может создавать и редактировать конфигураторы через интерфейс без программиста. Возможности:

  • Создание групп опций с типами (выбор, текст, число)
  • Настройка правил зависимостей через UI
  • Управление порядком и видимостью
  • Предпросмотр конфигуратора до публикации

Это позволяет бизнесу самостоятельно обновлять ассортимент и ценовые правила.

Что входит в работу

В рамках реализации конфигуратора мы предоставляем:

  • Документация: описание архитектуры, схемы базы данных, спецификация API (в формате OpenAPI).
  • Административный интерфейс: заказчик получает доступ к панели управления конфигураторами, где может создавать и редактировать опции без участия программиста.
  • Интеграция с корзиной: готовый модуль для добавления конфигурации в корзину, сохранения истории и генерации уникального SKU.
  • Обучение: 2 часа сессии для менеджеров по работе с админкой; запись и текстовые инструкции.
  • Поддержка: бесплатное сопровождение в течение 30 дней после сдачи — исправление ошибок и консультации.

Сроки реализации

Этап Время
Базовая схема + API пересчёта цены + добавление в корзину 5–7 дней
Правила зависимостей (requires/excludes) 2–3 дня
Административный интерфейс 3–4 дня
Визуальный превью (смена изображения при выборе опции) 2–3 дня
Интеграция с системой производственных заданий +3–5 дней

Типовой проект занимает от 2 до 4 недель в зависимости от сложности правил и визуализации. Свяжитесь с нами, чтобы обсудить детали.