Цель: создать калькулятор в котором клиент будет указывать такие параметры:
1) Цвет корпуса и фасада
2) Тип кухни (прямая или угловая)
3) Размер сторон
4) Обязательные модули
5) Выбор фурнитуры
6) Выбор столешницы
После выбранных параметров будет предоставляться скомплектованные варианты кухонь, эти варианты будут создаваться автоматически из математических расчётов.
Пункт №1. Реализация админки:

Пункт 1.1: Создать раздел где будут добавляться и редактироваться Кухни можно добавлять сколько хочешь.
Пример как должна выглядеть форма можете увидеть на картинке ниже
Пункт 1.1.1:Рисунок вкладки общее

- Форма будет иметь 4 вкладки
- Общие - с полями названии кухни
- модули - где будут добавлятся модули
- столешница, где будут добавлятся столешницы
- цвета - будут добавлятся цвета для кухни
Пункт 1.1.2: Рисунок вкладки модули

В данной вкладке должны создаваться подразделы их может быть не ограничено (эти подразделы будут означать какую фурнитуру использовать). В каждый подраздел будет иметь поля где можно будет назначить или изменить название этого подраздела, а также два поля нижние модули и верхние модули, куда будут прикрепляться товары (модули ). Из модулей и будет формироваться вся кухня. Модули будут иметь такие характеристики:
1) размеры (ширина, глубина, высота)
2) расположение модуля (верх или низ)
3) тип модуля (обычный, духовка, мойка, пенал, сушка и т.д.)
4) цена
5) тип модуля 2 (простой или угловой)
6) картинка
7) название
так как модуль представляет собой товар, то эти характеристики будут указаны в атрибутах товара, оттуда и будут вытаскиваться вне нужные нам характеристики.
Пункт 1.1.3: Рисунок вкладки столешницы

здесь мы будем прикреплять какие столешницы можно заказать - это тоже будет в виде товара. Столешницы также как и модули будут иметь свои характеристики которые мы запишем в атрибуты.
Пункт 1.1.4: Рисунок вкладки цвета

тут будет две вкладки: корпус и фасада. В каждую вкладку мы будем добавлять свои цвета. Тем самым клиент сможет выбрать цвет корпуса и цвет фасада в калькуляторе
Пункт 1.2: Добавление созданной кухни в товар в админ панели
Для того чтобы калькулятор появился в тои или ином товаре, мы должны при создании или редактировании самоно товара во вкладве связи добавить поле select . в этом поле мы будем выбирать какую кухню будем применять к данному калькулятору. Напоминаю что кухни мы создавали в пункте 1,1 и этих кухонь может быть несколько, администратор сам будет задавать в товаре какую кухню применить к какому товару.
Пункт 2: витрина товара с калькулятором
К товару в который мы применили кухню будет выводится калькулятор. Иметь вид он будет как на рисунке ниже
Для начала просчета клиент должен выбрать такие параметры:
- цвет корпуса и фасада (не обязательные поля)
- тип кухни: угловая или прямая кухня (обязательный параметр)
- размер сторон кухни, если выбрана угловая кухня то клиент должен указать две стороны кухни (обязательный параметр) шаг с которым можно будет указать размер составляет 5см тоесть нельзя будет указать например 211 см только 210 или 215см.
- обязательные модули это те модули которые он обязательно хочет видеть
- тип фурнитуры по умолчанию должно стоять стандарт (обязательный параметр)
- столешницу (не обязательный параметр )
Зная все Эти параметры мы можем приступить к просчету кухни.
Так как мы знаем размер кухни мы можем сформировать уже какие модули в этот размер поместятся, для начала формирования кухни нужно исходить из обязательных модулей который указал покупатель в калькуляторе, когда мы знаем сколько занимает места обязательные модули, оставшееся место мы комплектуем простыми модулями. Обращаю внимание что есть такие модули которые могут быть лишь один раз в размешении, например мойка или духовка или модуль под вытяжку, логично что данные модули не нужно дублировать в кухне. Риторический вопрос – «Зачем клиенту 2 мойки?!»
При просчете угловой кухни в обязательный модуль должен также входить угловой модуль как для низа и так и для верха. Просчет кухни прямой намного легче чем угловой, так как угловой модуль есть часть двух сторон. поэтому тут нужно учесть.
Пункт 2.1 расчет кухни
Вот пример – у нас есть прямая кухня с размером 2м (200см) разберем на примере пока нижние модули . Клиент выбрал обязательный модуль мойку и духовку. Мойка у нас занимает 100см а духовка 60см, у нас остается 40см, мы можем укомплектовать кухню например так:
100+60 + 40 простой модуль
100+60 + 20 простой модуль +20 простой модуль
других вариаций у нас не может быть в данной кухне так как других модулей у нас нет.
Аналогично по верхним модулям. Так же принято комплектовать верхние модули соответственно размерам нижних модулей. Например:
нижние модули 100+60+40 тогда и верхние должны быть такие же 100+60+40
но есть исключения когда у нас используется угловая кухня, так как угловые модули верхние и нижние не соответствуют размерам, за счет глубины модуля. Как просчитываются угловые это нужно лично объяснить исполнителю в голосовом сообщении, потому что если я и опишу в тз как оно просчитываются, вы врятли сможете не запутаться.
Если бы кухня была бы большего размера например не 200см а 250см варианты выглядели бы так:
100+60 + 50 +40
100 + 60 +30 +20 +40
100+60 +30 + 60
100+60 + 5пилястра +80 простой модуль +5пислястра (внимание модуль размером 5см нельзя ставить подряд)
Также у нас есть такой модуль как цоколь, он не обязательный, это планка которая закрывает ножки. Если клиент заказывает его, то его нужно считать тоже, например вся длина кухни вышла 420 см, значит цоколь у нас имеет длину 200м и продается он только по 2 метра нужно ему посчитать 3 цоколя.
По столешнице можно считать ровно тот размер какой есть в кухне, например 420см. у нас цена будет указана за 1 м. допустим 1200грн тогда мы должны длину 420/100(1м)*1200грн
При большом размере кухни таких вариантов может быть очень много, по этому формироваться они должны по возрастанию цены. Например когда клиент выбрал все параметры в калькуляторе и нажал кнопку показать варианты, ему отображаются например 5 штук по возрастанию цены, потом при нажатии на кнопку показать ещё отобразились ещё 5 штук и так далее
Каждый вариант кухни имеет название, список модулей верхних и нижних, цену, а также две кнопки купить и посмотреть.

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

корзина и оформление заказа должны иметь все характеристики которые клиент выбрал, а также вариант кухни который он выбрал.
В любом случае нужно ещё не раз проходится по ТЗ по каждому пункту, чтобы вы понимали что именно я хочу и чтобы вы знали как это всё реализовать.
