Консольный импорт в miniShop из 1С

Simple Dream разрешили поделиться очередной работой - импортом товаров через консоль из 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.

2 комментария

Alex Vakhitov
Делал подобную вещь, очень интересно сейчас сравнить логику процесса у вас и у себя
maslitto
Где можно найти этот скрипт? Ссылка умерла.
bezumkin.ru
Личный сайт Василия Наумкина
Прямой эфир
Дмитрий
08.02.2025 09:09:01
Спасибо за ответ. Есть желание разобраться самому. Прочитал все ваши статьи и понял, что VESP перспе...
Василий Наумкин
04.02.2025 19:27:08
Я таким давно не занимаюсь и с MODX не работаю. Попробуйте обратиться к ребятам с modx.pro.
Василий Наумкин
23.12.2024 05:33:00
В MODX сначала создали проблему, автоматически генерируя адреса, а потом "решили" заморозкой. Так ч...
Дмитрий
14.12.2024 09:10:38
Василий, прошу прощения, тупанул, не разобрался сразу. Фреймворк отличный! "Чистый лист" на vue, рис...
Василий Наумкин
05.12.2024 20:01:14
В итоге основная ошибка была в неправильном общем root в Nginx, из-за чего запросы не улетали на фай...
inna
06.11.2024 15:47:13
Да. Все работает. Спасибо.
Василий Наумкин
01.07.2024 11:56:41
Да, верно, именно так. А в контроллере, скорее всего, ловить данные методом post.
Василий Наумкин
26.06.2024 09:38:15
О, точно, вылезает если не залогинен. Спасибо, исправил!
Василий Наумкин
20.03.2024 21:21:52
Volledig!
Андрей
14.03.2024 13:47:10
Василий! Как всегда очень круто! Моё почтение!
Уровни подписки
Спасибо!
500 ₽ в месяц
Эта подписка ничего не даёт, просто возможность сказать спасибо за мои заметки. Подписчики отмечаются зелёненьким цветом в комментариях.
Большое спасибо!
1 000 ₽ в месяц
И эта подписка не даёт ничего, кроме оранжевого цвета в комментариях и возможности сказать спасибо, но уже большое!