Как импортировать данные о товарах из 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 21.08.25
  • Доработаны класс для управления навигацией и плагин универсального меню (спасибо Пермский период):
    • Добавлено новое условие IS_EXISTS_IN_BASKET_idтовара??истина::ложь:
      • С его помощью можно задать разное оформление для пункта меню в зависимости от того, добавлен ли в корзину указанный товар

Zion WebEngine Классы Корзина для заказов Меню/Списки/Навигация Плагины Условия Плагин Menu

Zion WebEngine 21.08.18
  • Доработан класс для управления заказами (спасибо Белый и пушистый):
    • При правке заказа теперь более корректно отображаются цены
    • Доработаны записи по умолчанию для реакций на заказы
  • Создан новый настраиваемый модуль реакции на заказ, который будет изменять скидочный уровень пользователя в зависимости от стоимости заказа в интернет-магазине (спасибо Смарт Мастер):
    • Разработка пока не завершена
    • Для его целей доработано меню администратора для пакета Zion User Control

Zion WebEngine Zion User Control Zion Catalog Что такое Меню администратора? Доступы/Пользователи Интернет-магазин Классы Корзина для заказов Меню администратора Настраиваемые модули Реакции на заказ Скидки/Наценки

Zion WebEngine 21.08.09
  • Доработаны обработчики для форм обратной связи и заказа обратного звонка (спасибо Цифрал Сервис):
    • Реализованы новые возможности SMS-шлюза

Zion Mail Back SMS Корзина для заказов Обработчики Обратная связь/Обратный звонок Формы

Zion WebEngine 21.08.03
  • Доработан класс для управления заказами (спасибо Пермский период):
    • Скорректирован алгоритм смены статуса заказа при оплате через какой-либо платёжный модуль:
      • Учтено, что оплаченными теперь могут стать не только новые, но и подтверждённые заказы
  • Доработан настраиваемый модуль для онлайн-оплаты через интернет-эквайринг от ПромСвязьБанка:
    • Устранены некоторые недочёты
    • Разработка завершена
  • Доработаны класс для управления SMS-шлюзом и настраиваемый модель для отправки SMS через SMSЦентр, а также система мониторинга для SMS:
    • Устранены некоторые недочёты из предыдущего обновления

Zion WebEngine Zion Catalog Zion xPayment Что такое система Мониторинга? SMS Классы Корзина для заказов Мониторинг Настраиваемые модули Обновления CMS Способы оплаты

Zion WebEngine 21.08.02
  • Доработан класс для управления SMS-шлюзом (спасибо Цифрал Сервис):
    • Реализована возможность выбирать настраиваемый модуль для работы с SMS:
      • Для этих же целей создан настраиваемый модуль, интегрированный с SMSЦентром
      • В ближайших обновлениях появятся модули, интегрированные с другими аналогичными сервисами
  • Доработана система мониторинга для SMS:
    • Учтёно, что "старые" опции, которые раньше относились к одному классу, теперь относятся к двум разным классам
  • Доработан класс для управления заказами (спасибо Пермский период):
    • Скорректирован список данных, которые могут быть переданы платёжному модулю
  • Доработан настраиваемый модуль для онлайн-оплаты через интернет-эквайринг от ПромСвязьБанка:
    • Устранены некоторые недочёты
    • Разработка ещё не завершена

Zion WebEngine Zion Catalog Zion xPayment SMS Классы Корзина для заказов Мониторинг Настраиваемые модули Обновления CMS Способы оплаты Что такое Классы?

Zion WebEngine 21.07.30
  • Доработан класс для управления заказами (спасибо Пермский период):
    • Дополнен список данных, которые могут быть переданы платёжному модулю
  • Создан настраиваемый модуль для онлайн-оплаты через интернет-эквайринг от ПромСвязьБанка:
    • Разработка ещё не завершена
  • Доработан класс для управления способами оплаты:
    • Дополнен список способов оплаты, которые создаются автоматически на новом сайте
  • Доработана система мониторинга для cURL:
    • Актуализирована информация о том, какие функции будут недоступны при отсутствии поддержки данной PHP-библиотеки

Zion WebEngine Zion Catalog Zion xPayment Что такое система Мониторинга? PHP Классы Корзина для заказов Мониторинг Настраиваемые модули Способы оплаты

Zion WebEngine 21.07.29
  • Доработан класс для управления обновлениями CMS:
    • Устранён недочёт с бесконечно повторяющимся успешным обновлением
  • Доработан плагин timemashine (спасибо Хронос Медиа):
    • Добавлен параметр lang:
      • В значении ru (по умолчанию) реализует русификацию для названий месяцев и дней недели (как раньше)
      • В значении en отключает русификацию для названий месяцев и дней недели:
        • Это может быть полезно в тех случаях, когда дата должна быть возвращена в одном из международных форматов
    • Доработан мастер по вставке этого плагина:
      • Учтены новые возможности
  • Доработан плагин для отображения контента:
    • Добавлен параметр htmlspecialchars:
      • При любом его непустом значении в результате все специальные символы будут преобразованы в HTML-сущности:
        • Это может быть полезно, например, для формирования XML-кода, в том числе RSS-ленты
  • Доработаны классы для управления базой данных и настраиваемый модуль для управления бронированием (спасибо Пермский период):
    • Изменены названия некоторых полей в таблице данных заказов
  • Доработаны классы для управления корзиной и заказами, настраиваемые модули для уведомлений о заказах по email и по SMS, а также настраиваемые модули для онлайн-оплаты через Qiwi.Кассу, Робокассу, Альфа Банк и Сбербанк:
    • Реализована поддержка возможности оплаты заказа только после его подтверждения администратором

Zion WebEngine Zion Catalog Zion xDelivery Zion xPayment Что такое CMS Zion WebEngine? Email-сообщения HTML-код веб-страницы Qiwi Касса Robokassa SMS XML/RSS/1С/YML База данных/Таблицы данных Бронирование/Расписание Дата/Время/TimeMashine Классы Кодировки/Наборы символов Контент/Контентные единицы Корзина для заказов Многоязычность/Языки Настраиваемые модули Обновления CMS Плагины Помощники/Мастеры/Инструкции/Подсказки Реакции на заказ Способы оплаты

Zion WebEngine 21.07.28
  • Доработаны классы для управления заказами и базой данных (спасибо Пермский период):
    • Завершено внедрение функционала для добавления новых и удаления уже имеющихся в заказе товаров через административный интерфейс
    • Там же реализовано изменение/сохранение дат заезда/выезда, если в качестве способа получения заказа выбрано Бронирование

Zion WebEngine Zion Catalog Что такое Административный интерфейс и Гостевой интерфейс? База данных/Таблицы данных Бронирование/Расписание Дата/Время/TimeMashine Интернет-магазин Классы Корзина для заказов Способы доставки/самовывоза

Zion WebEngine 21.07.27
  • Доработан класс для управления заказами (спасибо Пермский период):
    • Реализована возможность редактировать некоторые данные в заказе:
      • Менять/выбирать зарегистрированного пользователя:
        • Для этого также доработан класс для управления пользователями
      • Редактировать контактные лицо, телефон и email:
        • Для этого также доработан элемент Однострочное поле
      • Менять названия, цены и количества для уже имеющихся в заказе товаров:
        • Нулевые количества и пустые названия не сохраняются
      • Начато внедрение функционала для добавления новых и удаления уже имеющихся в заказе товаров 

Zion WebEngine Zion Catalog Доступы/Пользователи Интернет-магазин Классы Корзина для заказов Элементы Что такое Элементы?

Zion WebEngine 21.07.22
  • Доработаны настраиваемый модуль доставки через транспортные компании и класс корзины заказов (спасибо Moto-Retail18):
    • Теперь для доставки транспортной компанией доступно указание адреса получателя
    • Устранены некоторые недочёты в форме заказа в интернет-магазине
  • Создан новый настраиваемый модуль способа доставки (спасибо Пермский период):
    • С его помощью можно бронировать товар или услугу на промежуток дат
    • При выборе такого способа доставки заказ создаётся со статусом не Новый, а Ожидает подтверждения:
      • Онлайн-оплата для клиента при этом становится невозможна, пока администратор не проверит параметры бронирования
      • В связи с этим также доработаны класс для управления заказами, меню администратора для пакета Zion Catalog, система мониторинга для заказов, настраиваемые модули реакций на заказы, необходимые для уведомлений о заказах по e-mail и SMS

Zion WebEngine Zion Catalog Zion xDelivery Email-сообщения SMS Бронирование/Расписание Дата/Время/TimeMashine Интернет-магазин Классы Корзина для заказов Меню администратора Мониторинг Настраиваемые модули Реакции на заказ Способы доставки/самовывоза Способы оплаты Формы Что такое Классы?

Zion WebEngine 21.07.15
  • Доработан плагин универсального меню (спасибо Good Авто):
    • Параметр hidden (скрывать ли пункты с пустым, нулевым или незаполненным значением) со значением hide (скрывать) стал доступен в сочетании с types:elements;select:list (список элементов, перечисленных через запятую):
      • При этом, как и раньше в параметре include должны быть перечислены через запятую ID элементов, которые нужно отоборазить (скрыв незаполненные)
      • Важно! Если, например, в include указаны stringfield_5,number_3, то на заполненность будут проверяться поля stringfield_5_value и number_3_value - то есть поля, имена которых заканчиваются на _value
  • Доработаны класс для работы с корзиной заказов и настраиваемые модули для управления самовывозом и доставкой через транспортные компании (спасибо Moto-Retail18):
    • Устранена проблема, при которой в данные о заказе могла попадать информация, неприменимая для выбранного способа доставки/самовывоза

Zion WebEngine Zion Catalog Zion xDelivery Классы Корзина для заказов Меню/Списки/Навигация Настраиваемые модули Плагины Способы доставки/самовывоза Элементы Плагин Menu

Zion WebEngine 21.07.08
  • Доработаны классы для управления корзиной заказов и способами доставки (спасибо ЛеоСталь):
    • Параметр Скрывать поля для указания адреса в настройках способа доставки теперь принимается во внимание только, если НЕ выбран настраиваемый модуль для данного способа доставки
    • Если модуль выбран, то этот параметр игнорируется, так как управление им происходит уже из модуля, который может, как заменять, так и дополнять форму с полями для указания адреса
  • Доработан настраиваемый модуль для оплаты через банк:
    • Устранены недочёты при обращении к базе данных

Zion Catalog База данных/Таблицы данных Классы Корзина для заказов Настраиваемые модули Способы доставки/самовывоза Способы оплаты Что такое Классы?

Zion WebEngine 21.07.01
  • Доработан класс для управления местом в структуре (спасибо Good Авто):
    • Устранена вероятность возникновения зацикливания при выборе страницы по умолчанию в опциях проекта
    • Такая вероятность могла возникнуть, например, при наличии в структуре записей без ID, появившихся, например, при некорректном импорте данных:
      • Теперь такие записи исключаются при построении структуры
  • Доработан класс для интеграции с SMS-шлюзом:
    • Обновлена инструкция по тому, что делать, если SMS-сообщения не приходят из-за подозрения в рассылке спама

Zion WebEngine SMS Импорт/Экспорт Классы Место в структуре Помощники/Мастеры/Инструкции/Подсказки Спам Элемент "Место в структуре"

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

Zion Catalog Email-сообщения Доступы/Пользователи Корзина для заказов Настраиваемые модули Реакции на заказ

Zion WebEngine 21.06.29
  • Доработан класс для управления импортом из CRM Intrum (спасибо Good Авто):
    • Из-за того, что CRM отправляла данные об изображениях ещё до сохранения в ней записи, на сайте могла создаваться огромная галерея из по сути ненужных фотографий:
      • Теперь для устранения данной ситуации перед добавлением новых слайдов происходит полная очистка соответствующей галереи

Zion Import Галереи/Слайды Изображение Импорт/Экспорт Классы Что такое Классы?

Zion WebEngine 21.06.28
  • Завершена разработка настраиваемого модуля для предоставления накладных при заказе (спасибо Moto-Retail18):
    • Реализованы отображение и распечатка накладной в интерфейсе администратора (администратору) и (клиенту) сразу же после заказа
    • Реализована отправка на email ссылки на накладную (клиенту) сразу же после заказа
  • Доработан плагин универсального меню:
    • Список товаров в том или ином заказе теперь доступен не только клиенту, сделавшему заказ, но и администратору, а также тому пользователю, который перейдёт по специальной ссылке
  • Доработан класс для управления числами:
    • Доступен новый плагин number_ToString, с помощью, которого можно отобразить, например, сумму прописью, например, в накладной
  • Доработан класс для управления базой данных:
    • Устранены вероятность возникновения ошибок при смене статуса заказов в случае отсутствия в комплекте поставки пакета Zion User Control

Zion WebEngine Zion Catalog Что такое Комплект поставки? Email-сообщения Административный интерфейс База данных/Таблицы данных Доступы/Пользователи Интернет-магазин Классы Корзина для заказов Меню/Списки/Навигация Настраиваемые модули Плагины Реакции на заказ Число

Zion WebEngine 21.06.24
  • Доработан класс для управления импортом из CRM Intrum (спасибо Good Авто):
    • Устранены некоторые недочёты, из-за которых могли создаваться надкатегории без идентификаторов

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

Zion WebEngine 21.06.23
  • Доработан элемент Выбор одного из вариантов (спасибо Good Авто):
    • Теперь данные и из этого элемента могут быть использованы для быстрого просмотра в списке контентных единиц в административном интерфейсе

Zion Catalog Административный интерфейс Выбор одного из вариантов Контент/Контентные единицы Элементы Что такое Элементы?

Zion WebEngine 21.06.22
  • Доработан настраиваемый модуль для предоставления накладных при заказе (спасибо Moto-Retail18):
    • Доработано сохранение параметров модуля
    • Реализовано отображение в форме заказа в интернет-магазине опций, предоставляемых этим модулем
    • Реализовано сохранение в данных о заказе пожеланий клиента по способам, которыми он хочет получить накладную
    • Реализовано отображение в данных о заказе в интерфейсе администратора пожеланий клиента по способам, которыми он хочет получить накладную
    • Разработка пока не зваершена
  • Для тех же целей доработаны классы для управления корзиной и заказами

Zion Catalog Административный интерфейс Интернет-магазин Классы Корзина для заказов Настраиваемые модули Реакции на заказ Формы Что такое Классы?

Zion WebEngine 21.06.18
  • Доработаны класс для управления типами и элемент Место в структуре (спасибо Цифрал Сервис):
    • Теперь для быстрого просмотра в списке контентных единиц в административном интерфейсе могут быть доступны не только обычные, но и уникальные элементы:
      • В том числе эта возможность реализована для элемента Место в структуре

Zion WebEngine Административный интерфейс Классы Контент/Контентные единицы Место в структуре Типы Элементы Элемент "Место в структуре"