Перейти к содержимому


Фото
- - - - -

Как удалить все товары из базы?

удаление товары импорт экспорт

  • Чтобы отвечать, сперва войдите на форум
18 ответов в теме

#1 Pycu4

Pycu4
  • Пользователь
  • 13 сообщений

Опубликовано 31.01.2013 - 04:31

После неудачного импорта очень много товаров добавились неправильно. Как удалить их все разом?

И как на будущее настроить, что после импорта товры не из прайса удалялись?
Хотя бы в import.php параметр удаления какой нужен для удаления позиции?



#2 JustDavali

JustDavali
  • Пользователь
  • 229 сообщений

Опубликовано 31.01.2013 - 04:40

перед импортом надо всегда бекап делать.
что бы потом при неудачном раскладе вернуть все как было.



#3 Enhill

Enhill
  • Пользователь
  • 172 сообщений
  • Заказчик
  • Версия CMS:2.x
  • Откуда:Оттуда

Опубликовано 31.01.2013 - 04:58

Как вариант запросом в базу:

mysql_query("TRUNCATE TABLE s_products");



#4 mart

mart
  • Пользователь
  • 1 331 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Venlo

Опубликовано 31.01.2013 - 07:33

mysql_query("TRUNCATE TABLE s_variants");
mysql_query("TRUNCATE TABLE s_products");
mysql_query("TRUNCATE TABLE s_product_images");
mysql_query("TRUNCATE TABLE s_relative_products");
mysql_query("TRUNCATE TABLE s_product_categories");
mysql_query("TRUNCATE TABLE s_options");

Пишу по памяти, поэтому некоторые таблицы могут иметь схожие названия.



#5 larenso

larenso
  • Пользователь
  • 61 сообщений
  • Дизайн, Программирование, Верстка, SEO
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 29.01.2015 - 23:26

mysql_query("TRUNCATE TABLE s_variants");
mysql_query("TRUNCATE TABLE s_products");
mysql_query("TRUNCATE TABLE s_product_images");
mysql_query("TRUNCATE TABLE s_relative_products");
mysql_query("TRUNCATE TABLE s_product_categories");
mysql_query("TRUNCATE TABLE s_options");

Пишу по памяти, поэтому некоторые таблицы могут иметь схожие названия.

 

Есть ошибки.

Вот верно:

 

mysql_query("TRUNCATE TABLE s_variants");
mysql_query("TRUNCATE TABLE s_products");
mysql_query("TRUNCATE TABLE s_images");
mysql_query("TRUNCATE TABLE s_related_products");
mysql_query("TRUNCATE TABLE s_products_categories");
mysql_query("TRUNCATE TABLE s_options");

 

Себе сделал в админке отдельный пункт. Для всей очистки товаров и заказов. То так лениво иногда по странице удалять было) 

 

 

Прикрепленные файлы:


Изменено: larenso, 30.01.2015 - 00:02


#6 Noxter

Noxter
  • Фрилансер
  • 64 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 30.01.2015 - 00:03

Не дай бог случайно какую то из кнопок нажать :D

#7 Maksclub

Maksclub
  • Фрилансер
  • 1 398 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 12.06.2015 - 19:34

Е

 

Себе сделал в админке отдельный пункт. Для всей очистки товаров и заказов. То так лениво иногда по странице удалять было) 


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

 

а вот каждый раз лезть в БД не комфортно что-то стало....



#8 larenso

larenso
  • Пользователь
  • 61 сообщений
  • Дизайн, Программирование, Верстка, SEO
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 12.06.2015 - 19:35

Не дай бог случайно какую то из кнопок нажать :D

 

Там конечно подтверждение сделано для удаления) 



#9 Maksclub

Maksclub
  • Фрилансер
  • 1 398 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 12.06.2015 - 19:38

Там конечно подтверждение сделано для удаления) 

 

Подскажите реализацию пожалуйста )



#10 larenso

larenso
  • Пользователь
  • 61 сообщений
  • Дизайн, Программирование, Верстка, SEO
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 12.06.2015 - 19:44


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

 

а вот каждый раз лезть в БД не комфортно что-то стало....

 

В файле /simpla/design/html/settings.tpl

		<!-- Параметры -->
		<div class="block layer">
			<h2>Очистка магазина</a></h2>
			<a class="clear_orders" id="clear_orders" href="javascript:void(0);">Удалить все <b>заказы</b></a> <a class="clear_products" id="clear_products" href="javascript:void(0);">Удалить все <b>товары</b></a>
					</div>
		<!-- Параметры (The End)-->

		
		<input class="button_green button_save" type="submit" name="save" value="Сохранить" />
			
	<!-- Левая колонка свойств товара (The End)--> 
	
</form>
<!-- Основная форма (The End) -->

{literal}
<script>
$(function() {
	$('#change_password_form').hide();
	$('#change_password').click(function() {
		$('#change_password_form').show();
	});
});


    $('#clear_orders').click(function(){
        function refresh()
        {
          if (confirm('Вы уверенны, что хотите удалить все заказы?'))
        {



		$.ajax({
 			 url: "ajax/clear_orders.php",
 			 	data: {clear:1},
  				success: function(data){
  				//console.log(data);
    				if(data)
    				{
window.location.reload();
					}
  				},
				error:function() {
					alert('error');
        		}  				
  				
		});

        } 
        else
        {
        return false;
        }
     }
        refresh();
    });
    
    
    $('#clear_products').click(function(){
        function refresh()
        {
          if (confirm('Вы уверенны, что хотите удалить все товары?'))
        {



		$.ajax({
 			 url: "ajax/clear_products.php",
 			 	data: {clear:1},
  				success: function(data){
  				//console.log(data);
    				if(data)
    				{
window.location.reload();
					}
  				},
				error:function() {
					alert('error');
        		}  				
  				
		});

        } 
        else
        {
        return false;
        }
     }
        refresh();
    });



</script>
{/literal}

 

Создаем файл в /simpla/ajax/clear_orders.php

<?php

chdir('../..');
require_once('api/Simpla.php');

class Clear_Order_Ajax extends Simpla
{	


	public function fetch()
	{
		setlocale(LC_ALL, 'ru_RU.UTF-8');
		$this->db->query('SET NAMES utf8');

		 if(!empty($this->request->get('clear'))){
		 	
$this->db->query('TRUNCATE s_orders');
$this->db->query('TRUNCATE s_orders_labels');
$this->db->query('TRUNCATE s_purchases');

		 }

		return true;

		}
	
}

$clear_order_ajax = new Clear_Order_Ajax();
$data = $clear_order_ajax->fetch();
if($data)
{
	echo $data;
}

 

Создаем еще один файл /simpla/ajax/clear_products.php

<?php

chdir('../..');
require_once('api/Simpla.php');

class Clear_Order_Ajax extends Simpla
{	


	public function fetch()
	{
		setlocale(LC_ALL, 'ru_RU.UTF-8');
		$this->db->query('SET NAMES utf8');

		 if(!empty($this->request->get('clear'))){
		 	
$this->db->query('TRUNCATE s_variants');
$this->db->query('TRUNCATE s_products');
$this->db->query('TRUNCATE s_images');
$this->db->query('TRUNCATE s_related_products');
$this->db->query('TRUNCATE s_products_categories');
$this->db->query('TRUNCATE s_options');
		 }

		return true;

		}
	
}

$clear_order_ajax = new Clear_Order_Ajax();
$data = $clear_order_ajax->fetch();
if($data)
{
	echo $data;
}

В последнем варианте смотрите внимательно, так как у вас может отличаться. У меня допустим к товарам еще цеплялись видео s_videos

 

P.S.

Фотографии товаров  из /products/  НЕ удаляются. Их руками нужно. Не стал замарачиваться дальше править это)


Изменено: larenso, 12.06.2015 - 19:45


#11 Maksclub

Maksclub
  • Фрилансер
  • 1 398 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 12.06.2015 - 19:47

В файле /simpla/design/html/settings.tpl

		<!-- Параметры -->
		<div class="block layer">
			<h2>Очистка магазина</a></h2>
			<a class="clear_orders" id="clear_orders" href="javascript:void(0);">Удалить все <b>заказы</b></a> <a class="clear_products" id="clear_products" href="javascript:void(0);">Удалить все <b>товары</b></a>
					</div>
		<!-- Параметры (The End)-->

		
		<input class="button_green button_save" type="submit" name="save" value="Сохранить" />
			
	<!-- Левая колонка свойств товара (The End)--> 
	
</form>
<!-- Основная форма (The End) -->

{literal}
<script>
$(function() {
	$('#change_password_form').hide();
	$('#change_password').click(function() {
		$('#change_password_form').show();
	});
});


    $('#clear_orders').click(function(){
        function refresh()
        {
          if (confirm('Вы уверенны, что хотите удалить все заказы?'))
        {



		$.ajax({
 			 url: "ajax/clear_orders.php",
 			 	data: {clear:1},
  				success: function(data){
  				//console.log(data);
    				if(data)
    				{
window.location.reload();
					}
  				},
				error:function() {
					alert('error');
        		}  				
  				
		});

        } 
        else
        {
        return false;
        }
     }
        refresh();
    });
    
    
    $('#clear_products').click(function(){
        function refresh()
        {
          if (confirm('Вы уверенны, что хотите удалить все товары?'))
        {



		$.ajax({
 			 url: "ajax/clear_products.php",
 			 	data: {clear:1},
  				success: function(data){
  				//console.log(data);
    				if(data)
    				{
window.location.reload();
					}
  				},
				error:function() {
					alert('error');
        		}  				
  				
		});

        } 
        else
        {
        return false;
        }
     }
        refresh();
    });



</script>
{/literal}

 

Создаем файл в /simpla/ajax/clear_orders.php

<?php

chdir('../..');
require_once('api/Simpla.php');

class Clear_Order_Ajax extends Simpla
{	


	public function fetch()
	{
		setlocale(LC_ALL, 'ru_RU.UTF-8');
		$this->db->query('SET NAMES utf8');

		 if(!empty($this->request->get('clear'))){
		 	
$this->db->query('TRUNCATE s_orders');
$this->db->query('TRUNCATE s_orders_labels');
$this->db->query('TRUNCATE s_purchases');

		 }

		return true;

		}
	
}

$clear_order_ajax = new Clear_Order_Ajax();
$data = $clear_order_ajax->fetch();
if($data)
{
	echo $data;
}

 

Создаем еще один файл /simpla/ajax/clear_products.php

<?php

chdir('../..');
require_once('api/Simpla.php');

class Clear_Order_Ajax extends Simpla
{	


	public function fetch()
	{
		setlocale(LC_ALL, 'ru_RU.UTF-8');
		$this->db->query('SET NAMES utf8');

		 if(!empty($this->request->get('clear'))){
		 	
$this->db->query('TRUNCATE s_variants');
$this->db->query('TRUNCATE s_products');
$this->db->query('TRUNCATE s_images');
$this->db->query('TRUNCATE s_related_products');
$this->db->query('TRUNCATE s_products_categories');
$this->db->query('TRUNCATE s_options');
		 }

		return true;

		}
	
}

$clear_order_ajax = new Clear_Order_Ajax();
$data = $clear_order_ajax->fetch();
if($data)
{
	echo $data;
}

В последнем варианте смотрите внимательно, так как у вас может отличаться. У меня допустим к товарам еще цеплялись видео s_videos

 

P.S.

Фотографии товаров  из /products/  НЕ удаляются. Их руками нужно. Не стал замарачиваться дальше править это)

 

Огромное спасибо! :) Я так понимаю — из originals они удаляются?


Изменено: Maksclub, 12.06.2015 - 19:56


#12 larenso

larenso
  • Пользователь
  • 61 сообщений
  • Дизайн, Программирование, Верстка, SEO
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 12.06.2015 - 19:51

Огромное спасибо! :)

 

Не за что.

 

Еще забыл классы передать.

 

.clear_orders {
  display: block;
  float: left;
  width: auto;
  font-size: 12px;
  text-decoration: none;
  padding: 7px 17px 7px 50px;
  border: 1px solid #c0c0c0;
  color: #5e5e5e;
  background: #FFE8E8 url(../images/menu/orders.png) no-repeat -17px -5px;
  border-radius: 15px;
  -moz-border-radius: 15px;
  -khtml-border-radius: 15px;
  -webkit-border-radius: 15px;
  white-space: nowrap;
  margin-top: 3px;
  margin-right: 15px;
}
.clear_orders:hover {
	color: #FFFFFF;
    background: #FF6060 url(../images/menu/orders.png) no-repeat -17px -5px;
}

.clear_products {
  display: block;
  float: left;
  width: auto;
  font-size: 12px;
  text-decoration: none;
  padding: 7px 17px 7px 50px;
  border: 1px solid #c0c0c0;
  color: #5e5e5e;
  background: #FFE8E8 url(../images/menu/catalog.png) no-repeat -15px -22px;
  border-radius: 15px;
  -moz-border-radius: 15px;
  -khtml-border-radius: 15px;
  -webkit-border-radius: 15px;
  white-space: nowrap;
  margin-top: 3px;
  margin-right: 15px;
}
.clear_products:hover {
	color: #FFFFFF;
    background: #FF6060 url(../images/menu/catalog.png) no-repeat -15px -22px;
}


#13 Maksclub

Maksclub
  • Фрилансер
  • 1 398 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 12.06.2015 - 20:08

Не за что.

 

Еще забыл классы передать.

 


 

Да стили не нужны, тестовый же сайт, а вот ошибочку выдает, правда на кнопке "Удалить все заказы", товары пока не могу стереть.

 

UPD: Невнимательно сделал... спасибо ) Все работает, clear_orders.php не создал


Изменено: Maksclub, 12.06.2015 - 20:10


#14 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 12.06.2015 - 20:36

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

 

Надо бы проще, примерно так:

1. в simpla/index.php  в конце добавить:

if($_REQUEST['clear_products']){
$backend->db->query('TRUNCATE s_variants');
$backend->db->query('TRUNCATE s_products');
$backend->db->query('TRUNCATE s_images');
$backend->db->query('TRUNCATE s_related_products');
$backend->db->query('TRUNCATE s_products_categories');
$backend->db->query('TRUNCATE s_options');
}

 

2. В нужном месте в админке поставить ссылку <a href="simpla?clear_products=yes">Удалить все товары</a>

3. Если боитесь удалить случайно, на ссылку еще подтверждение повесить...

 

Аналогично по заказам...



#15 Xdriver

Xdriver
  • Пользователь
  • 7 сообщений
  • Заказчик, Пользователь

Опубликовано 28.08.2015 - 21:45

truncate s_images
truncate s_products
truncate s_categories
truncate s_brands
 
Это все прекрасно, но при импорте смотрим картинку... undefined
Это с учетом удаления всех картинок на фтп домен / files / ...
После импорта товар размещается без картинок, либо картинки соответствуют не своему товару, тот же трабл с контен том к товарам.
Где следы остаются?
Если вручную удалять позиции через админку (на это уходит Очень много времени) - все ОК.
Заранее благодарен за ответ.
Прикрепленный файл  simpla_import.jpg   41,47К   65 раз скачано
 


#16 Xdriver

Xdriver
  • Пользователь
  • 7 сообщений
  • Заказчик, Пользователь

Опубликовано 28.08.2015 - 22:13

truncate s_images
truncate s_products
truncate s_categories
truncate s_brands
 
Это все прекрасно, но при импорте смотрим картинку... undefined
Это с учетом удаления всех картинок на фтп домен / files / ...
После импорта товар размещается без картинок, либо картинки соответствуют не своему товару, тот же трабл с контен том к товарам.
Где следы остаются?
Если вручную удалять позиции через админку (на это уходит Очень много времени) - все ОК.
Заранее благодарен за ответ.

Решено транком

truncate s_images
truncate s_products
truncate s_categories
truncate s_brands
TRUNCATE s_variants
TRUNCATE s_related_products
TRUNCATE s_products_categories
truncate SC_product_options
truncate SC_product_options_set
truncate s_purchases
 
пробуем кнопку в админку...


#17 RedPython

RedPython
  • Пользователь
  • 13 сообщений
  • Дизайн, Программирование, Верстка, SEO, Заказчик, Пользователь
  • Откуда:Москва

Опубликовано 09.08.2018 - 15:55

truncate s_images
truncate s_products
truncate s_categories

 


Это все прекрасно, но при импорте смотрим картинку...

здорово что у Вас то всё "прекрасно"  :) ... а  быть может кто API подскажет Simpla, чтобы этим велоспидизмом не заниматься?



#18 Noxter

Noxter
  • Фрилансер
  • 64 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 09.08.2018 - 16:57

truncate s_images
truncate s_products
truncate s_categories
 

здорово что у Вас то всё "прекрасно"  :) ... а  быть может кто API подскажет Simpla, чтобы этим велоспидизмом не заниматься?

В API симплы нет метода удаления сразу всех товаров.

#19 phukortsin

phukortsin
  • Фрилансер
  • 1 109 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 09.08.2018 - 17:27

а  быть может кто API подскажет Simpla

 

Что конкретно надо Вам подсказать?
Если где располается, то в папке api.

Если как изменить API в Simpla, чтобы был нужный Вам функционал, то это надо аккуратно программировать. Как сделать - в теме дано даже два способа. Если Вам это совсем непонятно, то надо искать мастера, который Вам выполнит за денежку...







Также с меткой «удаление, товары, импорт, экспорт»

1 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых


    Bing (1)