Суть задачи: администратор сайта по своему усмотрению определяет скидку для одного или нескольких элементов (товаров) и привязывает их при помощи свойства "Связаны со скидкой" к третьему товару (назовем его основной). Эти товары должны выводится со скидкой только с основным товаром, сами по себе или с другим товаром - данная скидка должна быть не активной.
Пример. Допустим, к товару "А" через свойство "связан со скидкой" привязан товар "С".
Администратор определяет, что при покупке товара "А" покупатель сможет купить товар "С" с определенной скидкой.
Соответственно, при детальном просмотре товара "А" товар "С" должен выводится с установленной скидкой.
Если же этот же товар "С" выводится как сопутствующий товар к товару "Б" (по какому-дибо другому свойству), то его цена уже должна быть без скидки.
При этом нет обратной привязки, то есть если в детальном описании выводится сам товар "С", то сопутствующий к нему товар "А" так же должен быть без скидки, если администратор не назначил ему таковую заранее.
Если не совсем понятно сформулировал, смогу пояснить более подробно на примере.
Вижу два пути решения этого вопроса:
1. Править коды скидочной системы, так как простыми настройками из коробки нужного результата добиться не возможно.
2. Создать эмуляцию сложной скидки.
Создается новый инфоблок, являющийся торговым каталогом, элементами которого будут копии товаров со сниженной ценой. Но, для системы это - новые уникальные элементы, которые будут привязаны к нужным элементам основного торгового каталога через свойство, условно назовем его "Связаны со скидкой". Контент-менеджер будет создавать такие элементы простым копированием между инфоблоками со всеми свойствами и характеристиками (на маркетплейс есть соответствующее готовое решение), одновременно добавляя новую цену для этого товара по своему усмотрению. И привязывает его к основному элементу. Соответственно, на странице детального вывода основного элемента должны появиться все связанные с ним элементы из нового инфоблока.
В выводе этих элементов нужно предусмотреть два типа цен, перечеркнутая BASE и актуальная новая, допустим Linked Discount. Кроме того, кнопка "Купить" должна становиться активной только после того, как основной товар уже положен в корзину. До этого она не активная, бледная визуально.
И еще важно, если покупатель удаляет из корзины основной товар, то автоматом должны удалиться и связанные с ним элементы из нового каталога, или произойти перерасчет по ценам из BASE.
Привязка множественная, то есть одни и те же элементы нового каталога можно привязать к любому элементу основного.
Возможно ли обойтись разделом существующего каталога или все таки нужен новый инфоблок??
Таким образом полностью уходим от понятия "скидка" и от разработки функционала со сложными расчетами. По сути, вся сложность будет состоять в кастомизации корзины под удаление связанных элементов вместе с основным. Или я не вижу подводных камней?
Если Вы уже делали что-либо подобное или есть более разумное решение по этому поводу, предлагайте.
Пример. Допустим, к товару "А" через свойство "связан со скидкой" привязан товар "С".
Администратор определяет, что при покупке товара "А" покупатель сможет купить товар "С" с определенной скидкой.
Соответственно, при детальном просмотре товара "А" товар "С" должен выводится с установленной скидкой.
Если же этот же товар "С" выводится как сопутствующий товар к товару "Б" (по какому-дибо другому свойству), то его цена уже должна быть без скидки.
При этом нет обратной привязки, то есть если в детальном описании выводится сам товар "С", то сопутствующий к нему товар "А" так же должен быть без скидки, если администратор не назначил ему таковую заранее.
Если не совсем понятно сформулировал, смогу пояснить более подробно на примере.
Вижу два пути решения этого вопроса:
1. Править коды скидочной системы, так как простыми настройками из коробки нужного результата добиться не возможно.
2. Создать эмуляцию сложной скидки.
Создается новый инфоблок, являющийся торговым каталогом, элементами которого будут копии товаров со сниженной ценой. Но, для системы это - новые уникальные элементы, которые будут привязаны к нужным элементам основного торгового каталога через свойство, условно назовем его "Связаны со скидкой". Контент-менеджер будет создавать такие элементы простым копированием между инфоблоками со всеми свойствами и характеристиками (на маркетплейс есть соответствующее готовое решение), одновременно добавляя новую цену для этого товара по своему усмотрению. И привязывает его к основному элементу. Соответственно, на странице детального вывода основного элемента должны появиться все связанные с ним элементы из нового инфоблока.
В выводе этих элементов нужно предусмотреть два типа цен, перечеркнутая BASE и актуальная новая, допустим Linked Discount. Кроме того, кнопка "Купить" должна становиться активной только после того, как основной товар уже положен в корзину. До этого она не активная, бледная визуально.
И еще важно, если покупатель удаляет из корзины основной товар, то автоматом должны удалиться и связанные с ним элементы из нового каталога, или произойти перерасчет по ценам из BASE.
Привязка множественная, то есть одни и те же элементы нового каталога можно привязать к любому элементу основного.
Возможно ли обойтись разделом существующего каталога или все таки нужен новый инфоблок??
Таким образом полностью уходим от понятия "скидка" и от разработки функционала со сложными расчетами. По сути, вся сложность будет состоять в кастомизации корзины под удаление связанных элементов вместе с основным. Или я не вижу подводных камней?
Если Вы уже делали что-либо подобное или есть более разумное решение по этому поводу, предлагайте.