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

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

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

Комментарии

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

13 августа 2018 в 9:00

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

10 августа 2018 в 19:09

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

10 августа 2018 в 19:22

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

13 августа 2018 в 10:26

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

13 августа 2018 в 16:08

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

13 августа 2018 в 19:40

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

14 августа 2018 в 11:24