Доброго дня! Возникла проблема с catalogfill modx revo версия catalogfill 2,7



  • Суть проблемы.
    Товары на сайте импортируются в таблицу migx_db , в конфиге catalogfill добавляю дополнительный столбец со старой ценой товара. Соответственно в чанке добавляю необходимое дополнительное поле. Но почему то в результате импорта, отображается совершенно рандомная стоимость. Т.е. таких чисел не было в таблице.
    При импорте пишет вот что:Консоль запущена...
    [pThumb Cache Manager] Clean Level: 0 || Max Age: 30 days || Max Size: 100 MB || Max Files: 10000
    :: Skipping cache cleanup based on settings

    Подскажите пожалуйста как решить проблему?


  • Администраторы



  • шопкипер 3
    версия катлогфилла 2,7
    импорт происходит из книги ексель



  • @Andchir для кэширования ничего не установлено



  • Эта запись удалена!


  • Эта запись удалена!


  • <?php
    
    //Название класса таблицы товаров в БД
    $cf_config['className'] = 'shopContent';
    //Название пакета таблицы товаров в БД
    $cf_config['packageName'] = 'shop';
    //Название поля ID родителя
    $cf_config['parent_field'] = 'resource_id';
    
    //разбивка по столбцам при импорте и экспорте (content|tv|category)
    $cf_config['content_row'] = array(
        array('Категория',array(3,'category')),//3 - ID шаблона категории
        array('Подкатегория',array(5,'category')),//3 - ID шаблона подкатегории
        array('Артикул',array('articul','content')),
            array('Код',array('codeT','content')), //Добавить в базу
        array('Наименование',array('pagetitle','content')),
        array('Цена розничная',array('price','content')), //Цена розничная
         array('Цена розничная после деноминации',array('priceOldFile','content')), //Цена розничная после деноминации
            array('ЦенаОпт',array('priceOpt','content')), //Цена оптовая Добавить в базу
            array('Цена Оптовая',array('priceOldOptFile','content')), //Цена оптовая после деноминации
            array('Объем закупки',array('minV','content')), //Добавить в базу
            array('Шаг объема',array('stepV','content')), //Добавить в базу
            array('Единица измерения',array('izm','content')), //Добавить в базу
        array('Количество',array('inventory','content')),    
        array('Картинка',array('image','content')),
        array('Краткое описание',array('introtext','content')),
        array('Подробное описание',array('content','content')),
            array('новый товар',array('newT','content')),
            array('Лидер продаж',array('liderT','content')),
            array('Спец предложение',array('specT','content')),
            array('Производитель',array('param1','content')),
            array('Импортер',array('importer','content')),
            array('Сервисный центр',array('scenter','content')),
            array('Гарантия',array('garant','content')),
            
            array('Сечение',array('sechenie','content')),
            array('Марка',array('marka','content')),
            array('Цвет',array('color','content')),
            array('Производитель',array('brand','content')),
            array('Обозначение',array('oboz','content')),
            array('КоличетвоПолюсов',array('countPol','content')),
            array('Ампераж',array('amperaj','content')),
            array('ТипУстановки',array('typeUst','content')),
            array('Размер',array('size','content')),
            array('ТипИзделия',array('typeIzd','content')),
            array('Цвет',array('color2','content')),
            array('Сечение',array('sechenie2','content')),
            array('Количество Контактов',array('countCont','content')),
            array('Мощность',array('power','content')),
            array('Цоколь',array('cokol','content'))
            
          /*  
            array('МатериалКорпуса',array('material','content')),
            array('СтепеньЗащиты',array('stepenZ','content')),
            
            
            */
            
            
            
            
           
    );
    
    	
    
    
    //значения по умолчанию при импорте или проверка при экспорте
    $cf_config['imp_content_default'] = array(
        'content' => array(
            'deleted' => 0,
            'published' => 1,
            'template' => 1
            //'createdon' => strtotime("now")
            //'publishedon' => strtotime("now")
            //'pub_date' => strtotime("now")
            //'editedby' => 1
            //'editedon' => strtotime("now")
        ),
        'tv' => array(
            //7 => 0
        )
    );
    
    //первая строка - названия полей
    $cf_config['include_captions'] = true;
    
    //число товаров импортируемых за один раз (загрузка по группам). 0 - не ограничивать.
    $cf_config['batch_import'] = 300;
    
    //разбивать по категориям
    $cf_config['include_categories'] = true;
    
    //удалять дочерние категории при очистке и обновлении каталога
    $cf_config['delete_subcategories'] = false;
    
    //по какому полю проверять соответствие товара при обновлении. 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'] = true;
    
    //Изменить значения поля для всех вложенных товаров до начала импорта.
    //Например можно отменить публикацию для всех товаров и публиковать только те, которые есть в новом прайс-листе.
    //первый массив - какие поля и на какие значения менять, второй массив - условия которые нужно проверять (можно сделать пустым)
    $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'] = '';
    
    //путь (xpath) в XML структуре до товаров
    $cf_config['imp_xml_itemsparent_path'] = '';//'/catalog/shop/offers';
    
    //Структура XML файла для импорта
    $cf_config['imp_xml_structure'] = '';
    
    //тестирование конфигурации (без записи в БД). Отчёты -> Журнал ошибок.
    $cf_config['imp_testmode'] = false;
    
    //функция для фильтрации значений при ИМПОРТЕ
    function filter_import($value_arr){
        $output_arr = $value_arr;
        
        if(isset($output_arr['content']['pagetitle']))
            $output_arr['content']['pagetitle'] = str_replace("*","х",$output_arr['content']['pagetitle']);
        
        if(isset($output_arr['content']['image']))
            $output_arr['content']['image'] = "images/".$output_arr['content']['image'];
        if(isset($output_arr['category']['0']['0']))
            $output_arr['category']['0']['1'] = str_replace(array("32. ","31. ","30. ","29. ","28. ","27. ","26. ","25. ","24. ","23. ","22. ","21. ","20. ","19. ","18. ","17. ","16. ","15. ","14. ","13. ","12. ","11. ","10. ","9. ","8. ","7. ","6. ","5. ","4. ","3. ","2. ","1. "),"",$output_arr['category']['0']['1']);
        if(isset($output_arr['category']['1']['0']))
            $output_arr['category']['1']['1'] = str_replace(array("32. ","31. ","30. ","29. ","28. ","27. ","26. ","25. ","24. ","23. ","22. ","21. ","20. ","19. ","18. ","17. ","16. ","15. ","14. ","13. ","12. ","11. ","10. ","9. ","8. ","7. ","6. ","5. ","4. ","3. ","2. ","1. "),"",$output_arr['category']['1']['1']);
        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;
    }
    
    
    ?>```


  • <div class="row item product shk-item string">
        <div class="columns large-3 small-3 medium-3">
            <div class="product-img small-img">  
              <a href="[[~[[+resource_id]]]][[+alias]].html">
                    <img class="shk-image shk-image2" src="[[+image:is=``:then=`images/no-image-200.png`:else=`[[+image:pthumb=`w=180&h=180&zc=0&f=png&bg=#FFF`]]`]]" alt="" />
                </a>
            </div>
        </div>
        <div class="columns large-4 small-4 medium-4"> 
            <div class="product-name">
                <a href="[[~[[+resource_id]]]][[+alias]].html"><strong>[[+pagetitle:replace=`*==х`]]</strong></a>
            </div>
             <div class="product-descr">
                [[+introtext]] 
            </div>
        </div> 
        <div class="columns large-2 small-2 medium-2">
            <div class="product-price priceStr">
    <span class="shk-price ">[[+price:checkPrice=`[[+priceOpt]]`:num_format]]</span> <!--[[!checkPriceInput:is=`__priceOptFile`:then=`<br>рублей без НДС`:else=`руб.`]]  <br><br>          <!--<span class="round alert label preview"><a href="#" data-reveal-id="myModalPreview" data-reveal-ajax="[[~887]]?previewid=[[+id]]">Предпросмотр</a></span>-->
            </div>
           <div class="product-price1">
          <span class="shk-price">[[*priceOldFile:checkPrice=`[[*priceOptOld]]`:num_format]] </span> [[!checkPriceInput:is=`__priceOptFile`:then=`<br>рублей без НДС`:else=`руб.`]]  
        </div> 
        </div>
        <div class="columns large-3 small-3 medium-3">
            <div class="product-order text-center">
        <form action="[[~[[*id]]]]" method="post">
                <input type="hidden" name="ordertype__[[+id]]__add" value="[[!checkPriceInput?]]" />
                <input type="hidden" name="codeT__[[+id]]__add" value="[[+codeT]]" />
                <input type="hidden" name="articul__[[+id]]__add" value="[[+articul]]" />
                <input type="hidden" name="izm__[[+id]]__add" value="[[+izm]]" />
                <input type="hidden" name="shk-id" value="[[+id]][[!checkPriceInput?]]" />
                <input type="hidden" name="shk-name" value="[[+pagetitle]]" />
                <input type="hidden" name="shk-catalog" value="1" />
                <h1></h1>
                <input type="hidden" name="shk-price" class="shk-price" value="[[+price:checkPrice=`[[+priceOpt]][[+beznal]]`]]" />
                  <!-- <input type="number" name="shk-count" id="shk-count" value="0" min="2" max="26" step="2"/> -->
                    <!--<button class="shk_count_button minus" data-extend="[[+id]][[!checkPriceInput?]]" type="button">-</button>
                     <input class="shk-count" type="number" size="2" name="shk-count" id="myinput[[+id]][[!checkPriceInput?]]"  
                        value="1" min="[[+minV]]" 
                        [[+inventory:is=`-1`:then=``:else=`max="[[!replaceCount? &price=`[[+inventory]]`]]"`]] 
                        [[+stepV:is=`1`:then=`[[+izm:is=`м`:then=`step="0.001"`:else=`step="1"`]]`:else=`step="[[!replaceCount? &price=`[[+stepV]]`]]"`]]
                    style="display: inline;width: 70px;line-height: 20px;height: 35px;">
                    <button class="shk_count_button plus" data-extend="[[+id]][[!checkPriceInput?]]" type="button">+</button>-->
                    <!--<div class="product-izm">
                      <span class="izm">
                      [[+inventory:is=`-1`:then=`0`:else=`
                              [[+inventory:is=`0`:then=`Под заказ от [[+minV]]`:else=`[[+inventory]]` ]]`
                      ]]
                              
                              [[+izm]]</span>
                    </div>--> 
           <div class="product-price">
                    <button type="submit" class="shk-but myButton" [[+inventory:is=``:then=` disabled>Нет на складе`:else=`>В корзину`]]</button>
                </div>
                
        </form>
        </div>
        </div>
    </div>
    

    Чанк product_list


  • Администраторы

    Я так и не понял какая связь между импортом и чанком вывода. Проверять импорт надо в админке, а не во внешней части сайта смотреть. Если в админке всё нормально, тогда CatalogFill упонимань вообще не нужно, чтобы не вводить в заблуждение себя и других. Поправьте.
    Уберите всё лишнее из чанка, что там закомментировано. Почему кто-то должен разбираться в ваших комментариях?



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

Похоже, подключение к Форум | MODX Shopkeeper было разорвано, подождите, пока мы пытаемся восстановить соединение.