Jump to content

Recommended Posts

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

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

Link to post
Share on other sites

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");

Пишу по памяти, поэтому некоторые таблицы могут иметь схожие названия.
Link to post
Share on other sites
  • 1 year later...

 

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");

 

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

 

 

post-12698-0-31558000-1422565318_thumb.png

Edited by larenso
Link to post
Share on other sites
  • 4 months later...

Е

 

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

 

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

 

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

Link to post
Share on other sites

 

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

 

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

 

В файле /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/  НЕ удаляются. Их руками нужно. Не стал замарачиваться дальше править это)

Edited by larenso
Link to post
Share on other sites

В файле /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 они удаляются?

Edited by Maksclub
Link to post
Share on other sites

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

 

Не за что.

 

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

 

.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;
}
Link to post
Share on other sites

 

Не за что.

 

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

 


 

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

 

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

Edited by Maksclub
Link to post
Share on other sites

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

 

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

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. Если боитесь удалить случайно, на ссылку еще подтверждение повесить...

 

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

Link to post
Share on other sites
  • 2 months later...
truncate s_images

truncate s_products

truncate s_categories

truncate s_brands

 

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

Это с учетом удаления всех картинок на фтп домен / files / ...

После импорта товар размещается без картинок, либо картинки соответствуют не своему товару, тот же трабл с контен том к товарам.

Где следы остаются?

Если вручную удалять позиции через админку (на это уходит Очень много времени) - все ОК.

Заранее благодарен за ответ.

post-19553-0-00194700-1440787381_thumb.jpg

 

Link to post
Share on other sites

 

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
 
пробуем кнопку в админку...
Link to post
Share on other sites
  • 2 years later...
truncate s_images
truncate s_products
truncate s_categories

 


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

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

Link to post
Share on other sites

truncate s_images

truncate s_products

truncate s_categories

 

 

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

В API симплы нет метода удаления сразу всех товаров.
Link to post
Share on other sites

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

 

Что конкретно надо Вам подсказать?

Если где располается, то в папке api.

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...