Помощь Удаление товаров (более 10000)

kunizza

Постоялец
Регистрация
20 Май 2014
Сообщения
62
Реакции
21
Добрый день. Вот столкнулся с такой задачей: нужно удалить 10000 товаров. Вводный данные.
Есть диапазон ID от 1 до 15000. Среди этого диапазона есть активные товары, их трогать нельзя. Необходимо удалить только неактивные.
Поскольку готовых решений я не нашел, появилась мысль попробовать написать скрипт.
Код:
<?php
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'config.inc.php');
include(dirname(__FILE__) . '/init.php');

$res = Db::getInstance()->executeS('SELECT `id_product` FROM `'._DB_PREFIX_.'product` WHERE (`id_product` BETWEEN 1 AND 15000) AND `active` = 0 ORDER BY `id_product` DESC LIMIT 100 ');

echo "<p>(".date('Y/m/d H:i:s').")Удаляем товары ...</p>";
if ($res) {
    foreach ($res as $row) {
        echo "<p>(".date('Y/m/d H:i:s').") Удаляем товар с ID <b>".$row['id_product']."</b>...";
        $p = new Product($row['id_product']);
        if(!$p->delete()) {
            echo " <span style='color: red'>Не вышло удалить товар!</span></p>";
        } else {
            echo " <span style='color: green'>Удалено!</span></p>";
        }
    }
}
?>

<script>
window.location.reload();
</script>

Какие проблемы могут возникнуть при использовании такого метода? Что я не учел?

ЗЫ. Если кто знает другие методы решения данной проблемы - буду крайне благодарен.
 
в модуле clener есть функция удаления всех товаров, можно там глянуть как реализовано и подкорректировать под свои нужды
 
In the cleaning module this option she is irreversible you will not be able to recover products and categories ...?
 
Последнее редактирование:
а в каталоге по неактивным отсортировать и удалить?
 
а в каталоге по неактивным отсортировать и удалить?
В этом то и суть, что не все неактивные товары нужно удалить. Пока самый простой спасоб который я придумал - актуализировать товары в прайс csv и удалить через импорт ("удалять товары которых нет в сsv" параметр) в Store Manager. Однако, очень хотелось бы обойтись без Store Manager.
 
может проще написать sql-запрос и удалить сразу из базы
 
Может через пресловутый Storemanager? отсортировать по активности и удалить все , что ниже?
 
Через запрос в DB
DELETE FROM ps_product WHERE active = 0
 
Через запрос в DB
DELETE FROM ps_product WHERE active = 0
Слишком много связей в таблицах. Продукты, категории, заказы... Это не совсем верный результат. + останутся все картинки, что будет занимать место на диске.
 
Здравствуйте, а удалив все товары с которыми раньше были сделаны заказы, какие последствия могут быть? На PS 1.6 пока только нашел такое, что нажав перезаказать в кабинете клиента отправляет на пустую корзину, подскажите может есть решения для удаления не типовые и не такие радикальные? И еще, может можно как то сделать невидимыми в админке часть товаров до определенного номера например?
 
Назад
Сверху