Создание, продвижение сайтов
40-33-54

Обновление существующих терминов по tid (Feeds)

14 января 2017

Feeds не умеет обновлять термины по tid, только по name. Поэтому если в словаре есть термины с одинаковыми именами, то возникнут проблемы.

Чтобы обновлять существующие термины по tid, нужно:

1. Обновить Feeds до dev версии от 02.12.2014 или свежее.

2. В настройках процессора выбрать опцию Update existing terms:

3. В маппинг помимо tid добавить name с опцией Used as unique (в файле импорта этого поля быть не должно):

Поле description не обязательно, добавлено для примера.

4. Создать модуль с кодом:

/**
 * Implements hook_feeds_after_parse().
 */
function MODULENAME_feeds_after_parse(FeedsSource $source, FeedsParserResult $result) {
  if ($source->id == 'машинное_имя_импортера') {
    foreach ($result->items as &$item) {
      $item['name'] = taxonomy_term_load($item['tid'])->name;
    }
  }
}

Можно вместо кода воспользоваться Feeds Tamper.

5. Сбросить кэш.

Profit.

Пример csv файла:

tid;description
1;description for term 1
2;description for term 2
Сделайте заказ с сайта и получите 10% скидку на услугу

Заказ услуги с сайта raybin.ru

Нажимая на кнопку "Получить консультацию", я даю согласие на обработку персональных данных и соглашаюсь c условиями политики конфиденциальности
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Заказать бесплатную SEO-консультацию

Запрос бесплатной SEO - консультации с сайта raybin.ru

Нажимая на кнопку "Получить консультацию", я даю согласие на обработку персональных данных и соглашаюсь c условиями политики конфиденциальности
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Письмо в компанию Райбин

Письмо в компанию RAYBIN

Нажимая на кнопку "Получить консультацию", я даю согласие на обработку персональных данных и соглашаюсь c условиями политики конфиденциальности
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.