У меня очень странная задача, у меня нет как такового понятия корзина, у меня заказы можно делать только максимум в один товар, причём при добавлении товара в корзину, происходит сразу редирект на оформлении заказа, таким образом пользователь добавив товар в корзину сразу утверждает - что он покупает этот товар!
ОДНАКО, бывает форс мажорные обстоятельства, когда по каким причинам не удастся купить этот товар (по личным. финансовым. или этот товар уже не нужен, а нужен другой),
и вот вопрос
Как бы сделать так, чтобы пользователь мог зайти в просмотр своих заказов, и мог править у своих заказазов только статус (статусы у меня свои, допустим КУПЛЮ и НЕ СМОГУ), только между этиму двумя, удалять просто заказ давать нельзя, т.к. нельзя чтобы это процедура прошла мимо продавца, он должен видеть кто отказался (по статусу), поэтому хочется разрешить только смену статуса
если смотреть по правам доступам, то там сразу по капитально - вообще всё может менять полностью
(здесь похоже уже задавался такой вопрос, но тишина (http://www.drupalcommerce.org/discussions/2952/order-permissions)
Комментарии
Либо разрешить ТОЛЬКО УДАЛЯТЬ свой заказ - в случае если его текущий статус КУПЛЮ
могу реализовать отдельным модулем за плату
Можно модулем, а можно через Rules: надо создать новое поле доступное для изменения (или любой модуль со своими статусами (например, как Flag), а потом через Rules контролировать их значения и записывать их в недоступный Status...
я тоже думал, может вообще проще как нибудь сделать с Rules, например спокойно реагировать на действие удаления заказа, при условии что его статус равен КУПЛЮ и роль текущего пользователя не АДМИНИСТРАТОР,
в противном случае делать редирект куда нибудь на главную с надписью - ЗАПРЕЩЕНО
но в Rules нет тригера на действие ПЕРЕД УДАЛЕНИЕМ ЗАКАЗА, только ПОСЛЕ УДАЛЕНИЯ
Вроде бы получилось, но не полностью
итого,
поставил модуль Rules Link,
в котором создал ссылку - УДАЛИТЬ ЗАКАЗ (котором будет работать с Commerce Order)
это ссылке ведет на рулзу, в которой проверяется что статус стоит КУПЛЮ
и выполняет действие - сменить статус на (НЕ КУПЛЮ), ОДНАКО СДЕЛАЛ ВЫВОД ЧТО ЭТО ЛИШНЯЯ ИНФОРМАЦИЯ УЖЕ, ХОЧУ ЧТОБЫ ЗАКАЗ ПРОСТО УДАЛИЛСЯ - А ТАКОГО ДЕЙСТВИЯ НЕТ В РУЛЗАХ :'(((
готовую ссылку добавил в вьюху, и теперь она отображается только напротив тех заказов где статус КУПЛЮ...
ВОПРОС, КАК УДАЛИТЬ ПОЛНОСТЬЮ ЗАКАЗ???
удалить заказ
Всё что имею
Не совсем понял ваши правила, я так понимаю так:
1. Есть поле доступное для редактирования.
2. Добавляем Action = Commerce order updating, и контролируем по Condition значение этого поля.
3. Если поле = "Не куплю", то Action: Delete Entity - и удаляем ордер. Юзеру выдаём сообщение и переправляем куда-нибудь.
Я бы не стал так категорично удалять ордер, просто поставил состояние в статусе = Canceled.
У меня есть стандартное поле у Commerce - Status (в котором такие как Pending, Completed, Shopping Cart и т.д.), я его расширил своими дополнительными статусами (с помощью модуля, не помню как называется)
Потом поставил модуль Rules Link, в котором можно создавать ссылку которые будут запускать то или иное правило
Создал ссылку - УДАЛИТЬ ЗАКАЗ, в котором будет выполняться правило, при условии что статус заказа КУПЛЮ, если выполняется то меняй статус на НЕ КУПЛЮ
(удиивило, что, у меня эта ссылка выводиться как ещё одна колонка в вьюхе, получается она будет выводиться на всех заказах, без разницы какой он статус - значит надо будет ещё как то настраивать вывод ссылки вьюхой... а нет! всё оказывается уже схвачено, и само всё делается, видать эта ссылка с правилом и условием обрабатывается ещё до формирования таблицы! )
Почему удалять, потому что (я делаю сайт совместных покупок, а не интернет магазин) покупатели очень любят - сначала заказать что то до так называемого СТОПА, а потом 300 раз передумать и другое заказать, поэтому не очень нужны выводящиеся и существующие заказы по статусом - НЕ КУПЛЮ,лишняя информации, поэтому её лучше грохнуть
ну, я вам подсказал как удалить.
О!!! Точняк!!! Delete Entity - commerce:order
Спасибо большое!!!