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


Catalogfill генерация заголовка при импорте Название + артикул

  • Для нового проекта требуется импорт большого количества таблиц. Для этой цели как обычно буду использовать catalogfill.

    Но есть одна проблемка. Таблица содержит разные параметры для одного товара, необходимо создание документов по принципу Название + артикул. Например так - Товар (12345)

    Не могу понять как можно задать в файле конфигурации добавку tv к pagetitle. Или такое нельзя реализовать?

    То есть мне надо использовать tv articul из второй колонки 2 раза, сначала для добавления к значению pagetitle, а потом для вывода на карточке товара значения Артикул.

     array('pagetitle',array('pagetitle','content')),
       
        array('articul',array(6,'tv')),```
  • Не могу редактировать, поэтому пишу вторым сообщением.

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

  • //функция для фильтрации значений при ИМПОРТЕ
    function filter_import($value_arr){
        $output_arr = $value_arr;
        
        // Добавляем артикул (TV ID = 6) к названию товара
        if(isset($output_arr['content']['pagetitle']) && isset($output_arr['tv'][6])) {
            $output_arr['content']['pagetitle'] .= '-' . $output_arr['tv'][6];
        }
            
        return $output_arr;
    }
    
  • Да, все работает. Спасибо.

    Осталось только доработать alias, установлена авто генерация псевдонимов, но почему то не добавляются цифры (артикул) из названия документа. Получаются дубли и не открываются документы.

  • Осталось только доработать alias, установлена авто генерация псевдонимов, но почему то не добавляются цифры (артикул) из названия документа. Получаются дубли и не открываются документы.

    Генерация псевдонима происходит до вызова функуции filter_import(), поэтому нужно менять псевдоним в этой функции.

    //функция для фильтрации значений при ИМПОРТЕ
    function filter_import($value_arr){
        $output_arr = $value_arr;
        
        // Добавляем артикул (TV ID = 6) к названию товара
        if(isset($output_arr['content']['pagetitle']) && isset($output_arr['tv'][6])) {
            $output_arr['content']['pagetitle'] .= '-' . $output_arr['tv'][6];
            $output_arr['content']['alias'] .= '-' . $output_arr['tv'][6];
        }
            
        return $output_arr;
    }
    
 

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

  • Z

    Спасибо, действительно проще создать отдельно.

    Читать далее
  • Но проблема в том, что эта старая цена "дублируется" в плесхолдер "Дополнительных услуг" - [[+addit_data]].

    Можно не использовать [[+addit_data]], а выводить параметры по-отдельности.

    Цитата из документации:

    [[+shk_любой доп.параметр]] - любой доп. параметр, выбранный при добавлении товара в корзину (из [[+addit_data]]), например [[+shk_param1]].
    Если параметры сделаны в виде чекбоксов, то чтобы вывести отдельно каждый из них, нужно добавлять индекс (номер от нуля) для параметров следующих за первым.
    Пример: [[+shk_param1]], [[+shk_param1_1]], [[+shk_param1_2]] ...
    [[+shk_любой доп.параметр_price]] - цена доп.параметра. Пример: [[+shk_param1_price]].

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

    Доброго времени суток. Не могу разобраться, как передать данные migx-поля в корзину в плейсхолдер без "дублирования" в [[+addit_data]]
    Суть в чем: У меня есть 2 цены у товара (со скидкой и без скидки) Форма для отправки в корзину:

    <form action="[[~[[*resource_id]]? &scheme=`abs`]][[*alias]].html" method="post"> <input type="hidden" name="shk-id" value="[[*id]]" /> <input type="hidden" name="shk-name" value="[[*pagetitle]]" /> <input type="hidden" name="price_old__[[*id]]__add" value="[[*price_old]]" /> <input type="hidden" name="shk-count" value="1" /> <div class="product-price"> Цена: <span class="shk-price">[[!*price:shk_curr_rate:num_format]]</span> Старая цена - <span class="shk-price-old">[[+price_old]]</span> [[!+shk_currency]] </div> <div class="padding-lr-30"> <h5>Дополнительные услуги</h5> [[*param1]] </div> <div class="product-price"> <button class="btn btn-lg btn-primary" type="submit" class="shk-but">В корзину</button> </div> </form>

    Данные со "старой ценой" в корзину попадают нормально и выводится в нужном месте в плейсхолдере:
    [[+shk_price_old]]
    Но проблема в том, что эта старая цена "дублируется" в плесхолдер "Дополнительных услуг" - [[+addit_data]]. Как сделать чтобы старая цена не выводилась в [[+addit_data]]? Или может я как то не правильно передаю MIGX-параметр в корзину ? Заранее спасибо.

    Читать далее
  • Фотографии, как я понял, это второй вопрос. Я по нему пока ничего не отвечал и не просил информации. Это не отменяет того, что в вашем конфиге есть ошибка, о которой я писал выше. Не нужно задавать разные вопросы в одной теме, чтобы не было путаницы.
    http://forum.modx-shopkeeper.ru/topic/15/рекомендации-по-оформлению-темы-с-вопросом

    Читать далее