JawsIk
@JawsIk
Python Django, Lua, ЧПУ-станки(ArtCam, Aspire)

Как сделать систему просчёта с заранее неизвестными дополнительными свойствами?

Всем доброго времени!
В последние несколько лет, я плотно присел на Django. За это время создал несколько систем для производств. Системы работают в мебельном сегменте.

По большому счёту нужно было рассмотреть все этапы производства какого-то предприятия. И сделать так, чтобы заказчик мог в онлайн режиме сделать заказ и тут же знать цену этого заказа, а так же подготовить в один клик бланки-документы. Конечно уведомления. Оплата. Архив заказов и прочее.

Сразу может показаться, что это некий такой интернет магазин. Но это только кажется. По факту расскажу на примере например производства фасадов для кухонь.

  • У фасадов около 10 моделей
  • Тысячи наименований лакокрасочных материалов
  • Несколько десятков патины (тоже цвет)
  • Фасады могут изготовлены из 4-х видов материалов (3 вида дерева и МДФ)
  • Какие-то из моделей могут быть изготовлены только из одного материала, какие-то из двух, какие-то из любых
  • Существуют около 30 видов фасадов в пределах одной модели (глухой, под стекло, под решётку, накладки, метабокс и т.д)
  • Кроме фасадов существуют другие изделия (декор, принтуса, корнизы, арки, столбы, колонны)
  • У них тоже есть свои доп.свойства
  • Какие-то доп.свойства сгруппированы (т.е. из группы можно выбрать только один пункт)
  • Отдельным пунктом хочется отметить радиусные фасады (гнутые круглые)
  • Под изделия имеется диапазон размеров (клиент указывает сам размеры)
  • Какие-то изделия предусматривают нестандарт (выход за диапазон, но цена увеличивается)
  • Какие-то доп.свойства влияют только на пункт заказа, какие-то на группу (например арки или подкорнизники), какие-то на каждый пункт заказа
  • Какие-то доп.свойства меняют цену, какие-то лишь информационные (вид розетки, вид обработки краёв и прочие)


И всё это только, то, что я на вскидку вспомнил. За всем следит сервис (мой программный продукт сделанный на Django). Лишнего не показывает. Контролирует размеры, цены и все доп.свойства в режиме, что называется "от дурака". Разложены всевозможные варианты и всё воплощено.

В системе существует три цены (Производитель, Дилер и Мебельщик). У последнего в зависимости от объёма дисконт от 5 до 15%

А теперь вопрос:
Сделал я всё это для одного клиента. Всё завязано на его производственные процессы. И таблицы БД и формулы цены. Всё конкретно под это производство.
Как сделал, появился второй клиент. Сделал и для него. У него какие-то процессы похожи, а некоторые нюансы совершенно иные. А это значит, что некоторые таблицы БД и формулы цен у него другие.

Сейчас наклёвывается третий клиент. И вот возникла мысль.
А можно ли сделать какую-то универсальную платформу, где всевозможные варианты каких-то доп.свойств, характеристик, производственных особенностей, формулировок, ценовых формул и т.п. можно было настраивать что называется "из админки".


Я вдруг вспомнил, что когда-то в далёком прошлом был такой движок на PHP под названием Jumla. И вот в ней можно было настраивать, навешивать, всякие дополняшки, плагины, виджеты и прочие свистелки-перделки.

Вопрос: Как (под капотом) реализованы такие программные решения? Ну когда заранее неизвестны нюансы и доп.свойства?

p.s. надеюсь мой вопрос понятен.
p.s.2. Если есть что почитать или посмотреть, то буду рад подобному в комментариях.
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ответы на вопрос 1
sim3x
@sim3x
Сравнивать свое решение и джумлу, конечно верх неуважения к себе и джанге

Разработка всегда идет за решениями бизнеса, а не перед

Если вы договоритесь со всеми вашими клиентами об унификации их бизнесов, то тогда сможете думать об SaaS на базе вашего решения

Теперь по сути
Вы можете использовать проект как boilerplate, но не более
Сразу возникнет проблема с убиранием части функциональных тестов

Решения, которые пытаются скрести ужа с ежом всегда заканчиваются решениями аля джумла с таким же качеством кода и проблемами безопасности
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы