Есть ли способ удалить несколько товаров, отфильтровав их по SKU? У меня есть около 1000 продуктов, которые я хочу удалить.
12
Самый быстрый способ сделать это - выполнить этот запрос напрямую.
DELETE FROM `catalog_product_entity` WHERE `sku` IN ('SKU1', 'SKU2', ...., 'SKU1000');
Все должно красиво каскадироваться. Значения атрибутов будут удалены, отношения категорий будут удалены, продажи, перекрестные продажи и связанные с ними и так далее.
[РЕДАКТИРОВАТЬ]
Есть ловушка для этого. Спасибо STW за это. Отзывы и рейтинги останутся сиротами, поскольку для них нет внешнего ключа к таблице продуктов.
->delete()
но уклоняется от любого прослушивания кода для событий. В наличии Magento кажется, что обзоры и рейтинги будут осиротевшими (они не будут удалены, когда их связанный продукт).catalog_product_entity_*
таблицы имеют FK наentity_id
поле кcatalog_product_entity.entity_id
полю. Они должны красиво каскадироваться.При всем уважении к Мариусу, но, пожалуйста, не взаимодействуйте напрямую с базой данных, если ее вообще можно избежать. Возможно, соответствующие таблицы будут обновлены автоматически, если ваш релиз Magento и все ваши расширения не содержат ошибок во всех нужных местах. Но если это не так, то подобные вещи могут разрушить ваш сайт.
Вместо этого вы можете использовать собственную функцию импорта CSV в Magento.
Просто перечислите свои SKU в файле, например:
...и т.д. Затем сохраните как файл CSV.
Затем в Системе> Импорт / Экспорт> Импорт выберите Тип объекта: Продукты и Поведение при импорте: Удалить объекты и импортируйте этот файл. Вот и все!
источник
Mage_ImportExport_Model_Import_Entity_Product::_deleteProducts()
)Вы можете сделать это программно. Создайте файл skustodelete.csv, в котором перечислены все подлежащие удалению скусы, а затем приведите код для продолжения.
источник
Не кодовый способ
В разделе администратора под
Manage Products
будет найти сетку со всеми вашими продуктами. Есть столбец с именемSKU
. Здесь вы можете отфильтровать ваши продукты по стоимости.Затем, после того как вы отфильтровали по SKU, вы можете использовать флажки слева, чтобы выбрать все элементы, которые вы хотите удалить.
Обратите внимание на тот,
select all
который будет выбирать все элементы в полной сетке иselect visible
который будет выбирать только элементы на текущей странице сетки.После того, как вы выбрали нужные элементы, вы можете использовать кнопку массового действия в верхней правой части сетки и выбрать опцию удаления.
Это предложит вам убедиться, что вы хотите удалить эти элементы. После выбора «Да» в этом всплывающем окне он продолжит удаление ваших элементов. В зависимости от настроек индекса вам может потребоваться выполнить переиндексацию после этого процесса.
источник
Кевин С. Вы можете удалить продукт по CSV-файлу. Просто следуйте за валом
Шаг 1 :
Создайте CSV-файл и пройдите мимо скуса, который вы хотите удалить из системы. Дайте имя файла как skus.csv
Шаг 2 :
Создайте и замените php-файл в вашем корневом каталоге. Затем мимо следующего кода
Примечание: я рекомендовал вам перед запуском этого кода вы должны получить резервную копию. Я надеюсь, что это поможет вам.
источник
Потому что список таблиц
являются внешними ключами catalog_product_entity.
Таким образом, при удалении записи в catalog_product_entity некоторые записи из вышеуказанных таблиц также будут удалены.
Код (реализовать ответ Мариуса) удалить все продукты, которые имеют entity_id <= 18069:
источник