Последние темы


Получить имена и значения всех TV

  • Есть Шаблон товара, там куча ТВ полей.
    Как вывести в табличном виде на страницу товара, типо так:
    Артикул: Н45Г
    Цвет: Жёлтый
    Скажем у меня параметров (ТВ) 200, что бы руками не прописывать, как это сделать?
    И выводить только те поля, которые заполнены.
    Помогите пожалуйста! Заранее Благодарю!

  • @CSite
    Если у вас 200 TV, то вам нужно сесть и подумать над структурой и уйти от того, чтобы было 200 TV.
    Даже если вы настроите вывод, то со временем сайт будет сильно тормозить.

  • Я бы на вашем месте заменил их все одним migx полем, где в форму "по умолчанию" ввёл все нужные названия.
    И тогда у каждого товара бы уже было migx тв, со всему нужными параметрами. Например, Цвет - ... (пустое значение по умолчанию). И так было бы даже удобнее.

  • Как тогда с импоот-эуспорт поступать?

  • @CSite насколько я помню, http://e-store.modx-shopkeeper.ru/katalog/dopolneniya-dlya-modx/import-eksport-tovarov.html вот это замечательное дополнение умеет экспорт/импорт делать. В том числе и migx полей.

  • А catalogfill можно настроить для импорта в minishop2?

  • @pooding то что оно это умеет я знаю, я не вижу всю картину пока что.
    как же тогда тегМанагер2, сможет он с такой таблицей мигс работать?

  • @CSite Не пойму, вы хотите скрестить minishop и TagManager?
    Не уверен, что эта связка работает.

    Мне больше SHK нравится. Ну да ладно, можете привести пример ваших товаров из разных категорий, чтобы понять почему у вас 200 ТВ.

  • Что касается catalogFill и MIGX, то можно добавить пользовательские функции (на импорт и на экспорт), которые будут принимать понятный клиенту формат данных и преобразовывать его в JSON, которым оперирует MIGX (и обратно).
    К примеру, имеем галерею товара (TV с ID=37). В таблице MIGX есть поля image и title.
    В поле Excel-файла можно указывать так:

    /images/catalog/image1.jpg||Заголовок1,/images/catalog/image2.jpg||Заголовок2

    и т. д.
    Функция для импорта тогда будет примерно такая:

    //функция для фильтрации значений при ИМПОРТЕ
    function filter_import($value_arr){
    $output_arr = $value_arr;
     if(!function_exists("clrMIGX")) {
         function clrMIGX($inp){
            $arr = explode(',', $inp);
    	    $count = 1;
    	    foreach($arr as $item){
                    $a_item = explode('||', $item);
                    $image = $a_item[0];
                    $image = str_replace('/', '\/', $image);
                    $title = $a_item[1];
                    $out .= '{"MIGX_id":"'.$count.'","image":"'.$image.'","title":"'.$title.'"},';
                    $count++;
                }
            $out = str_replace("\n", "", $out);
            return '['.mb_substr($out, 0, -1).']';
        }
     }
    //применяем функцию к TV с ID=37:
    if(isset($output_arr['tv']['37'])) $output_arr['tv']['37'] = clrMIGX($output_arr['tv']['37']);	
    return $output_arr;
    }
    

    Для экспорта можно сделать типа этого:

    //функция для фильтрации значений при ЭКСПОРТЕ
    function filter_export($value_arr,$doc_id=0){
    $output_arr = $value_arr;    
    if(!function_exists("clearMIGX")) {
    function clearMIGX($input){
        $items = json_decode($input, true);
            foreach($items as $item){
    	$image = $item['image'];
    	$title = $item['title'];
    	$out .= $image.'||'.$title.',';
            }
        return mb_substr($out, 0, -1);
    }
    }
    //применяем функцию к TV с ID=37:
    if(isset($output_arr[37])) $output_arr[37] = clearMIGX($output_arr[37]);    
    return $output_arr;
    }
  • @rpa, данное решение создает один столбец из array('FIELD',array('id','tv'))), и заполняет его значениями полей MIGX с разделением ||. А возможно ли под каждое поле создать свой столбец с заданным заголовком, при этом столбец FIELD чтобы не создавался вовсе? Спасибо 🙂

 

Последние комментарии

  • Документация: https://modx-shopkeeper.ru/docs/shopkeeper-3/shopkeeper-3
    Там написано какие плейсхолдеры доступны.
    Если имеется ввиду цена одного товара, то [[+price]] - это цена без доп. параметров.

    Читать далее
  • D

    Такой вопрос: как вывести цену без дополнительных атрибутов? В мини-корзине.

    Читать далее
  • в категорию assets/catalogfill/files/ экспорт происходит нормально.

    Что-то в вашем сообщении всё перемешано. Папки или категории? А если папки (с файлами), то какие у них могут быть id...
    Если появляется сообщение про категорию, то это имеется ввиду категория каталога (документ MODX).

    Читать далее
  • D

    Добрый день!

    Искал такой функционал в настройках или в конфигах, найти не получилось. Суть такая: клиент может загружать файлы только в media/ (Источник файлов 1 Filesystem, но есть еще один с полным доступом в корень id 4), таким образом, при загрузке файлов CatalogFill не видит файлы. Возникакет ошибка о том что нет такого каталога. Создаю его в ФС. Загрузка не происходит. в категорию assets/catalogfill/files/ экспорт происходит нормально. Есть какие-то возможности переключить именно для catalogfill возможность загрузить в четверый источник без модификации самого компонента?

    Версия последняя, производил обновление сегодня.

    Заранее благодарен.

    Читать далее