Как импортировать данные о товарах из 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.12.15
  • Доработан класс, формирующий YML-файл для интеграции с Яндекс.Маркет (спасибо Moto-Retail18):
    • Реализована возможность одной кнопкой добавить все товары в YML-файл, а другой удалить все товары из YML-файла
    • Теперь, если для товара не заполнено поле Название для Яндекс.Маркет, то используются данные из поля Название на вкладке Основные параметры
    • Дополнен список проверок на корректность указания параметров перед непосредственным формированием YML-файла
    • Устранены некоторые недочёты

Zion Export XML/RSS/1С/YML Вкладки Классы Сайт-каталог Что такое Вкладки?

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

Zion xDelivery Что такое система Мониторинга? Административный интерфейс Мониторинг Настраиваемые модули Способы доставки/самовывоза

Zion WebEngine 22.12.13
  • Доработаны административные скрипты (спасибо ТК Кило):
    • Устранены проблемы при отображение/скрытии поля Свой вариант при правке элемента Выбор одного из вариантов

Zion WebEngine Выбор одного из вариантов

Zion WebEngine 22.12.09
  • Переработано управление иконками для способов оплаты и доставки, а также для транспортных компаний (спасибо Moto-Retail18):
    • Теперь иконки по умолчанию не заменяют собой иконки, ранее установленные пользователем
    • Иконка по умолчанию копируется в нужное место из созданного в этом обновлении репозитория только, если способ (доставки или оплаты) или (транспортная) компания активна, и при этом для неё не была использована ранее другая иконка

Zion WebEngine Zion Catalog Zion xDelivery Zion xPayment Способы доставки/самовывоза

Zion WebEngine 22.12.01
  • Доработан плагин универсального меню (спасибо Moto-Retail18):
    • Устранена проблема с использованием параметра select со значением all в случаях, когда нужно отобразить список транспортных компаний, например, в форме оформления заказа в интернет-магазине
  • Доработан класс для управления пользователями (спасибо ТК Кило):
    • Приняты меры на случай невозможности отправки письма с данными авторизации только что созданного системного администратора
  • Доработан класс для управления SMS-уведомлениями:
    • Налажено более корректное создание столбцов в случае их отсутствия в таблице данных реакций на заказы

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

Zion WebEngine 22.11.30
  • Доработан класс для управления обновлениями на стороне сервера:
    • Устранены недочёты с регистрацией в базе данных доменов новых сайтов клиентов

Zion Server База данных/Таблицы данных Веб-сервер/Хостинг Классы Обновления CMS Что такое Классы?

Zion WebEngine 22.11.24
  • Доработаны класс для управления обновлениями на стороне сервера и система мониторинга для сервера обновлений:
    • Реализована новая страница приветствия для пользователей CMS

Zion Server Что такое CMS Zion WebEngine? Веб-сервер/Хостинг Классы Мониторинг Обновления CMS

Zion WebEngine 22.11.19
  • Доработан класс для управления обновлениями на стороне сервера и система мониторинга для сервера обновлений:
    • Устранены некоторые недочёты

Zion Server Что такое система Мониторинга? Веб-сервер/Хостинг Классы Мониторинг Обновления CMS

Zion WebEngine 22.11.18
  • Доработан класс для управления импортом из 1С/XML (спасибо Moto-Retail18):
    • Теперь товары, ссылающиеся на несуществующие (возможно, ранее удалённые) категории, будут автоматически удаляться при импорте:
      • Это касается, как импортируемых в данный момент, так и уже существующих в основной базе данных записей

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

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

Zion WebEngine База данных/Таблицы данных Классы Место в структуре Элемент "Место в структуре"

Zion WebEngine 22.11.09
  • Доработан плагин универсального меню (спасибо Moto-Retail18):
    • Для параметра select создан новый вариант all - позволяет отобразить все записи с учётом других параметров фильтрации:
      • Указание параметра factor при этом не требуется, так как он ни на что не влияет
    • Использовать варианта children-all в параметре select для крупных сайтов настоятельно не рекомендуется, т.к. он создаёт очень большую нагрузку на базу данных, например, при поиске по всем подразделам той или иной записи (например, каталога товаров):
      • Если необходимо отобразить все записи (или выполнить поиск по всем записям), которые являются подразделами того или иного надраздела (например, каталога товаров), то лучше использовать не select:children-all, а select:all и указать через запятую в параметре types типы, к которым относятся такие подразделы

Zion WebEngine База данных/Таблицы данных Меню/Списки/Навигация Место в структуре Плагины Поиск текста Сайт-каталог Типы Плагин Menu

Zion WebEngine 22.11.08
  • Доработан класс для управления обновлениями на стороне сервера и система мониторинга для сервера обновлений:
    • Устранены некоторые недочёты

Zion Server Что такое система Мониторинга? Веб-сервер/Хостинг Классы Мониторинг Обновления CMS

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

Zion WebEngine База данных/Таблицы данных Классы Кэш/Кеш Что такое Классы?

Zion WebEngine 22.10.21
  • Доработан плагин TimeMashine (спасибо Средняя общеобразовательная школа № 118):
    • Устранены ошибки при отображении дат в виде "Послезавтра", "В следующем году", "На прошлой неделе" и т.п.
  • Доработан класс для управления обновлениями на стороне сервера:
    • Более корректно реализовано определение доменов и поддоменов сайтов клиентов

Zion WebEngine Zion Server Веб-сервер/Хостинг Дата/Время/TimeMashine Классы Обновления CMS Плагины Что такое Плагины?

Zion WebEngine 22.10.20
  • Доработаны классы для управления пользователями, базой данных, проектом и обновлениями на стороне сервера, а также страницы ошибок:
    • Изменены адреса, по которым можно получить различную справочную информацию от Портала поддержки

Zion WebEngine Zion Server Адрес (URL)/ЧПУ/Переадресация База данных/Таблицы данных Веб-сервер/Хостинг Доступы/Пользователи Классы Обновления CMS Страницы ошибок Что такое Классы?

Zion WebEngine 22.10.19
  • Доработан элемент Дата:
    • Устранена проблема при быстром просмотре дат в списке записей в административном интерфейсе:
      • Если для той или иной записи дата ещё не была указана, это могло привести к фатальной ошибке
  • Доработан монитор работоспособности сервера обновлений:
    • Внесены корректировки в связи с продолжающейся реорганизацией страницы приветствия в административном интерфейсе
  • Доработан класс для управления обновлениями на стороне сервера:
    • Внесены корректировки в связи с начавшейся реорганизацией автоматических обновлений CMS:
      • Теперь обновление доступно при заходе с любого домена, закреплённого за сайтом подписчика на обновления:
        • Переход на новую систему ещё не завершён - для некоторых сайтов обновление пока доступно только с одного домена

Zion Pub Hub Zion Server Что такое Административный интерфейс и Гостевой интерфейс? Административный интерфейс Веб-сервер/Хостинг Дата/Время/TimeMashine Классы Мониторинг Обновления CMS Типы Элементы

Zion WebEngine 22.10.18
  • Доработан элемент Выбор одного из вариантов:
    • Поле Свой вариант теперь появляется только, когда это необходимо
  • Доработаны административные JS-скрипты:
    • Расширен список доступных JS-функций
  • Доработан элемент Связи:
    • Теперь для каждого шаблона можно настроить список типов, с записями которых может быть установлена связь в ту или в другую сторону
    • По умолчанию для связи доступны все типы
    • Также доступен просмотр древовидного списка всех записей всех типов и список уже установленных связей
    • Если ни один тип не выбран, то функционал, необходимый для связывания скрывается
  • Доработан класс для управления базой данных:
    • Теперь для использования ID в том числе доступен символ . (точка)
  • Доработан монитор работоспособности сервера обновлений:
    • Внесены корректировки в связи с начавшейся реорганизации страницы приветствия в административном интерфейсе

Zion WebEngine Zion Catalog Zion Server Административный интерфейс База данных/Таблицы данных Веб-сервер/Хостинг Выбор одного из вариантов Классы Кодировки/Наборы символов Мониторинг Обновления CMS Связи Типы Шаблоны контента Элементы Что такое Элементы?

Zion WebEngine 22.10.14
  • Доработан XML/1C-экспорт данных о заказе в интернет-магазине (спасибо Moto-Retail18):
    • Учтена вероятность указания в комментарии к заказу и в других полях некоторых спецсимволов
  • Доработан класс для управления миграцией со старых версий CMS (спасибо Мария и Иоанн):
    • Улучшена миграция меню/списков и плагинов, необходимых для функционирования интернет-магазина
  • Доработан класс для управления навигацией:
    • Из списка меню по умолчанию удалены некоторые архаизмы
  • Доработан класс для управления корзиной заказов:
    • Более продуманно организованы поля в форме заказа

Zion WebEngine Zion Catalog Zion Export XML/RSS/1С/YML Импорт/Экспорт Интернет-магазин Классы Кодировки/Наборы символов Корзина для заказов Меню/Списки/Навигация Миграция Реакции на заказ Плагин Menu

Zion WebEngine 22.10.13
  • Доработан класс для управления миграцией со старых версий CMS (спасибо Мария и Иоанн):
    • Улучшена миграция товаров, их категорий и характеристик, а также обработчиков, необходимых для функционирования интернет-магазина
  • Доработан класс для управления контентом:
    • Теперь более корректно отображается список характеристик с указанных вкладок:
      • Как только заполненных, так и всех характеристик

Zion WebEngine Вкладки Интернет-магазин Категории Классы Контент/Контентные единицы Миграция Обработчики Характеристики/Разновидности Что такое Вкладки?

Zion WebEngine 22.10.05
  • Доработан класс для управления базой данных (спасибо Испытательный центр "Строитель"):
    • Теперь CMS отправляет корректный код ошибки, в случае, если недоступен или некорректно сконфигурирован Memcached:
      • Это может привести, в том числе, к автоматической остановке Ваших рекламных кампаний, когда с сайтом, что-то не так, и к автоматическому возобновлению рекламы, когда сайт начнёт работать корректно
    • Более корректно налажено использование функционала Memcached
  • Доработаны классы для управления проектом:
    • Упрощён вывод тех или иных ошибок через новую функцию, для которой доступно указание нескольких параметров:
      • Код ошибки
      • Заголовок страницы ошибки
      • Текст с описанием и рекомендацией по устранению ошибки

Zion WebEngine Что такое CMS Zion WebEngine? База данных/Таблицы данных Классы Кэш/Кеш Страницы ошибок