Как реализовать наценку на товар в зависимости от принадлежности товара к термину

Главные вкладки

Аватар пользователя Bakdimkaz Bakdimkaz 18 февраля 2015 в 4:35

Подскажите правильный путь/алгоритм по написанию правила вычисления цены товара в зависимости от принадлежности товара к поставщику(термину).

Исходные данные:
- Есть словарь с терминами: Поставщик1, Поставщик2, Поставщик3
- У товара есть поле с термином, где выбирается принадлежность товара к поставщику.
- В товаре в качестве базовой цены забивается оптовая цена. Розничная должна вычисляться.

Нужно, чтобы вычислялась розничная цена в зависимости от наценки, которая разная у каждого поставщика.
Варианты решения:
1) У каждого термина поставщика есть доп. поле с коэффициентом наценки. Рулесами берем его и умножаем на базовую цену.
2) В каждом товаре есть также поле с наценкой. Рулесами берем его и умножаем на базовую цену. Тут даже термин поставщика не нужен.
3) Берем ID термина и создаем отдельное правило для наценки по каждому поставщику.

Я смог сделать по третьему варианту, работает. Прикрепляю скрин рулеса.
Но когда посмотрел на список поставщиков, их более 30-ти, то скис Smile Это 30 таких рулесов под каждый ID термина?

Помогите по алгоритму, чтобы сделать по первому варианту? Возможно ли это? Хочеться простого изящного решения. Я верю - оно есть! Smile
Я чего-то не могу найти селекторы данных, чтобы вытащить шаблон термина, да чтоб потом еще по ним смотреть на поле в термине с коэффициентом наценки, а потом еще взять его в качестве значения на которое умножать Smile

Может есть какие-то примеры, вдруг кто уже знает короткий путь.

ВложениеРазмер
Иконка изображения rules-nacenka.png13.91 КБ

Комментарии

Аватар пользователя bumble bumble 18 февраля 2015 в 12:26

Нужно определить поле наценки в термине.
Добавь условие к полю термина "Entity is of bundle" или Сущность имеет поле".

Аватар пользователя Bakdimkaz Bakdimkaz 28 апреля 2015 в 21:53

Не получается написать одно правило, подумываю забить и сделать 30 одинаковых простых правил как на прикрепленной картинке выше Smile Потому что легко вытаскивается условие "Line item product contains specific terms ID" - вбиваешь номер термина и всё работает. Ну и соответственно под каждое правило и свой термин будет свой коэффициент наценки. Только правил таких будет 30-50.

Как это может сказаться на работе?
Как вообще внутри друпала контролируются условия выполнять правило или нет? Как это скажется на скорости?
Ведь получается прежде чем показать карточку товара, друпал должен будет пробежаться по всем правилам, найти одно соответствие и выполнить наценку, только потом показать товар с ценой.

"bumble" wrote:
Нужно определить поле наценки в термине.
Добавь условие к полю термина "Entity is of bundle" или Сущность имеет поле".

Чего-то не получается. Делал и то и то, всё равно в селекторе данных не появляется нужное. Тут ведь вложенность двойная: нужно вытащить из поля термин, а потом из термина вытащить поле с цифрой наценки. Короче я чувствую, что не осилю это, выходит за рамки моего понимания.