Здравствуйте. У меня возникла проблема с освоением Rules.
Задача такая, если в корзине сумма заказа превышает 10к то пересчитать цены(использовать другое поле цены)
Проблема возникла на втором шаге(может я и первый не так сделал)
1.Select the condition to add - выбрал Cart -> order is a shopping cart
2.Выбираю commerce-line-item:commerce-total:amount (amount вписываю т.к. не выпадает) - и не могу продвинуться дальше, выдает ошибку The data type of the configured argument does not match the parameter's commerce_order requirement.
______
Где я ошибся?
заранее благодарю
Комментарии
Events: После добавления товара в корзину
Условия: Сравнение данных — commerce-order:commerce-order-total:amount, Оператор: больше, чем, Значение: 100000
Действия: Показать сообщение на сайте — В корзине товаров на сумму: [commerce-order:commerce_order_total]
не понял, но делать надо так
1.событие - товар добавлен в корзину
2. условие сайт-курент карт ордер, ордер тотал > N. тут наверно еще понадобиться энтити хез филд - поле со второй ценой
3. добавляем цикл (loop) по сайт, курент карт ордер, лийне итемз, и установить значение из референс продакт
Вот третий пункт не совсем понятно. Луп как добавить ясно а вот что такое «установить значение из референс продакт»?
Я после создания цикла добавляю внутрь цикла action, в первом селекторе выбираю машинное имя лупа который создал раньше, и проставляю фиксированное значение которым нужно заменить цену line_item-а ()для експеремента. Изменения цены на items в ордере не происходить.
Вот моя конфигурация. Может я чтото не правельно делаю?
"LABEL" : "salse_2",
"PLUGIN" : "reaction rule",
"REQUIRES" : [ "commerce_payment", "rules", "commerce_line_item", "commerce_cart" ],
"ON" : [
"commerce_cart_product_add",
"commerce_cart_product_prepare",
"commerce_cart_product_remove"
],
"IF" : [
{ "commerce_payment_order_balance_comparison" : {
"commerce_order" : [ "site:current-cart-order" ],
"operator" : "\u003E=",
"value" : "100000"
}
},
{ "entity_has_field" : { "entity" : [ "commerce-product" ], "field" : "field_wholesale_price_1" } }
],
"DO" : [
{ "LOOP" : {
"USING" : { "list" : [ "site:current-cart-order:commerce-line-items" ] },
"ITEM" : { "list_item" : "\u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u043f\u0438\u0441\u043a\u0430" },
"DO" : [
{ "commerce_line_item_unit_price_amount" : {
"commerce_line_item" : [ "list-item" ],
"amount" : "10",
"component_name" : "base_price",
"round_mode" : "1"
}
}
]
}
}
]
}
}
спасибо. Попробую отпишусь.
Вот сделал для ролей по подобной структуре(все то же только первое условие
User has role(s)
Parameter: Пользователь: [site:current-user], Роли:Спец. цена, Match roles: любой
далее
Entity has field
Parameter: Entity: [commerce-product], Поле: field_spec
В Actions дбавил
Loop
-Parameter: Список: [site:current-cart-order:commerce-line-items]
-List item: Текущий элемент списка (list_item)
---------Set a data value
---------Parameter: Данные: [list-item:commerce-unit-price], Значение: [commerce-product:commerce-price]
В итоге никаких ошибок, никаких изменений в цене....я опять где-то ошибся?