1. При импорте товаров, часть артикулов может отсутствовать в файле импорта, такие артикулы должны уходить в Скрытую категорию «Сняты с продажи» и становится, как «Нет в наличии».
Если через какое то время товар снова поступает в продажу, он должен импортом переносится в Категорию, в которой он находился до этого (либо предложите другое решение, я пока не представляю, как это организовать).
2. То же самое должно происходить с артикулами, которых нет на сайте, но есть в файле. Они попадают во вторую Скрытую категорию «Новые поступления», но так же остаются как «Нет в наличии», до тех пор, пока мы не заполним товар и руками не снимем галку и не переместим товар в нужную категорию.
Импорт осуществляется при помощи .csv файла.
Сейчас импорт работает по стандартному, то есть:
1) У позиции (товара) обязательно присутствует уникальный идентификатор (ID, артикул или пр.). В нашем случае это артикул.
2) При импорте админка проверяет, есть ли такой УИ (уникальный идентификатор) в базе данных сайта и:
А) если такого УИ нет в базе, админка добавляет новую позицию (товар) в базу в указанную категорию. Т.к. у нас в файле импорта .csv не указываются конкретные ID категорий для размещения позиции, они уходят в корневую директорию модуля Каталог.
Б) если такой УИ в базе есть, админка перезаписывает его данные согласно указаний в файле импорта;
Т.к. файл импорта экспортируется из 1С он не совсем соответствует нашим требованиям и нам нужно автоматизировать импорт в админке:
1) Нам нужно, чтобы новые товары, которые есть в файле импорта .csv, но которых нет в базе данных сайта, попадали не в корневую директорию модуля Каталог, а в конкретную категорию, которую мы сможем задать через настройки импорта (в админке можно задать несколько импортов и использовать их раздельно. Для каждого импорта существуют настройки).
То есть, если в настройках импорта выбран тип импортируемого элемента “Товары”, добавить новый <select>, в котором будут выводиться все существующие категории из выбранного раздела модуля (раздел модуля так же задаётся в настройках).
Так же после импорта эти товары должны скрываться (“Не показывать на сайте”), не зависимо от того, что указано для них в файле импорта .csv.
2) Товары, которые есть в базе данных сайта, но отсутствуют в файле импорта .csv так же должны переноситься в указанную нами категорию, которую мы сможем задать через настройки импорта и становиться скрытыми. В принципе, аналогично пункту 1, но это должны быть разные <select>, с возможностью выбрать разные категории.
В настройках импорта сейчас есть checkbox “Удалять неописанные в файле импорта записи”, который удаляет все товары с сайта, которых нет в файле импорта .csv. Допустимо изменить его работу так, как нам требуется, либо добавить новый.
Так же для этих товаров необходимо сохранять их исходную категорию, в которой они находились на момент переноса. То есть, если товар находился в категории с ID=10, а потом мы сделали импорт и в файле импорта этого товара уже не было, он перенесётся в указанную нами категорию, и при этом сохранит в базе данных значение предыдущей категории 10. Это понадобится для пункта 3.
3) Если товар, находящийся в категории из пункта 2, снова появляется в файле импорта, то он должен восстановиться в своей исходной категории, ID которой записывался в базу данных в пункте 2 и проявляться на сайте (“Показывать на сайте”).