Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Как удалить 100к товаров?


alexaw
 Поделиться

Рекомендованные сообщения

получить их id, каждый прогнать через deleteproduct

для картинок добавить функцию

 

	private function delete_image($path) {
		if (isset($path)) {
			$path = rtrim(DIR_IMAGE  . $path);

			if (!file_exists($path)) {
				$error= 1;
			}

			if ($path == rtrim(DIR_IMAGE . 'catalog/', '/')) {
				$error = 1;
			}
		} else {
			$error = 1;
		}

		if (!$this->user->hasPermission('modify', 'common/filemanager')) {
      		$error = 1;  
    	}

		if (!isset($error)) {
			if (is_file($path)) {
				unlink($path);
			} elseif (is_dir($path)) {
				//$this->recursiveDelete($path);
			}

		}				

	}

в функцию deleteproduct в самое начало вставить что-то типа

 

$query = $this->db->query("SELECT p.image FROM " . DB_PREFIX . "product p WHERE p.product_id = '" . (int)$product_id . "'");
		
		if($query->row){
			$this->delete_image($query->row['image']);

			$results = $this->getProductImages($product_id);

			foreach ($results as $result) {
				$this->delete_image($result['image']);
			}
		}

 

Ссылка на комментарий
Поделиться на других сайтах

очистить таблицы БД все, которые __product

картинки удалить через панель хостинга, FTP  или папками в менеджере картинок

 

а ну это только если все товары удалять, если выборочно то не прокатит

Ссылка на комментарий
Поделиться на других сайтах

о, я предложу решение, как пользователь, а не программист, но.

Идем в админку, идем в настройки магазина. Делаем по 1000 элементов на странице

Идем в категорию товары.

Ставим в фильтре остаток 0

фильтруем товары.

выделяем все галочкой и удаляем.

 

Конечно 100 000 товаров это будет 100 раз нажать (каждый раз по тысяче), но знаю по себе, что некоторые вещи быстрее сделать на потоке, чем разбираться в коде.

Ну а если вы программист - то вам сверху подсказали. 

Выделил - удалил - пошел заниматься в браузере другой работой. 

Удалились товары - опять зашел удалил, занимаемся работой.

 

п.с. я прям предвижу, как это читают программисты и вносят меня в список странных людей :-D

 

п.с.п.с по идее если у вас хостинг или сервер позволяет ресурсы то наверное можно поставить и по 5000 элементов на странице. (но я не пробовал). Делал по 1000.

Изменено пользователем Guava
Ссылка на комментарий
Поделиться на других сайтах


Удалять с картинками?
Нужно наваять небольшой контроллер

Получить список товаров с нулевым остатком
И поштучно, методами pdoduct/delete
и unlinlk(image)
Т.е процесс длительный из-за обращений к картинкам


Можно создать временную таблицу с id не нужных товаров, и адресами картинок
А затем 5-6 запросами удалить из сопутсвующих таблиц - в принципе, это быстро - серверного времени хватит
А затем несложным контроллером - удалить картинки

Ссылка на комментарий
Поделиться на других сайтах

3 часа назад, alexaw сказал:

Как правильно и быстро удалить 100к товаров (в т.ч. и картинки) с нулевым остатком?

В АОП вроде есть такие инструменты, если вы его используете

Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.