Вопрос по связке Flag+Rules

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

Аватар пользователя asid2006 asid2006 9 января 2014 в 12:40

Есть интернет-магазин на Drupal Commerce. С помощью модуля flag к каждой позиции заказа (line item) может быть добавлен флаг "Готов к отправке". Нужно сделать так, чтобы если этот флаг установлен для всех позиций заказа, статус заказа изменялся на "Готов к отправке". Пытаюсь сделать через rules, но не могу понять как задать условие "если для всех позиций установлены флаги "готов к отправке"". Подскажите, как это можно сделать.

Комментарии

Аватар пользователя asid2006 asid2006 9 января 2014 в 15:06

пробовал flagged-commerce-line-item:order:commerce-line-items:0 - проверяет только первую позицию. Можно ли вместо номера позиции сказать "все"?

Аватар пользователя aa2007 aa2007 10 января 2014 в 8:58

"asid2006" wrote:
Но ведь его можно использовать только в действии? А мне нужно задать условие

верно. в loop пробегайте по line-items, используя отдельный компонент (у которого помимо входного параметра lime-items будет произвольная переменная), где проверяете состояние флага. если флаг не стоит, присваиваете переменной "1". далее в основном правиле добавляете еще один компонент, который проверяет ту самую переменную. если 0, то меняем статус. может даже можно как-то упростить.. но пока вот только это в голову пришло.

Аватар пользователя asid2006 asid2006 11 января 2014 в 11:21

Раньше не работал с компонентами Rules. Не могли бы вы более подробно расписать что куда добавлять? Либо подсказать толковый ман по компонентам на русском языке.

Аватар пользователя aa2007 aa2007 11 января 2014 в 13:52

Составление компонента почти ничем не отличается от обчного правила. Посмотрите скринкасты по тому же коммерцу с использованием правил. их довольно много. попробуйте составить парочку сами самых простых.

Аватар пользователя aa2007 aa2007 11 января 2014 в 13:54

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

Аватар пользователя asid2006 asid2006 11 января 2014 в 14:43

модули писал и хотел решить эту задачу модулем, но раз установлен rules, который это умеет, логичнее было бы использовать его