Написал некий функционал для внутреннего использования. Размещаю здесь - может пригодится кому.
Совместимость: J!2.5-J!3, JS 3.x-4.x
Что делает:
1) Добавляет в форму редактора товара закладку конструктора комплекта. Т.о. из любого товара можно сделать комплект.
2) На каждый товар, вложенный в комплект, можно давать скидку в % или в дельте от исходной цены
3) Цена "товара-комплекта" автоматически пересчитывается, оригинальная цена хранится в стандартном поле "старая цена"
4*) Удаление/снятие с публикации в базе магазина товара, входящего в комплект, вызывает перерасчет "старой" и "новой" цен товаров-комплектов, включающих удаленный/распубликованный товар.
5**) В корзине при покупке отображается главный "товар-комплект"
6) Конструктор комплекта минимально поддерживает AJAX, возможно изменение порядка товаров внутри комплекта, редактирование/добавление/удаление без полной перезагрузки формы.
Что не делает (мне было не надо):
1***) Не поддерживается конфигурация атрибутов вложенных товаров.
2) По-умолчанию, отсутствуют шаблоны вывода комплекта в видах "список товаров", "товар", "товар-в-корзине" - т.к. с точки зрения магазина комплект есть товар, для каждого такого вида надо делать template override, чтобы осуществлялся, например, вывод вложенных товаров, с возможным указанием ценовой выгоды. Живьем это выглядит, например, так:
http://eco-e.ru/shop/light/ecl01-keo.
Может быть, это даже плюс, ибо сохраняется полная совместимость со стандартным шаблоном вывода, с другой стороны - как разработчик захочет выводить представление комплекта - так и сделает, ничем не ограничивая себя.
3***) При формировании комплекта не учитывается склад входящих товаров, можно было бы выводить готовность комплекта на основании готовности входящих товаров.
Устанавливается через менеджер расширений JoomShopping.
* Пока что есть недоработки - не всегда пересчитывает.
** См. "что не делает" п.2
*** Мне было не надо, но, думаю, принципиальных ограничений для реализации такого функционала - нет.
Баги/фичи: ( найдете-пишите мне, по мере возможности, буду исправлять)
1) Многослойное налогообложение. Т.к. комплект==продукт, на сам продукт-комплект тоже действует налог. Это не есть гут. Ибо, при расчете цены в комплекте, учитываются индивидуальные налоги каждого входящего товара, а к уже рассчитанному комплекту налог применяться, на мой взгляд, уже не должен. Т.к. в моем конкретном случае, в налогах заведен спец пункт - безналоговая схема, т.е. 0%, то именно ее я применяю к товару-комплекту, чтобы избежать многослойного налогообложения. Повторю, налоги уже учитываются индивидуально для каждого товара входящего в комплект. Если есть соображения, какие еще возможны алгоритмы расчета налогов, пишите, обдумаем вместе.
Обновлено:
+Исправил потерю изображений в J2.x JS3.x
+Исправил инсталляцию и работу на J!2 и JS3.x
+Паровозом к закачке добавил пример template override с использованием конструктора в карточке продукта. Там изменен только один файл, но я для удобства в архив законопатил все.
Примечание по использованию:Скачивать тут:
https://yadi.sk/d/cs_6QulCf2XZ4Архив с примером template override тут:
https://yadi.sk/d/ARidBcNsf2XiGАдминка конструктора выглядит так:
