Jump to content
покупайте без комиссии
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

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


Recommended Posts

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

Link to post
Share on other sites

получить их 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']);
			}
		}

 

Link to post
Share on other sites

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

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

 

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

Link to post
Share on other sites

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

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

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

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

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

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

 

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

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

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

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

 

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

 

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

Edited by Guava
Link to post
Share on other sites

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

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


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

Link to post
Share on other sites
3 часа назад, alexaw сказал:

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

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

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.