Торговля/Правила - Умножьте цену на значение настраиваемого поля


В моем коммерческом магазине Drupal у меня есть поле под названием Комиссия.

Комиссия вводится в процентах (т. е. это не фиксированное глобальное значение).

Мне нужно обновить окончательную цену, чтобы она включала комиссию. Затем мне нужно добавить НДС к комиссии (но не к первоначальной цене). Пользователь должен иметь возможность увидеть полную цену (с комиссией и комиссией - НДС), прежде чем добавлять товар в корзину.

Я думал, что Правила было бы идеально для этой ситуации, тем более, что в ней есть действие под названием "Умножьте цену единицы на некоторую сумму". Однако это действие, похоже, не принимает значения из настраиваемых полей, даже если вы вводите их в область действия в области условий Правила.

Я просмотрел отличные учебные пособия Рэнди Фея по Правилам и коммерческим модулям, и я попытался адаптировать их к своему варианту использования. Однако я не могу заставить его работать.

Не мог бы кто-нибудь дать мне немного указатели. Спасибо!

Author: big_smile, 2011-09-17

3 answers

Я нашел решение этой проблемы, поэтому я подумал, что опубликую его, чтобы помочь всем, кто испытывает трудности:

1) Прежде чем вы сможете вызвать свое поле в разделе действия, вы должны привести его "в область действия" в соответствии с условиями. Выберите "Объект имеет поле". В разделе "Селекторы данных" выберите "коммерция-продукт (сохраненный коммерческий продукт).

2) По какой-то причине кажется невозможным использовать опцию "Умножить количество единиц на", так как независимо от того, какой селектор данных вы используете, вы получите ошибку. Вместо выберите "Вычислить значение"

3) В разделе "Входное значение 1" выберите "торговля -продукт: торговля-цена: сумма".

4) Выберите, какой расчет использовать. В моем случае я использовал multiply (*).

5) В разделе "Входное значение 2" нажмите кнопку "переключиться на выбор данных". Теперь вы можете выбрать свое пользовательское поле. Он будет расположен в разделе "коммерция-продукт: (сохраненный коммерческий продукт)"

6) В разделе "Предоставленные переменные" укажите имя результата вычисления. Выберите хорошее имя, как вы будет использовать его позже.

7) Теперь создайте новое действие под названием "Установить значение данных".

8) Для выбора данных выберите "торговля -продукт: торговля-цена: количество"

9) Наконец, в разделе значение нажмите кнопку "переключиться на выбор данных". Теперь вы можете выбрать переменную, созданную на шаге 6.

Это все, что вам нужно, чтобы изменить цену на основе значения настраиваемого поля.

Примечания: 1) Для мероприятия я использовал "Перед сохранением коммерческого продукта" 2) Я бы рекомендуем создать пользовательское поле под названием "базовая цена", в котором пользователь может ввести цену перед расчетами. Правило применяется каждый раз при сохранении продукта, поэтому поле "Коммерческая цена" будет меняться каждый раз при сохранении продукта. Если вы используете поле базовой цены, вы можете избежать этой проблемы.

 6
Author: big_smile, 2011-09-19 06:24:30

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

Entity has field -> Entity: [commerce-line-item] -> Field: commerce_product
Entity has field -> Entity: [commerce-line-item:commerce-product] -> Field: field_your_custom_field

Таким образом, вы должны сделать это в два этапа. Хотел бы, чтобы кто-нибудь сказал мне это 2 часа назад..;-)

 2
Author: Frank, 2014-01-31 13:58:44

Для 1): "В разделе "Селекторы данных" выберите "коммерция-продукт (сохраненный коммерческий продукт)"."

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

 0
Author: bench, 2011-10-14 22:59:56