Simple Dream разрешили поделиться очередной работой - импортом товаров через консоль из 1С XML.
Скрипт прожорливый, из-за того, что медленно и качественно работает через процессоры. Результат работы такой же, как если вы сделаете все руками: отработают плагины, правила и проверки.
Он был написан для следующей структуры файла:
<?xml version="1.0" encoding="UTF-8"?>
<корневой ИмяСправочника.Номенклатура="ИП Наумкин В.С.">
<!--Выгрузка Номенклатуры-->
<ЭлементСправочника>
<Группа>Каталог</Группа>
<ПодГруппа>Категория 2</ПодГруппа>
<Код>00-000000033</Код>
<Артикул>xyz-005</Артикул>
<Наименование>Pagetitle товара 1</Наименование>
<НаименованиеПолное>Longtitle Товара 2</НаименованиеПолное>
<ЕдиницаИзмерения>шт.</ЕдиницаИзмерения>
<Характеристика/>
<Вес/>
<Цена>650</Цена>
<Остаток/>
<Описание/>
</ЭлементСправочника>
<ЭлементСправочника>
<Группа>Каталог</Группа>
<ПодГруппа>Категория 1</ПодГруппа>
<Код>00-00001122</Код>
<Артикул/>
<Наименование>Pagetitle товара 2</Наименование>
<НаименованиеПолное>Longtitle товара 2</НаименованиеПолное>
<ЕдиницаИзмерения>шт.</ЕдиницаИзмерения>
<Характеристика/>
<Вес>1 000</Вес>
<Цена>5 900</Цена>
<Остаток>10</Остаток>
<Описание/>
</ЭлементСправочника>
</корневой>
Товар импортируется в "ПодГруппа". Если такого ресурса на сайте нет, то предпринимается попытка его создать в "Группа". Если не получается - товар будет пропущен, с ошибкой. Отсюда следует, что категории товаров должны обладать уникальными именами.
Существующие товары обновляются, ключом является pagetitle и parent.
Если остаток Все ошибки пишутся в переменную, а потом отправляются на почту.
Предполагаемый режим работы - ручная загрузка файла для импорта, и обработка его по крону. После обработки файл удаляется, чтобы не гонять по кругу. Путь к файлу можно указать в системной настройке.
Скрипт для продвинутых пользователей и программистов. Его нужно будет переделать под себя. И вообще, это скорее учебное пособие по работе с процессорами из консоли.
Ссылка на исходный код. Пути прописаны для работы из директории /core/import/
Для работы требуется xml2array.
Делал подобную вещь, очень интересно сейчас сравнить логику процесса у вас и у себя
Где можно найти этот скрипт? Ссылка умерла.