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


Импорт с сохранением структуры вложенности catalogFill

  • Смотрите конфигурационный файл "with_categories.php", там по умолчанию два уровня категорий, но вы можете их добавить сколько угодно по такому же принципу.

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

    Конфиг:

    <?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

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

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

  • На сколько я понял, у вас в выгрузке категории перемешаны с товарами. В колонке "Наименование" должны быть только товары, а не категории. Лучше сначала делать отдельную выгрузку для категорий в отдельном файле.

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

    <?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')), // - добавил товар сюда
    

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

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

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

  • Я смотрю по ID шаблонов и вижу, что категории перемешаны с товарами.

    0_1540738880359_screenshot_054.png

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

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

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

    Спасибо!

  • Покажите выгрузку с товарами.

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

  • Я делал не хитрый макрос на vb для экселя, чтобы категории товаров шли справа на лево от самой вложенной до верхней, иногда в первых колонках останутся пробелы. Но в таком раскладе получится, что у самой вложенной по вашему файлу конфигурации будет шаблон 2 и категории и раздела 5. При этом если у раздела с товарами нет родителей она все равно получит шаблон 2. В этом же загвоздка если я правильно понимаю. У меня так все работало.

 

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

  • A

    @Andchir у меня не переходит к оплате после переделки. Я заявку в Яндекс сделал как у них в инструкции написано, что мне работа по старому протоколу нужна. В течении суток уже изменение произойдет, буду в итоге paykeeper2 использовать.

    Читать далее
  • Тут человек написал как переделать модуль оплаты от Яндекса на Shopkeeper 3
    http://forum.modx-shopkeeper.ru/topic/1261/paykeeper2-и-новый-api-яндекс-кассы/4

    Читать далее
  • Будет ли переписан модуль paykeeper2 для работы с Яндекс Кассой по новому API?

    Бесплатно нет. Я уже говорил, что Shopkeeper 3 (и всё что с ним связано) не будет развиваться. Компонент оплаты уже не продается. Но можете попробовать организовать сбор средств на эту работу. Нужно 5000 руб.

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

    Участник @Andchir написал в Подключение через Paykeeper2:

    В это компоненте нет поддержки кассовых аппаратов для Яндекс.Кассы. Поэтому он уже убран с продажи.

    А так же Яндекс Касса теперь стала работать по новому API по умолчанию, модуль для Omnipay новый API не поддерживает я так понял. @Andchir Будет ли переписан модуль paykeeper2 для работы с Яндекс Кассой по новому API?

    Читать далее