Товары, которых нет в новой выгрузке (тип материала товар) снимать с публикации и выводить в разделе неактивные товары

Аватар пользователя Junnior

Как сделать, чтобы товары, которых нет в новой выгрузке (тип материала товар) снимать с публикации и выводить в разделе неактивные товары?

Тип материала:
Версия Drupal:
0 Thanks

Лучший ответ

Аватар пользователя VasyOK
VasyOK 6 дней назад
2

Если выгрузку делать через модуль feeds, там есть опция:
Action to take when previously imported Материалы are missing in the feed:
Unpublish non-existent nodes

Комментарии

Аватар пользователя Semantics
Semantics 6 дней назад

Что такое выгрузка?
Какая версия Drupal?

Аватар пользователя Orion76
Orion76 6 дней назад

Полностью солидарен..

Аватар пользователя Junnior
Junnior 4 дня назад

Прошу прощения, забыл указать версию друпала (Drupal 7). Под выгрузкой я подразумеваю, что часто бывает, что данные о товарах передается через XML файл из 1C. Тогда надо его разбирать и создавать товары по данным из него на сайте. Файл или вручную заливают, или автоматом по фтп. Или запрашивается с удаленного сервера. Вообщем, мне нужно сделать так, чтобы товар (тип материала товар), который находится, к примеру в новой выгрузке снимался с публикации и выводился в раздел неактивные товары.

Аватар пользователя bumble
bumble 6 дней назад
1

Сделать выборку не обновленных материалов, и в цикле проделать необходимые манипуляции.

Аватар пользователя fairrandir
fairrandir 6 дней назад
1

Кстати, выгрузка (что бы это не означало) может быть частичной. А значит в неактивные может попасть много типов материала товар, которые по идее туда попасть не должны.

Аватар пользователя VasyOK
VasyOK 6 дней назад
2

Если выгрузку делать через модуль feeds, там есть опция:
Action to take when previously imported Материалы are missing in the feed:
Unpublish non-existent nodes

Аватар пользователя Junnior
Junnior 4 дня назад

А как вообщем можно сделать вывод товаров в раздел неактивный товар посредством кода?

Аватар пользователя gun_dose
gun_dose 4 дня назад

Вам выше Васёк написал самый оптимальный способ - с помощью модуля feeds это делается без всякого кода.

Аватар пользователя Junnior
Junnior 3 дня назад

А как сделать проверку на уникальность товара? к примеру, чтобы дубликат товара снимался с публикации и отправлялся в раздел неактивных товаров?

Аватар пользователя gun_dose
gun_dose 3 дня назад
1

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

Аватар пользователя alexo
alexo 3 дня назад
1

Можно сделать так, чтобы дубликат просто не создавался при импорте в feeds.
Вам нужно будет только сделать все заголовки Ваших товаров уникальными (если их нет можно это сделать из какой-то характеристикаи и артикула например, автоподстановкой в редакторе или с помощью модуля тип autonode title, вероятно, что будет лучше если в заголовке будут ключевики для индексации, но это уже смотрите по обычным Вашим SEO настройкам). Тогда если у вновь загружаемого дубликата будет такой же заголовок, Вы сможет идентифицировать эти ноды как дубликаты средствами feeds (если это будут ноды, то в настройкаих вашего импортера нод нужно будет выбрать update existing nodes, потом в соответсвтиях для поля заголовка щелкнуть на шестеренку и выбрать uniq). При импорте, если у Вас есть дубликат или даже что-то обновилось при новой загрузке, то это можно будет дописать к уже ранее сущестовашей информации об экземпляре.