• G
    griga

    Ответьте пожалуйста, есть такая возможность?

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

    Можно как нибудь экспортировать все категории? А не только подкатегории одной какой то категории?

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

    Мм, понял кое что. Хорошо теперь экспортируются только подкатегории только ОДНОЙ категории. А как сделать экспорт всех категорий всего сайта?

    Если выбрать родительский WEB то не получается.

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

    Участник @andchir написал в Хотел бы экспортировать все категории, как сделать через catalogfill?:

    Представьте, что это не категории, а просто ресурсы (документы). То, что вы процитировали относится к случаю когда нужно экспортировать товары с их категориями.

    Пока что так и не разобрался. В настройках конфигурационных файлов модуля, нашёл файл only_categories.php со следующим содержимым:

    <?php
    
    //разбивка по столбцам при импорте и экспорте (content|tv|category)
    $cf_config['content_row'] = array(
        array('Наименование',array('pagetitle','content')),
        array('Краткое описание',array('introtext','content')),
        array('Контент',array('content','content')),
        array('Атрибуты ссылки',array('link_attributes','content')),
        array('ID шаблона',array('template','content'))
    );
    
    //значения по умолчанию при импорте или проверка при экспорте
    $cf_config['imp_content_default'] = array(
        'content' => array(
            'published' => 1,
            'template' => array(8,10,12),
            'isfolder' => 1
        ),
        'tv' => array(
            //7 => 0
        )
    );
    
    //первая строка - названия полей
    $cf_config['include_captions'] = true;
    
    //число товаров импортируемых за один раз (загрузка по группам). 0 - не ограничивать.
    $cf_config['batch_import'] = 300;
    
    //разбивать по категориям
    $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'] = 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'] = '';
    
    //тестирование конфигурации (без записи в БД)
    $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;
    }
    

    Но всё равно если выбирать родительский элемент web пишет что в данной категории нет товаров? Если честно так и не понял, что значит представить категории ресурсами и документами, хотел оттолкнуться от того что какая то настройка есть, но нигде как будто тут не разделяется это категории или ресурсы.

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

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

    Подскажите пожалуйста, как это сделать. Прочитал:
    Для импорта и экспорта категорий нужно указать название столбца в файле, ID шаблона категории и тип содержимого.
    Пример:
    0 => array('Категория',array(7,'category')),

    7 - ID шаблона для категории.
    Категории в файле должны идти последовательно от верхнего уровня к нижнему.

    Но что то не понимаю, как эскпортировать TV параметры именно только категорий и данные самих категорий.

    Можно небольшой пример конфигурационного файла, по его аналогии постараюсь сделать для всех категорий

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

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

    Родительским элементом выбираю web и пишет что в данной категории нет товаров.
    Можно ли как то настроить чтобы экспортировать категории? Спасибо.

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

    Смотрю уже очень много всяких модулей всё под версию 3.. да и возможностей побольше. Вот хотел бы перейти на новую версию и боюсь всё полетит. Кто как подскажет это сделать? Ведь тут всё будет по новому. Но очень важно перейти с сохранением структуры сайта. Чтобы были те же самые документы и дизайн только на новом хостинге. Да и лучше бы было перейти ещё и на https сразу же.

    Даже не знаю с чего начать всё это делать.

    Подскажите план перехода. Что мне делать. У меня написано очень много всяких костылей для сайта. Модули свои.

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

    Огромное спасибо!
    У меня просто было два вывода, в одном случае работало, в другом нет. В котором нет, стало необходимо только сейчас. Выводы были почти один в один!

    НО всё верно, там где не работало не хватало параметра:

    &processTVs=`'.$processTVs.'`
    

    который равен 1

    написал в MODX - Вопросы и обсуждения Читать далее
  • G
    griga

    Выводится просто: Размер1 - 4.5см х 6см==0||Размер2 - 5.2см х 7см==10||Размер3 - 6см х 8см==15||Размер4 - 7.5см х 10см==20

    Почему не рендерится?

    Код шаблона tovar_main_trafaret:

    [[!If? &subject=`[[+tv.inventory]]` &operator=`EQ` &operand=`0` &then=`<li class="opacity_tovar_main">` &else=`<li>`]]
    <div class="shk-item">
    <form action="[[~[[*id]]? &scheme=`abs`]]" method="post">
    <input type="hidden" name="shk-id" value="[[+id]]" />
    <input type="hidden" name="shk-name" value="[[+pagetitle]]" />
    <input type="hidden" name="shk-count" value="1" />
    <span class="h2_title"><a href="[[~[[+id]]]]">[[+menutitle]]</a></span>
    <a href="[[~[[+id]]]]" title="[[+pagetitle]]"><img src="[[+tv.img1]]" alt="[[+tv.alt1]]"></a>
    <span class="old_price">[[+tv.old_price]] руб.</span><span class="real_price">Цена: <span class="shk-price">[[+tv.price]]</span> руб.</span>
    <!-- <div id="henna_color">Цвет: <img src="[[+tv.henna_color]]"></div> -->
    <!-- <div id="vnalichii">Есть в наличии</div> -->
    
    [[+tv.size_param]]
    
    [[!If?
       &subject=`[[+tv.dop_param1]]`
       &operator=`isempty`
       &then=``
       &else=`<span class="dop_param_goods">[[+tv.dop_param1]]</span>`
    ]]
    [[!If? &subject=`[[+tv.inventory]]` &operator=`EQ` &operand=`0` &then=`<div id="vnalichii_net">Нет в наличии</div>` &else=`<div id="vnalichii">Есть в наличии [[+tv.inventory]]шт.</div>`]]
    <!-- Размер: [[+tv.trafaret_razmer]] см -->
    [[!If? &subject=`[[+tv.inventory]]` &operator=`EQ` &operand=`0` &then=`<input type="submit" name="sumbit" id="gobutton_disable" value="Добавить в корзину" disabled="disabled"/>` &else=`<input type="submit" name="sumbit" id="gobutton" value="Добавить в корзину" />`]]
    <div id="about_tovar"><a href="[[~[[+id]]]]" title="[[+pagetitle]]">Подробнее...</a></div>
    </form>
    </div>
    </li>
    

    TV параметр - [[+tv.size_param]] , вот тут выбираются значения! Этот TV параметр доступен для шаблона в котором выводятся товары!

    Вот так выводятся товары в шаблоне:

    <?php
    //Настройки сниппета
    $elementClass="modSnippet";
    $element="getResources";
    $tpl="tovar_main_trafaret";
    $limit="42";
    $includeTVs="1";
    $includeTVList="price,img1,alt1,old_price,est_v_nalichii,inventory,category_goods,size_param,dop_param1";
    $parents="193";
    $pageLimit="5";
    $pageNavVar="page.nav";
    $sortby='{"publishedon":"DESC"}';
    if(isset($_GET['filter'])) {
        if(!empty($_GET['filter'])) {
            //Не пустая переменная
            $filter=$_GET['filter'];
            switch($filter) {
                case "a":
                    $filter=",tag_trafaret==%a%";
                    break;
                case "b":
                    $filter=",tag_trafaret==%b%";
                    break;
                case "c":
                    $filter=",tag_trafaret==%c%";
                    break;
                case "d":
                    $filter=",tag_trafaret==%d%";
                    break;
                case "f":
                    $filter=",tag_trafaret==%f%";
                    break;
                case "g":
                    $filter=",tag_trafaret==%g%";
                    break;
                case "h":
                    $filter=",tag_trafaret==%h%";
                    break;
                case "i":
                    $filter=",tag_trafaret==%i%";
                    break;
                case "j":
                    $filter=",tag_trafaret==%j%";
                    break;
                case "k":
                    $filter=",tag_trafaret==%k%";
                    break;
                case "l":
                    $filter=",tag_trafaret==%l%";
                    break;
                case "m":
                    $filter=",tag_trafaret==%m%";
                    break;
                case "n":
                    $filter=",tag_trafaret==%n%";
                    break;
                case "o":
                    $filter=",tag_trafaret==%o%";
                    break;
                case "p":
                    $filter=",tag_trafaret==%p%";
                    break;
                case "r":
                    $filter=",tag_trafaret==%r%";
                    break;
                case "s":
                    $filter=",tag_trafaret==%s%";
                    break;
                case "t":
                    $filter=",tag_trafaret==%t%";
                    break;
                case "q":
                    $filter=",tag_trafaret==%q%";
                    break;
                case "u":
                    $filter=",tag_trafaret==%u%";
                    break;
                case "v":
                    $filter=",tag_trafaret==%v%";
                    break;
                case "y":
                    $filter=",tag_trafaret==%y%";
                    break;
                case "z":
                    $filter=",tag_trafaret==%z%";
                    break;
                default:
                    //Если нет совпадений
                    $filter="";
                    break;
            }
         }
        else {
            //Переменная пустая
            $filter="";
        }
    }
    else {
        //Переменная не определена
        $filter="";
    }
    
    //Присваиваем значение фильтру
    $tvFilters="inventory!=0".$filter;
    //Выводим сниппет
    echo' 
    [[!getPage?
      &elementClass=`'.$elementClass.'`
      &element=`'.$element.'`
      &tpl=`'.$tpl.'`
      &limit=`'.$limit.'`
      &includeTVs=`'.$includeTVs.'`
      &includeTVList=`'.$includeTVList.'`
      &parents=`'.$parents.'`
      &pageLimit=`'.$pageLimit.'`
      &pageNavVar=`'.$pageNavVar.'`
      &tvFilters=`'.$tvFilters.'`
      &sortby=`'.$sortby.'`
    ]]';
    

    написал в MODX - Вопросы и обсуждения Читать далее
  • G
    griga

    @LoGruS У меня не получилась SMTP аутентификация. Я пользуюсь biz.mail.ru и они мне как то ответили, что эта почта не предназначена для отправки писем скриптами. И типо настроить неполучится. Получается если там баткой, а вот через сайт у меня не получилось. Как только не пытался.

    Сейчас у меня настроенные SPF и DKIM подписи. При отправке письма подписываются. Сейчас же так же DMARC настроил. По сути с отправкой писем не было проблем у меня. Выделенный ip на отправку, отправляю только я! Да и писем не так много отправляется.

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

    @LoGruS Да, большое спасибо. Вот это очень помогло. А то второй день уж такая проблема. Вчера ещё как то более менее, а сегодня вообще перестали письма приходить.

    Теперь раз уж всё решилось, думаю настрою DMARC чтобы никто не мог отсылать письма с подменой моего домена.

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

    @LoGruS Да нее. Просто письма когда принимаешь на mail.ru в самом интерфейсе все письма выглядят как одиннаковые! Отличаются только номером заказа в заголовке и всё. А до этого когда приходило с подменой адресов, там было всё красочно чтоли, каждое письмо отличалось друг от друга, а тут всё однотипно стало теперь! Можно запутаться при работе.

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

    @LoGruS Вот теперь всё работает, тоже нашёл это решение. Ну теперь всё работает. Спасибо за решение.

    По сути сейчас всё нормально, но вот имя отправителя везде одно и тоже будет. Сейчас имя ещё изменю. Чтобы немного хоть отличались письма.

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

    @LoGruS Что то не понимаю как это сделать в моём случае...Если не сложно не могли бы написать как мне это сделать..

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

    @LoGruS Я понял что вы имеете ввиду.

    
    <!-- E-mail -->
    <div class="payment_cell"><span class="order_info_field">E-mail:</span><span style="color: red;">*</span><br/>
    
    <input name="email" size="25" class="css-input"  type="text" value="" /> <br/>
    <div class="add_info_payment_form"><i>На E-mail будет отправленно содержимое Вашего заказа.</i></div> 
    <div class="error_payment_msg"></div>
    </div>
    

    Тут поле имеет имя email. Но в документации это просто как настройка вроде, просто можно настроить какое имя формы считать за emal, а вот само значение как получить тут непонятно.

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

    @LoGruS Такая конструкция не работает. Вот если просто прописать email то заработает любой другой. А email клиента не подставляется такой конструкцией. Может как то по другому получается email который ввели в форме.

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

    @LoGruS А как тогда emailReplyTo= сюда вставить email который ввели в форме?

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

    @LoGruS Это как я понимаю, если наоборот спамеры подставляют твой рабочий email. И тогда сервер mail.ru просто не принимает твои же спамные письма и люди не видят письма, которые отправили спамеры и подменили адрес от кого на твой. В нашем или моём случае, я сам подменяют адрес от кого на адрес клиента, и хочу видеть письма у себя в почтовом ящике с подменой, но mail сцуко не пропускает такие письма..

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

    @LoGruS Ну вот сейчас по сути я так же сделал. Теперь письма отправляются с моего домена, а вот отправитель теперь мой Email. А хотелось бы чтобы отправителем был email клиента. Блин как это не удобно теперь стало( Надо как то настроить теперь Reply-To и вставить туда email клиента, чтобы после того как нажимаешь ответить подставлялся email клиента. Пробовал сделать emailReplyTo=[[++emailsender]] , но mail как будто игнорит эту настройку. Если нажать на ответить то всё равно мой email. Правильно ведь понимаю, что [[++emailsender]] это имейл который вводит клиент ?

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

    Хостинг у меня coopertino.
    Тут мне кажется всё таки связанно именно с mail.ru

    Настроено через mx записи, работаю через biz.mail.ru
    И вот с 18 числа mail перестал принимать письма с подменой адреса, тупо не приходят даже. Даже в спам не попадают. Очень плохо это(

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