Как импортировать данные о товарах из XML

27.01.2022

Варианты реализации XML-выгрузки

  1. Возможно передавать данные о товарах и их категориях, как в одном общем файле, так и в двух отдельных (рекомендуется): один - для категорий, второй - для товаров
  2. Возможна, как выгрузка только XML-данных, так и XML-данных вместе с изображениями товаров (рекомендуется). XML-файлы могут загружаться, как в ту же папку, что и изображения, так и в другие доступные для загрузки папки
  3. Если планируется онлайн-продажа товаров на сайте, то в XML-данных о товарах должна быть хотя бы одна свойство, которое можно использовать в качестве цены. Могут быть переданы данные и о других свойствах
  4. Данные можно загружать, как вручную, так и автоматически (рекомендуется) через FTP
  5. При использовании FTP рекомендуется использовать шифрование

Если используются два отдельных XML-файла для категорий и товаров

Имена файлов могут быть любыми, но желательно избегать русских букв и пробелов. С латиницей проблем нет. Также важно, чтобы с каждой новой выгрузкой названия файлов не менялись.


<?xml version="1.0" encoding="windows-1251"?>
<Элементы>
  <Элемент ID="12325" Имя="Аксессуары" РодительID="---"/>
  <Элемент ID="12343" Имя="Аккумуляторы" РодительID="12325"/>
  <Элемент ID="12341" Имя="Зеркала" РодительID="12325"/>
  <Элемент ID="12345" Имя="Наклейки" РодительID="12325"/>
  <Элемент ID="12344" Имя="Сигнализации, магнитолы, подсветка и др." РодительID="12325"/>
  <Элемент ID="12326" Имя="Тюнинг" РодительID="12325"/>
  <Элемент ID="12346" Имя="Фильтра" РодительID="12325"/>
  <Элемент ID="12368" Имя="Бензопилы" РодительID="---"/>
...
  <Элемент ID="12333" Имя="Ремни вариатора генератора" РодительID="12330"/>
  <Элемент ID="12335" Имя="Свечи" РодительID="12330"/>
  <Элемент ID="12337" Имя="Удаленное" РодительID="12330"/>
  <Элемент ID="01111" Имя="Удаленное" РодительID="---"/>
  <Элемент ID="12367" Имя="Удаленное" РодительID="01111"/>
</Элементы>


В примере приведены данные о категориях товаров. У каждой из них есть:

  • ID (нечто уникальное, можно латинские буквы, цифры и дефисы)
  • Имя (здесь ограничений нет)
  • ID родительской категории (для категорий верхнего уровня указываем --- - три дефиса)
  • Могут быть и другие свойства

Названия тегов и их свойств Вы можете использовать любые. Главное следовать следущим правилам:

  • XML-заголовок может быть любым, но корректным.
  • Какая бы кодировка ни была указана в XML-заголовке, 1С всегда использует windows-1251. Если в Вашем случае используется другая кодировка, об этом нужно сообщить отдельно
  • В именах тегов и их свойств допускаются буквы (в том числе кириллица), цифры, подчёркивания. Первый символ должен быть буквой. Других ограничений нет.
  • Если через выгрузку нужно удалить с сайта категорию или товар, то для неё/него нужно указать имя Удаленное

<?xml version="1.0" encoding="windows-1251"?>
<Элементы>
  <Элемент ID="00002702" Имя="Автомат сцепления Юпитер" БазоваяЕИ="шт" Категория="12318" АдресФото="DSC03810.JPG" Цена="156" Остаток="37"/>
  <Элемент ID="00003535" Имя="Удаленное" БазоваяЕИ="пара" Категория="12318" АдресФото="DSC03808.JPG" Цена="4190" Остаток="0"/>
  <Элемент ID="00900631" Имя="Амортизатор задний Иж реставрация" БазоваяЕИ="пара" Категория="12318" АдресФото="DSC038082.JPG" Цена="1350" Остаток="1"/>
  <Элемент ID="00004115" Имя="Удаленное" БазоваяЕИ="пара" Категория="12318" АдресФото="DSC038081.JPG" Цена="1578" Остаток="0"/>
  <Элемент ID="00003119" Имя="Барабан задний Юнкер" БазоваяЕИ="шт" Категория="12318" АдресФото="IMG_20160325_162751.jpg" Цена="1990" Остаток="6"/>
  <Элемент ID="00002159" Имя="Барабан передний в сборе ИЖ" БазоваяЕИ="шт" Категория="12318" АдресФото="DSC03798.JPG" Цена="1950" Остаток="4"/>
  <Элемент ID="00004042" Имя="Барабан сцепления Планета широкий Иж П5-01сб.1-41г.Ижевск" БазоваяЕИ="шт" Категория="12318" АдресФото="20171130_175731.jpg" Цена="1350" Остаток="0"/>
  <Элемент ID="00002315" Имя="Барабан сцепления внутрений Иж Планета" БазоваяЕИ="шт" Категория="12318" АдресФото="DSC03805.JPG" Цена="300" Остаток="0"/>
...
  <Элемент ID="00003578" Имя="Барабан сцепления внутрений Иж Юпитер" БазоваяЕИ="шт" Категория="12318" АдресФото="DSC03806.JPG" Цена="300" Остаток="2"/>
  <Элемент ID="00000016" Имя="Удаленное" БазоваяЕИ="шт" Категория="12318" АдресФото="DSC03859.JPG" Цена="2800" Остаток="0"/>
  <Элемент ID="00000015" Имя="Барабан сцепления ИЖ Юпитер 4 узкий в сборе 1-31" БазоваяЕИ="шт" Категория="12318" АдресФото="DSC03858.JPG" Цена="2800" Остаток="7"/>
</Элементы>


В примере приведены данные о товарах. У каждого из них есть:

  • ID (также нечто уникальное, можно латинские буквы, цифры и дефисы)
  • Имя (здесь тоже ограничений нет)
  • Категория (ID одной из категорий - про них написано в описании примера с категориями)
  • Адрес файла с изображением (желательно просто указывать имя файла - при этом нежелательно дублирование имён нескольких файлов)
  • Цена (в рублях)
  • Могут быть и другие свойства, например, единица измерения, остаток на складе
  • Если организация работает с СДЭК и нужен расчёт стоимости и срок доставки также нужны:
    • вес в килограммах
    • габариты в сантиметрах

Если используется один общий XML-файл для категорий и товаров


<?xml version="1.0" encoding="windows-1251"?>
<Элементы>
  <Элемент ID="00013813" Имя="Автомат сцепления ЗАЗ" БазоваяЕИ="шт" КатегорияID="12318" КатегорияНазвание="Сцепление"/>
  <Элемент ID="00092424" Имя="Удаленное" БазоваяЕИ="пара" КатегорияID="12318" КатегорияНазвание="Газ"/>
  <Элемент ID="00100369" Имя="Амортизатор задний ВАЗ" БазоваяЕИ="пара" КатегорияID="12318" КатегорияНазвание="Тормоз"/>
...
</Элементы>


В этом случае в свойствах товара указывается не только ID категории, но и её название.

Частичный или полный импорт данных

Импортировать можно, как все товары/категории, так и только необходимые. Новые добавятся, уже имеющиеся обновятся (сравнение идёт по ID).

О загрузке файлов

Вам будет предоставлен FTP-доступ к одной из папок на сайте. Желательно использовать шифрование - SFTP или FTPS. Часто бывает, что 1С шифрование не поддерживает. Если так, то можно и обычный FTP, но это не безопасно.

У Вас будет доступ на создание подпапок.

В ту же папку (или в подпапку) можно загружать изображения - каждое в отдельном файле (имена указываются в файле с товарами). После обработки сайт будет перемещать эти картинки в другую папку (по FTP она будет недоступна).

Файлы с данными о товарах/категориях также будут автоматически удаляться при успешном импорте.


CMS Zion WebEngine является бесплатной системой. Развивается за счёт рекламы, помощи веб-студии #webZion и других спонсоров.

 

Будем рады, если Вы поддержите нас любой суммой, а также поделитесь идеями на счёт каких-либо улучшений и доработок для CMS...

 

Заранее, большое, спасибо

 

Блог обновлений

Zion WebEngine 22.08.17
  • Доработаны JS-скрипты для административного интерфейса:
    • Теперь при очень быстрой правке элемента Связи, каждое новое действие может быть выполнено только после завершения предыдущего:
      • Ранее могло создаваться впечателение, что необходимая связь добавлена или ненужная связь удалена, хотя фактически этого могло не произойти из-за асинхронной природы JavaScript

Zion WebEngine Административный интерфейс Связи Элементы Что такое Элементы?

Zion WebEngine 22.08.16
  • Продолжен перевод на новую платформу пакета Zion Sender (спасибо КСБ Рус):
    • На основе заданных условий реализован отбор пользователей, которым должна быть отправлена та или иная рассылка
    • Реализована подстановка свойств проекта и свойств пользователя в текст рассылки
    • Разработка ещё не завершена
  • Доработан класс для управления пользователями:
    • Налажено более корректное отображение баланса, который может быть не только целым числом

Zion WebEngine Zion Sender Баланс пользователя/Абонентская плата Доступы/Пользователи Платформа Рассылки Свойства Число Что такое Классы?

Zion WebEngine 22.08.15
  • Доработана система мониторинга для Google reCAPTCHA:
    • Повышена совместимость с некоторыми веб-серверами

Zion Mail Back Что такое система Мониторинга? Веб-сервер/Хостинг Мониторинг Спам

Zion WebEngine 22.08.12
  • Доработан класс для управления базой данных:
    • Теперь CMS отправляет корректный код ошибки, в случае, если временно недоступна база данных:
      • Это может привести, в том числе, к автоматической остановке Ваших рекламных кампаний, когда с сайтом, что-то не так, и к автоматическому возобновлению рекламы, когда сайт начнёт работать корректно
  • Доработан класс для управления проектом:
    • Живой поиск в административном интерфейсе теперь корректно реагирует на сочетание клавиш Ctrl+V (Вставить) на клавиатуре

Zion WebEngine Что такое Административный интерфейс и Гостевой интерфейс? Административный интерфейс База данных/Таблицы данных Классы Поиск текста Страницы ошибок

Zion WebEngine 22.08.10
  • Продолжен перевод на новую платформу пакета Zion Sender (спасибо КСБ Рус):
    • Реализовано управление условиями, при которых должны запускаться рассылки:
      • Можно выбирать группу пользователей, из которой должны отбираться получатели рассылки
      • Можно по тем или иным полям в БД отбирать зарегистрированных пользователей, которые должны стать получателями рассылки
  • Доработан монитор очистки после обновления CMS:
    • Расширен список устаревших файлов и папок, которые будут автоматически удалены за ненадобностью
  • Доработано меню администратора для Ядра
    • Мастеры для вставки плагинов теперь находятся в разделе Инструменты
  • Оптимизирован код некоторых драйверов:
    • Удалены более ненужные функции, которые требовались только для старой платформы

Zion WebEngine Zion Sender Что такое Меню администратора? База данных/Таблицы данных Доступ Групп пользователей Доступы/Пользователи Драйверы Меню администратора Мониторинг Обновления CMS Платформа Помощники/Мастеры/Инструкции/Подсказки Рассылки Файлы/Папки

Zion WebEngine 22.08.09
  • Доработан класс для управления проектом:
    • Теперь более корректно работает страница приветствия
    • Теперь более корректно работает инструмент Информация о сервере
  • Доработан класс парсера стороннего сайта (спасибо Moto-Retail18):
    • Теперь от функционала класса отделены все JS-функции (они вынесены в отдельный JS-файл)

Zion WebEngine Zion Import Импорт/Экспорт Классы Что такое Классы?

Zion WebEngine 22.08.04
  • Начат перевод на новую платформу пакета Zion Sender (спасибо КСБ Рус):
    • Из комплекта поставки удалены все архаизмы
    • Доработано меню администратора
    • Реализовано управление шаблонами сообщений:
      • Доступна правка текста и/или HTML-кода для email-сообщений
      • Доступна правка текста для SMS-сообщений
  • Доработан монитор очистки после обновления CMS:
    • Расширен список устаревших файлов и папок, которые будут автоматически удалены за ненадобностью

Zion WebEngine Zion Sender Что такое Комплект поставки? HTML-код веб-страницы SMS Меню администратора Мониторинг Обновления CMS Платформа Рассылки Файлы/Папки

Zion WebEngine 22.08.03
  • Доработан настраиваемый модуль доставки через Почту России (спасибо Moto-Retail18):
    • Устранены недочёты из предыдущего обновления, выявленные при "боевых" испытаниях

Zion xDelivery Настраиваемые модули Обновления CMS Способы доставки/самовывоза

Zion WebEngine 22.08.02
  • Доработан настраиваемый модуль доставки через Почту России (спасибо Moto-Retail18):
    • Налажена отправка уведомлений о начале движения посылки

Zion xDelivery Классы Настраиваемые модули Реакции на заказ Способы доставки/самовывоза Уведомления Что такое Классы?

Zion WebEngine 22.07.28
  • Доработан настраиваемый модуль доставки через Почту России (спасибо Moto-Retail18):
    • Устранена ошибка, которая могла препятствовать отправке уведомлений об изменении статуса доставки

Zion xDelivery Классы Настраиваемые модули Реакции на заказ Способы доставки/самовывоза Уведомления

Zion WebEngine 22.07.27
  • Доработан класс для управления пользователями (спасибо КСБ Рус):
    • Теперь доступна авторизация пользователей через указание ID, если для них не указан логин:
      • Такое возможно, например, для пользователей, которые созданы через импорт данных из XML:
        • ID в данном случае может быть номером клиента или договора, который обычно указывается в "платёжках" и известен каждому конкретному клиенту
      • При этом в качестве пароля по умолчанию используется контактный телефон, который должен быть указан в импортируемых данных

Zion WebEngine XML/RSS/1С/YML Доступы/Пользователи Импорт/Экспорт Классы Что такое Классы?

Zion WebEngine 22.07.26
  • Доработан класс для управления пользователями (спасибо КСБ Рус):
    • Внесено множество корректировок в импорт данных о пользователях их XML
  • Доработан класс для управления импортом данными о товарах из XML:
    • Устранены некоторые недочёты

Zion WebEngine Zion Import XML/RSS/1С/YML Доступы/Пользователи Импорт/Экспорт Классы Сайт-каталог Как импортировать данные о товарах из XML

Zion WebEngine 22.07.21
  • Доработан класс для управления пользователями (спасибо Moto-Retail18):
    • Теперь уведомление о создании системного администратора отправляется только, если удалось проверить, что он действительно создан или обновлён

Zion WebEngine Доступы/Пользователи Классы Уведомления

Zion WebEngine 22.07.19
  • Доработан класс для управления пользователями (спасибо Moto-Retail18):
    • Теперь попытка создать системного администратора производится только при наличии корректного подключения к базе данных:
      • Ранее, например, во время перезагрузки СУБД могло приходить множество уведомлений о том, что создан системный администратор. Хотя, на самом деле ничего не происходило, т.к. БД была недоступна

Zion WebEngine База данных/Таблицы данных Доступы/Пользователи Классы Уведомления Что такое Классы?

Zion WebEngine 22.07.18
  • Доработан класс для управления пользователями (спасибо КСБ Рус):
    • Теперь в предпросмотре импортируемых данных о пользователях более корректно отображаются имена пользователей

Zion WebEngine Доступы/Пользователи Импорт/Экспорт Классы

Zion WebEngine 22.07.15
  • Доработан класс для управления пользователями (спасибо КСБ Рус):
    • Теперь в предпросмотре импортируемых данных о пользователях видно, как они будут скорректированы в случае, если не соответсвуют тем или иным параметрам
  • Доработан класс для управления базой данных:
    • Упрощена проверка на корректность идентификаторов

Zion WebEngine База данных/Таблицы данных Доступы/Пользователи Импорт/Экспорт Классы Как импортировать данные о пользователях из XML

Zion WebEngine 22.07.11
  • Доработаны класс для управления SMS-шлюзом и настраиваемый модуль реакции на заказ для отправки уведомления на системный e-mail (спасибо Смарт Мастер):
    • Теперь в уведомлениях о новом заказе в интернет-магазине ссылки на кириллические домены отображаются более корректно

Zion WebEngine Zion Catalog Email-сообщения SMS Интернет-магазин Классы Кодировки/Наборы символов Корзина для заказов Настраиваемые модули Реакции на заказ Уведомления Что такое Классы?

Zion WebEngine 22.07.07
  • Доработан класс для управления SMS-шлюзом (спасибо Moto-Retail18):
    • Отменены изменения, реализованные в предудущем обновлении из-за проблем, выявленных при боевых испытаниях
  • Доработано несколько классов:
    • Теперь доступно указание кавычек в запросе при поиске в административном интерфейсе

Zion WebEngine Zion User Control Zion Catalog Zion xDelivery Zion Gallery Zion Banners Manager Что такое Административный интерфейс и Гостевой интерфейс? SMS Административный интерфейс Классы Обновления CMS Поиск текста

Zion WebEngine 22.07.05
  • Доработан класс для управления SMS-шлюзом (спасибо КСБ Рус):
    • Теперь, если отправке SMS-сообщений что-то препятсвует, на email для системных уведомлений придёт уведомление с детальной информации о причинах ошибки, а также о вариантах её устранения

Zion WebEngine Email-сообщения SMS Классы Уведомления Что такое Классы?

Zion WebEngine 22.06.29
  • Доработан класс для управления пользователями (спасибо КСБ Рус):
    • Оптимизировано использование памяти при импорте данных о пользователях через формат XML, например из 1С или из другой внешней системы

Zion WebEngine XML/RSS/1С/YML Доступы/Пользователи Импорт/Экспорт Классы Как импортировать данные о пользователях из XML