Здравствуйте! Столкнулся с проблемой удаления товаров из определенного термина таксономии магазина ubercart.
Выход вижу в написании запроса к таблицам MySQL и удалении из них записей о товаре. Записи о товаре нашел в таблицах field_revision_uc_product_image и node. Хотел бы узнать правильно ли я собираюсь удалить товар и может есть какой-то более действенный метод удалить товары?
Комментарии
А в чем собственно проблема при удалении?
Проблема в том, что удалить товар из адм. панели сайта, принадлежащий определенному термину таксономии нельзя (или я не нашел как).
Например есть такая структура:
Фрукты
-яблоки
-груши
Овощи
...
Из этой структуры мне нужно удалить все товары из термина яблоки. Для того чтобы удалить товар напрямую из базы, нужно знать какие таблицы нужно подчистить, чтобы не оставить лишних связей и лишнего мусора от старого товара в базе.
Этот функционал не предусмотрен стандартным поведением друпала, но достаточно легко реализуем с помощью модуля views + views_bulk_operation
Удалять товар прямым sql запросом вселенское зло, если уж есть желание удалять програмно, то пользуйтесь функцией node_delete();
Спасибо! Воспользовался модулем views_bulk_operation оказалось все проще чем я думал! Создал отдельную страницу во Views, где установил возможность выбора термина таксономии из выпадающего списка и добавил выбор операции при помощи views_bulk_operation. Также поставил доступ только для администратора.
В итоге при переходе на страницу mysite.ru/delete у меня появляется форма выбора термина таксономии и выбора действия над товарами этого термина. Теперь в любое время можно массово подчистить товары из определенной группы товаров.
у меня тоже бывают такие ситуации, где надо что-то удалить, отфильтровав сначала необходимые записи. Как написал glu2006, пользуюсь для этого views
1. При помощи функции taxonomy_select_nodes() получаем список номеров нод, которые хотите удалить.
2. Затем удаляем им, используя node_delete_multiple().