Доброго времени суток.
Задача:
Делаю магазин по продаже видео.
После оплаты появлятеся доступ к видео и ссылка на скачивание файла (реализовано через Commerce File)
Создано следующее правило, которое выставляет значение количества идентичных товаров, при совпадении, равное 1:
"LABEL" : "Limit for products = 1",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules", "commerce_cart" ],
"ON" : { "commerce_cart_product_add" : [] },
"DO" : [
{ "data_set" : { "data" : [ "commerce-line-item:quantity" ], "value" : "1" } }
]
}
}
В управлении отображением для товаров, в поле Product (Форма добавления в корзину) установлена галка "Объединение подобных позиций: Включено"
После того как пользователь добавляет идентичный уже добавленному в корзину товару, счетчик количества обнуляется на 1. Это мне и нужно.
Но как только я включаю модуль Commerce File и настраиваю его, возникает проблема:
Позиции начинают задваиваться, затраиваться, взависисмости от того сколько раз пользователь добавил один и тот же товар в корзину.
Подскажите пожалуйста какое правило мне нужно написать, чтобы происходило объединение идентичных позиций в корзине либо они заменялись при совпадении.
Сам не могу допетрить
Комментарии
В качестве магазина используется Commerce
Возможно я не ясно выразился.
Нужно с помощью Rules сравнить аналогичные позиции в корзине.
Если есть совпадения, то удалить идентичные позиции.
Подскажите пожалуйста.
Пробую сделать вот так:
"LABEL" : "Empty cart",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules", "commerce_cart" ],
"ON" : { "commerce_cart_product_prepare" : [] },
"IF" : [
{ "data_is" : {
"data" : [ "commerce-order:commerce-line-items" ],
"value" : [ "commerce-order:commerce-line-items" ]
}
}
],
"DO" : [
{ "LOOP" : {
"USING" : { "list" : [ "commerce-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" : [
{ "list_remove" : {
"list" : [ "commerce-order:commerce-line-items" ],
"item" : [ "list-item" ]
}
}
]
}
}
]
}
}
Перед добавление товара в корзину провожу сравнение уже имеющихся позиций.
А вот дальше получается засада, не могу понять как удалить только совпавшую позицию, а не очистить всю корзину.
Правило которое приводится в этой статье (http://www.drupalcommerce.org/user-guide/working-cart-rules-events)также не действует.
Позиции начинают задваиваться.