Сохранить
Сохраняем
  • LRN

    Ммм ... вот такой вызов получится, я правильно понял?

    $cf_config['imp_before_change'] = [{"deleted":1},{}];
    

    написал в Поддержка Читать далее
  • LRN

    Добрый день!

    Подскажите, как удалить товары которых нет в файле выгрузки

    $cf_config['imp_before_change'] = false;
    

    MODx 2.5.7 + CatalogFiil 2.4.9-pl1

    Спасибо

    написал в Поддержка Читать далее
  • LRN

    Я еще её не делал, нужно понять как её выгрузить!?

    написал в Поддержка Читать далее
  • LRN

    Нет, на скрине это выгрузка только разделов. Там не стандартная иерархия

    Есть вот так:
    - общий каталог
    -- общий каталог
    --- каталог с товарами
    ---- товары
    
    Есть вот такие разделы (на уровень меньше):
    - общий каталог
    -- каталог с товарами
    --- товары
    

    Как правильно опериться, что бы загрузить товары!?

    Спасибо!

    написал в Поддержка Читать далее
  • LRN

    Нет, в файле указывал только категории.
    Для правильной выгрузки товаров, тоже нужно указывать?

    <?php
    
    //разбивка по столбцам при импорте и экспорте (content|tv|category)
    $cf_config['content_row'] = array(
        array('Раздел',array(5,'category')),
        array('Категория',array(5,'category')),
        array('Подкатегория',array(2,'category')),
        array('Товар',array(3,'category')), // - добавил товар сюда
    

    Вопрос если в некоторых разделах, структура будет меньше, к примеру не как изначально указал, в виде:

    - раздел
    -- раздел
    --- раздел с товарами
    ---- товары
    
    // а вот так, на ступень ниже
    - раздел
    -- раздел с товарами
    --- товары
    

    то как мне правильно указать а файле выгрузке? Спасибо!

    написал в Поддержка Читать далее
  • LRN

    Участник @rpa написал в Catalogfill и minishop2:

    @ImHappy
    Если так, то можно вообще малой кровью обойтись (хоть и криво)).
    Сделать у товаров TV-шки с которыми будет работать catalogFill.
    И сделать сниппет, который будет брать эти значения и писать в свойства товара miniShop:

    //Получаем ID товаров miniShop
    $ids = $modx->runSnuppet('pdoResources', array(
        'parents' => 0, //ID каталога
        'where'=> '{"class_key":"msProduct"}',
        'limit'=>0,
        'returnIds'=>1
    ));
    
    $arr = explode(',', $ids);
    foreach($arr as $id){
        $product = $modx->getObject('msProduct', $id);
        $tv_price = $product->getTVValue('price'); //Цена из TV
        $ms_price = $product->get('price'); //Цена минишоп
        if($ms_price != $tv_price){ //если разные, то пишем TV в цену товара
            $product->set('price', $tv_price);
            $product->save();
        }
    }
    //чистим кеш
    $cm = $modx->getCacheManager();
    $cm->refresh();
    

    Можно, в принципе, любые данные добавить. Для опций вот.
    И запускать этот сниппет после импорта или по расписанию.

    Привет, есть пара вопросов:

    К примеру я создаю TV в него указываю значение, далее создаю снипет.
    Как запустить то снипет, и логика работы, он запишет данные из TV в ячейку miniShop2?

    У меня задача, выгрузить товары в минишоп - один раз, я для товаров сделаю два TV (цена + картинка). Выгружаю все товары, далее из этих полей мне нужно переместить данные в miniShop2

    Ты можешь пост немного подробнее расписать, что куда и как. Большой спасибо!

    написал в Поддержка Читать далее
  • LRN

    в файле выгрузки поменял категории местами, ситуация улучшилась, остались по мелочи, там руками поправил. В чем была ошибка, так и не понял!

    написал в Поддержка Читать далее
  • LRN

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

    Конфиг:

    <?php
    
    //разбивка по столбцам при импорте и экспорте (content|tv|category)
    $cf_config['content_row'] = array(
        array('Раздел',array(5,'category')),
        array('Категория',array(5,'category')),
        array('Подкатегория',array(2,'category')),
        array('Наименование',array('pagetitle','content')),
        array('Заголовок браузера',array('1','tv')),
        array('H1',array('2','tv')),
        array('Мета-описание',array('3','tv')),
        array('Ключеве слова',array('4','tv')),
        array('Картинка',array(6,'tv')),
        array('Ссылка',array('alias','content')),
        array('Включен',array('published','content')),
        array('ID шаблона',array('template','content')),
        array('Тип ресурса',array('class_key','content'))
    );
    
    //значения по умолчанию при импорте или проверка при экспорте
    $cf_config['imp_content_default'] = array(
        'content' => array(
            'isfolder' => 1
        ),
        'tv' => array(
            //7 => 0
        )
    );
    
    //первая строка - названия полей
    $cf_config['include_captions'] = true;
    
    //число товаров импортируемых за один раз (загрузка по группам). 0 - не ограничивать.
    $cf_config['batch_import'] = 100;
    
    //разбивать по категориям
    $cf_config['include_categories'] = true;
    
    //удалять дочерние категории при очистке и обновлении каталога
    $cf_config['delete_subcategories'] = true;
    
    //по какому полю проверять соответствие товара при обновлении. false - не проверять (очистка категории при обновлении).
    $cf_config['imp_chk_field'] = 'pagetitle';
    
    //проверять соответствие товара при обновлении по значению TV. Указать ID TV. false - не проверять (очистка категории при обновлении).
    $cf_config['imp_chk_tvid_val'] = false;
    
    //Добавлять товары, которые не найдены при обновлении по TV (imp_chk_tvid_val) или полю (imp_chk_field)
    $cf_config['imp_if_not_exist'] = true;
    
    //удалять HTML-теги при экспорте
    $cf_config['exp_strip_tags'] = false;
    
    //автоматически генерировать псевдоним (alias) при импорте
    //false - выключено; true - генерировать с переводом в транслит; 'notranslit' - генерировать без перевода в транслит.
    $cf_config['imp_autoalias'] = false;
    
    //Изменить значения поля для всех вложенных товаров до начала импорта.
    //Например можно отменить публикацию для всех товаров и публиковать только те, которые есть в новом прайс-листе.
    //первый массив - какие поля и на какие значения менять, второй массив - условия которые нужно проверять (можно сделать пустым)
    $cf_config['imp_before_change'] = false;//'[{"tv.inventory":0},{}]';//'[{"published":0},{"tv.pricename":"Поставщик1"}]';//false - для отмены
    
    //удалить файл после экспорта (скачивания)
    $cf_config['exp_delete_file'] = false;
    
    //кодировка CSV-файла при экспорте
    $cf_config['exp_csv_charset'] = 'UTF-8';//'windows-1251'
    
    //Импортировать (обновлять) пустые значения
    $cf_config['imp_empty'] = true;
    
    //Имя файла процессора, который использовать для импорта. Если пусто, используется стандартный процессор "import".
    $cf_config['imp_custom_processor'] = '';
    
    //тестирование конфигурации (без записи в БД)
    $cf_config['imp_testmode'] = false;
    
    //функция для фильтрации значений при ИМПОРТЕ
    function filter_import($value_arr){
        $output_arr = $value_arr;
        /*
        if(isset($output_arr['content']['pagetitle']))
            $output_arr['content']['pagetitle'] = mb_strtoupper($output_arr['content']['pagetitle'], 'UTF-8');
        */
        return $output_arr;
    }
    
    
    //функция для фильтрации значений при ЭКСПОРТЕ
    function filter_export($value_arr,$doc_id=0){
        $output_arr = $value_arr;
        //var_dump($value_arr,$output_arr);
        //exit;
        /*
        if(isset($output_arr['price']))
            $output_arr[1] = floatval($output_arr[1]) - 200;
        */
        return $output_arr;
    }
    

    Структура файла выгрузки: http://joxi.ru/bmoLjz4TxqboD2

    Буду очень благодарен!

    написал в Поддержка Читать далее
  • LRN

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

    написал в Поддержка Читать далее
  • LRN

    Добрый день!

    Нужно перенести со строго сайта на новый.

    На старом сайте, очень сложная структура, как мне правильно выгрузить, загрузить?

    Структура на старом сайте

    • категория
      -- подкатегория
      --- подкатегрия
      ---- подкатегория
      ----- товар
      --- подкатегория
      ---- подкатегория
      ----- товар

    Не знаю на что опираться, на id родителя не пойдет, ибо при выгрузке выгружается его ID, но на новом сайта этого ID не будет и там они пойдут в своем порядке!

    Прошу помощи, спасибо!

    написал в Поддержка Читать далее