Как мы делали Рокс Пиццу

Стояла задача сделать крутой сайт пиццерии с возможностью покупки онлайн, с акциями и настройкой пицц, а самое главное — с подключением к системе автоматизации ресторанов IIKO.
Сегодня мы его запустили, и хочется немного рассказать, как всё это было.
Но для начала поделюсь, что я осуществил свою давнюю мечту с летающими пиццами и корзиной-коробкой!
Смотрите, красота какая:

При добавлении пиццы текст в кнопке меняется с «Выбрать» на «Ещё одну», а сама карточка подсвечивается.
Выбор ингредиентов
Все пиццы существуют в 2 размерах: 23 и 31 см. Любую можно заказать на толстом или тонком тесте. В каждую можно добавить до 10 дополнительных ингредиентов.

Отсюда пицца тоже красиво улетает в корзину.
Сложно было с IIKO. Размер и тесто там не являются параметрами пиццы, это... Разные пиццы! То есть на каждую пиццу на сайте, в базе IIKO приходится четыре — каждая со своим айдишником. Ингредиенты у каждой пиццы тоже уникальные: поэтому необходимо каждый синхронизировать с тремя ему подобными.
В общем, жопа!
Конструктор акций
На сайте есть много разных акции. Акции со скидками на самовывоз, доставку или на то, и другое вместе. Все акции подразделяются на 2 категории: комбо-наборы (просто набор товаров по определённой цене) и скидка на N-ую пиццу. Для второго варианта пришлось писать целый конструктор:

Пицца по акции не должна быть дороже остальных, поэтому конструктор автоматически их сортирует по цене.
Самое сложное, естественно, под капотом, потому что все акции полностью создаются и хранятся в IIKO, мать её!
Иллюстрации
Единственное, на что не повлияла интеграция с IIKO — эти замечательные иллюстрации: