CommerceML
CommerceML — это открытый стандарт обмена данными в формате XML, предназначенный для автоматизации электронной коммерции, в первую очередь для передачи информации о товарах, заказах и документах между интернет-магазинами, системами управления предприятием (ERP, CRM) и бухгалтерскими программами. Стандарт разработан и поддерживается российской компанией «1С-Софт» и широко используется в России и странах СНГ.
История
Разработка CommerceML началась в начале 2000-х годов как ответ на потребность в унифицированном формате обмена данными между различными системами учёта и сайтами электронной коммерции. До появления стандарта каждый разработчик создавал собственные форматы выгрузки, что затрудняло интеграцию. Первая версия CommerceML (1.0) была выпущена в 2002 году и представляла собой простой XML-схему для описания товаров.
В 2004 году вышла версия 2.0, которая расширила возможности формата, добавив поддержку заказов, контрагентов и документов. Версия 2.1 (2006 год) уточнила структуру и добавила элементы для работы с характеристиками товаров, ценами и складами. Версия 2.2 (2008 год) стала наиболее стабильной и популярной, включив поддержку множества типов документов, включая счета, накладные и заказы покупателей.
В 2011 году была выпущена версия 2.3, которая добавила поддержку расширенных свойств товаров, пакетов и групп, а также улучшила работу с остатками и ценами. Версия 2.4 (2013 год) ввела поддержку дополнительных реквизитов, контактной информации и файлов изображений. Версия 2.5 (2015 год) добавила поддержку обмена данными о скидках, наценках и акциях.
Версия 2.6 (2017 год) стала последней на данный момент. Она включает поддержку обмена данными о маркировке товаров (в связи с введением в России системы маркировки «Честный ЗНАК»), а также улучшенную обработку ошибок и расширенные возможности для работы с заказами. В 2020 году была опубликована версия 2.7, которая находится в стадии разработки и тестирования.
Структура и формат
CommerceML базируется на языке XML. Каждый файл обмена представляет собой XML-документ, структура которого описывается XSD-схемой. Основные элементы файла CommerceML:
- Классификатор — содержит иерархическую структуру категорий товаров (групп), а также список единиц измерения, свойств и значений свойств.
- Каталог — содержит описание товаров, включая их наименование, артикул, описание, изображения, характеристики, цены и остатки на складах. Каждый товар может быть привязан к одной или нескольким категориям из классификатора.
- Пакет предложений — содержит информацию о ценах, скидках, остатках и условиях продажи для каждого товара. Цены могут быть заданы в разных валютах и для разных типов покупателей.
- Документы — содержит информацию о заказах покупателей, счетах, накладных, актах и других документах. Каждый документ содержит информацию о контрагенте, дате, сумме, товарных позициях и статусе.
Файлы CommerceML обычно имеют расширение .xml и могут быть заархивированы в формате ZIP для уменьшения размера. Имена файлов часто содержат префиксы, указывающие на тип данных (например, import.xml, offers.xml, orders.xml).
Версии
Основные версии CommerceML и их ключевые особенности:
| Версия | Год выпуска | Ключевые особенности |
|---|---|---|
| 1.0 | 2002 | Базовая поддержка товаров и категорий. |
| 2.0 | 2004 | Поддержка заказов, контрагентов и документов. |
| 2.1 | 2006 | Уточнение структуры, поддержка характеристик и цен. |
| 2.2 | 2008 | Стабильная версия, поддержка множества типов документов. |
| 2.3 | 2011 | Поддержка расширенных свойств, пакетов и групп. |
| 2.4 | 2013 | Поддержка дополнительных реквизитов, контактов и файлов. |
| 2.5 | 2015 | Поддержка скидок, наценок и акций. |
| 2.6 | 2017 | Поддержка маркировки товаров, улучшенная обработка ошибок. |
| 2.7 | 2020 | В разработке, расширение возможностей. |
Применение
CommerceML является де-факто стандартом для интеграции интернет-магазинов с системами учёта в России. Основные сценарии использования:
- Выгрузка товаров из ERP в интернет-магазин. Программа «1С:Предприятие» (или другая ERP-система) формирует файл CommerceML, содержащий каталог товаров, цены и остатки. Этот файл импортируется в CMS интернет-магазина (например, 1С-Битрикс, OpenCart, WooCommerce, Shop-Script).
- Загрузка заказов из интернет-магазина в ERP. Интернет-магазин формирует файл CommerceML, содержащий заказы покупателей. Этот файл импортируется в «1С:Предприятие» для обработки и формирования бухгалтерских документов.
- Обмен данными между различными системами. CommerceML может использоваться для обмена данными между CRM-системами, складскими программами и системами управления заказами.
- Интеграция с маркетплейсами. Некоторые маркетплейсы (например, Яндекс.Маркет, Ozon) поддерживают импорт товаров через CommerceML, хотя чаще используются собственные форматы.
Преимущества и недостатки
Преимущества
- Открытый стандарт. Спецификация CommerceML доступна бесплатно, что позволяет разработчикам создавать собственные интеграции.
- Широкая распространённость. Стандарт поддерживается большинством ERP-систем и CMS, используемых в России.
- Гибкость. CommerceML позволяет передавать не только товары, но и заказы, документы, контрагентов, цены и остатки.
- Поддержка сложных структур. Стандарт поддерживает иерархические категории, множественные характеристики товаров, различные типы цен и скидок.
Недостатки
- Сложность. XML-схема CommerceML является достаточно сложной, что может затруднить её реализацию для новичков.
- Избыточность. Для простых задач (например, выгрузка только названий и цен) CommerceML может быть избыточным.
- Отсутствие строгой валидации. Некоторые реализации CommerceML могут интерпретировать одни и те же элементы по-разному, что приводит к ошибкам при обмене.
- Зависимость от версий. Разные версии CommerceML могут быть несовместимы друг с другом, что требует согласования версий между системами.
Критика
Основная критика CommerceML связана с его сложностью и отсутствием строгой стандартизации. Разработчики отмечают, что разные версии и реализации стандарта могут содержать несовместимые элементы, что приводит к необходимости доработок при интеграции. Кроме того, XML-формат считается устаревшим по сравнению с JSON, который проще для парсинга и обработки. Некоторые критики указывают, что CommerceML является «закрытым» стандартом, поскольку его разработка контролируется одной компанией («1С-Софт»), что ограничивает возможности сообщества по его развитию.
Альтернативы
Существуют альтернативные форматы обмена данными, которые используются в электронной коммерции:
- YML (Yandex Market Language) — формат, разработанный компанией «Яндекс» для выгрузки товаров на Яндекс.Маркет. Проще CommerceML, но менее гибок.
- JSON — современный формат, который часто используется для обмена данными через API. Не имеет единого стандарта для электронной коммерции, но может быть адаптирован под конкретные задачи.
- CSV — простой текстовый формат, который используется для выгрузки табличных данных. Не поддерживает сложные структуры.
- OpenCart XML — формат, используемый в CMS OpenCart для обмена данными с внешними системами.
- Google Merchant Center — формат, используемый для выгрузки товаров в Google Shopping.
Источники
- Спецификация CommerceML версии 2.6. Официальный сайт «1С-Софт».
- Документация по интеграции с CommerceML для 1С-Битрикс.
- Статья «CommerceML: стандарт обмена данными для электронной коммерции» на портале «Хабр».
- Обсуждение CommerceML на форумах разработчиков «1С:Предприятия».
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →