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

Аватар пользователя Junnior Junnior 10 августа 2018 в 15:30

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

0 Thanks

Лучший ответ

Аватар пользователя VasyOK VasyOK 10 августа 2018 в 19:22
2

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

Комментарии

Аватар пользователя Junnior Junnior 13 августа 2018 в 9:00

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

Аватар пользователя bumble bumble 10 августа 2018 в 16:09
1

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

Аватар пользователя fairrandir fairrandir 10 августа 2018 в 19:09
1

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

Аватар пользователя VasyOK VasyOK 10 августа 2018 в 19:22
2

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

Аватар пользователя Junnior Junnior 13 августа 2018 в 9:27

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

Аватар пользователя gun_dose gun_dose 13 августа 2018 в 10:26

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

Аватар пользователя Junnior Junnior 13 августа 2018 в 16:08

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

Аватар пользователя gun_dose gun_dose 13 августа 2018 в 19:40
1

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

Аватар пользователя alexo alexo 14 августа 2018 в 11:24
1

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