Помощь Удаление товаров (более 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>

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

ЗЫ. Если кто знает другие методы решения данной проблемы - буду крайне благодарен.
 
Здравствуйте, а удалив все товары с которыми раньше были сделаны заказы, какие последствия могут быть? На PS 1.6 пока только нашел такое, что нажав перезаказать в кабинете клиента отправляет на пустую корзину, подскажите может есть решения для удаления не типовые и не такие радикальные? И еще, может можно как то сделать невидимыми в админке часть товаров до определенного номера например?

по задумке и логике современной екоммерс-системы, особенно в цивилизованных странах, удалять ни заказы ни товары - нельзя

а поможет отключение и, если важно SEO - то и 301 перенаправление

и всё будет ОК
 
по задумке и логике современной екоммерс-системы, особенно в цивилизованных странах, удалять ни заказы ни товары - нельзя

а поможет отключение и, если важно SEO - то и 301 перенаправление

и всё будет ОК
согласен, тоже самое предлагал, или нет в наличии их сделать(сообщить о поступлении), но хозяин-барин как говорится, вот мешают и все тут

поэтому и вопрос такой родился, может как оставить незаметными для админа можно, чтобы их в админке не было например для каких то пользователей, а на витрине они остались?
 
Устанавливаете триал престашоп менеджера. Там фильтруете по нужным параметрам и просто удаляете. Потом запускаете проверку картинок на сайте(чтобы увидеть все которые не удалились с товаром, такое может быть и через удаление стандартным методом). И тоже удаляете. Займет немного времени, но нужно будет просто подождать. а не кликать на удаление.
 
Слишком много связей в таблицах. Продукты, категории, заказы... Это не совсем верный результат. + останутся все картинки, что будет занимать место на диске.
На регру, почему то как не удаляй товары все равно сохраняются превью от товаров и занимает базу, пока не пройдет время ( 1 мес) с момента дополнения конкретгых товаров, ( резервные копии), после удаления резервных копий почему то в базе только название картинок остается, раз 10 просил поддержку, они вроде как делают, ждите сутки до обновления, проходят сутки база без изменений, только сайт сломали, заново все делать приходится
 
На регру, почему то как не удаляй товары все равно сохраняются превью от товаров и занимает базу, пока не пройдет время ( 1 мес) с момента дополнения конкретгых товаров, ( резервные копии), после удаления резервных копий почему то в базе только название картинок остается, раз 10 просил поддержку, они вроде как делают, ждите сутки до обновления, проходят сутки база без изменений, только сайт сломали, заново все делать приходится
Я писал выше про программу и триальный режим. У нее есть даже функция - анализ изображений. Ищет лишние и удаляет их. Это самый простой способ.
 
Назад
Сверху