Выбор отфильтрованных товаров для экспорта или массового редактирования

Всем привет.
Сейчас, если мне нужно отредактировать или экспортировать много товаров(например 400), мне нужно:

  1. Загрузить 400 товаров на страницу(браузер начинает подвисать немного)
  2. Выбрать 400 товаров(не особо быстро работает)
    Ну и дальше заниматься уже по своим потребностям.

Что хочу предложить
Добавить возможность выбора всех, а не только тех, что на странице, товаров, которые отобраны для дальнейшей передачи в экспорт или массовое редактирование.


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

11 лайков

Очень нужная функция!

1 лайк

Отлично, спасибо за поддержку)

1 лайк

Поддерживаю!

Отлично, нас уже много)

Есть решение у меня. Рабочее

Поделитесь?

Тоже ооочень нужный функционал.

Оставьте пожалуйста лукаса первому сообщению для весомости

Так вы не выбирайте ничего и тогда в экспорт все уйдут.

Еще наш модуль экспорта категорий позволяет делать товаров из нужных категорий

Спасибо за предложение, но тут дело не в том, чтобы взять данные по категории, а по результатам фильтрации.
И не только для экспорта, но и для массового редактирования

1 лайк

Да
Напишите в личку

По фильтрам да, нет такого. Нужна доработка

Я думал вы поделитесь со всем сообществом :slightly_smiling_face:

  • Пункт первый

Добавьте файл в свой модуль /app/addons/ваш_модуль/controllers/backend/products.post.php
<?php
use Tygh\Registry;

if (!defined('BOOTSTRAP')) { die('Access denied'); }

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    return array(CONTROLLER_STATUS_OK);
}

if ($mode == 'manage') {
	Tygh::$app['session']['search_params'] = $_REQUEST;
}

if ($mode == 'export_search') {
	
	$params = Tygh::$app['session']['search_params'];
	$params['items_per_page'] = 0;
	
	list($products, $search) = fn_get_products($params, 0, DESCR_SL);
    
    if ($products) {
    	Tygh::$app['session']['product_ids'] = fn_array_column($products, 'product_id');
		
        if (empty(Tygh::$app['session']['export_ranges'])) {
            Tygh::$app['session']['export_ranges'] = array();
        }

        if (empty(Tygh::$app['session']['export_ranges']['products'])) {
            Tygh::$app['session']['export_ranges']['products'] = array('pattern_id' => 'products');
        }

        Tygh::$app['session']['export_ranges']['products']['data'] = array('product_id' => Tygh::$app['session']['product_ids']);

        unset($_REQUEST['redirect_url']);
        
        return array(CONTROLLER_STATUS_REDIRECT, 'exim.export?section=products&pattern_id=' . Tygh::$app['session']['export_ranges']['products']['pattern_id']);
    }
}
  • Пункт второй

и в /design/backend/templates/addons/ваш_модуль/hooks/products/action_buttons.post.tpl

{if $products}
	<li>{btn type="list" text=__("export_search") href="products.export_search"}</li>
{/if}
  • Пункт третий

Добавьте переменную “export_search”, можете назвать ее как “Экспортировать найденные”.

  • Пункт четвертый

Настройки сервера должны при этом позволять выгружать соответствующее кол-во товаров, необходимо проверить.

Вот и все.

10 лайков

Спасибо, отличнейшее решение.
Очень помогли)

Спасибо, отличное решение!