Открыть сервис

cXML

cXML — это открытый стандарт обмена данными в формате XML, предназначенный для автоматизации транзакций между деловыми партнёрами, в первую очередь в сфере электронной коммерции (B2B). Стандарт определяет структуру сообщений для таких операций, как размещение заказов, выставление счетов, управление каталогами товаров и подтверждение поставок. cXML (Commerce XML) разработан консорциумом Ariba (ныне часть SAP) и впервые опубликован в 1999 году.

История и развитие

Стандарт cXML был создан компанией Ariba в конце 1990-х годов как решение для упрощения и унификации электронного документооборота между покупателями и поставщиками. В то время рынок B2B-электронной коммерции страдал от фрагментации: каждая платформа использовала собственные форматы данных, что затрудняло интеграцию. Ariba предложила открытый, основанный на XML стандарт, который мог бы поддерживаться любыми системами.

Первая версия спецификации была выпущена в 1999 году. В 2000 году Ariba передала управление стандартом некоммерческой организации cXML.org, которая продолжает его развитие и поддержку. Ключевые обновления включали:

  • Версия 1.0 (1999) — базовая поддержка заказов и каталогов.
  • Версия 1.2 (2001) — добавление поддержки счетов-фактур (Invoice).
  • Версия 1.3 (2007) — расширение для работы с контрактами и соглашениями.
  • Версия 2.0 (2015) — улучшенная поддержка JSON-подобных структур и упрощение обработки.

На сегодняшний день cXML остаётся одним из наиболее распространённых стандартов в корпоративных закупках, особенно в Северной Америке и Европе. В России стандарт используется преимущественно крупными компаниями, работающими с международными партнёрами или внедрившими SAP Ariba.

Архитектура и принципы работы

cXML построен на архитектуре «запрос-ответ» (request-response) и «публикация-подписка» (publish-subscribe). Каждое сообщение имеет строгую структуру, включающую:

  • Header (заголовок) — содержит информацию об отправителе, получателе, типе сообщения и идентификаторе транзакции. Заголовок обязательно включает аутентификационные данные (SharedSecret или Certificate).
  • Request (запрос) — тело сообщения, содержащее бизнес-данные (например, список товаров, цены, количество).
  • Response (ответ) — подтверждение получения, ошибка или результат обработки.

Все сообщения передаются через HTTP или HTTPS. Для обеспечения безопасности используется шифрование SSL/TLS, а также цифровые подписи. Стандарт поддерживает как синхронный (немедленный ответ), так и асинхронный (отложенный ответ) режимы обмена.

Основные типы сообщений

cXML определяет несколько десятков типов сообщений, сгруппированных по функциональным областям. Ниже приведены наиболее распространённые:

Управление каталогами

  • CatalogUpload — загрузка каталога товаров поставщиком в систему покупателя.
  • CatalogItemUpdate — обновление информации о конкретном товаре (цена, наличие, описание).
  • CatalogRequest — запрос каталога от покупателя к поставщику.

Заказы и подтверждения

  • OrderRequestразмещение заказа покупателем.
  • OrderResponse — подтверждение заказа поставщиком (с указанием сроков, цен, возможных изменений).
  • OrderChange — изменение уже размещённого заказа.
  • OrderCancel — отмена заказа.

Счета и платежи

  • InvoiceDetailRequest — выставление счёта-фактуры поставщиком.
  • InvoiceDetailResponse — подтверждение получения счёта покупателем.
  • PaymentRemittanceRequest — уведомление о платеже (перечислении денежных средств).

Прочие операции

Структура типового сообщения

Пример упрощённого сообщения OrderRequest (заказ):

``xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd">; <cXML payloadID="1234567890@buyer.com" timestamp="2023-10-01T12:00:00Z"> <Header> <From> <Credential domain="NetworkID"> <Identity>BuyerCompany</Identity> </Credential> </From> <To> <Credential domain="NetworkID"> <Identity>SupplierCompany</Identity> </Credential> </To> <Sender> <Credential domain="NetworkID"> <Identity>BuyerSystem</Identity> <SharedSecret>password123</SharedSecret> </Credential> <UserAgent>MyERP v2.0</UserAgent> </Sender> </Header> <Request> <OrderRequest> <OrderRequestHeader orderID="ORD-2023-001" orderDate="2023-10-01"> <Total> <Money currency="USD">1500.00</Money> </Total> <ShipTo> <Address> <Name>Офис Москва</Name> <PostalAddress> <Street>ул. Тверская, 1</Street> <City>Москва</City> <PostalCode>125009</PostalCode> <Country isoCountryCode="RU">Россия</Country> </PostalAddress> </Address> </ShipTo> </OrderRequestHeader> <OrderRequestItem> <ItemOut quantity="10"> <ItemID> <SupplierPartID>SKU-001</SupplierPartID> </ItemID> <ItemDetail> <UnitPrice> <Money currency="USD">150.00</Money> </UnitPrice> <Description>Ноутбук Dell XPS 15</Description> </ItemDetail> </ItemOut> </OrderRequestItem> </OrderRequest> </Request> </cXML> ``

В этом примере:

  • payloadIDуникальный идентификатор сообщения.
  • Header — содержит данные об отправителе, получателе и отправителе (Sender) с учётными данными.
  • OrderRequest — тело запроса, включающее заголовок заказа (номер, дата, сумма, адрес доставки) и позиции (товары, количество, цена).

Преимущества и недостатки

Преимущества

  • Открытость и стандартизация — cXML является открытым стандартом, что позволяет интегрировать системы разных вендоров без необходимости разработки индивидуальных протоколов.
  • Поддержка полного цикла закупок — от каталога до оплаты, включая изменения и отмены.
  • Безопасность — встроенная поддержка аутентификации и шифрования.
  • Масштабируемость — подходит как для малых предприятий, так и для крупных корпораций с тысячами поставщиков.
  • Широкая экосистема — поддерживается SAP Ariba, Coupa, Oracle, Microsoft Dynamics и другими ERP-системами.

Недостатки

  • Сложность — для внедрения требуется знание XML и понимание бизнес-процессов. Небольшие компании могут испытывать трудности.
  • Избыточность — для простых транзакций (например, разовая закупка канцтоваров) cXML может быть излишне громоздким.
  • Зависимость от сетей — многие реализации требуют подключения к коммерческим B2B-сетям (например, Ariba Network), что влечёт дополнительные затраты.
  • Ограниченная поддержка в России — из-за доминирования внутренних стандартов (например, ЭДО) cXML используется в основном в международных операциях.

Применение в России

В Российской Федерации cXML применяется преимущественно компаниями, работающими с зарубежными партнёрами или использующими платформу SAP Ariba. Крупные российские корпорации, такие как «Газпром», «Росатом» и «Сбербанк», внедрили SAP Ariba для автоматизации закупок, что подразумевает поддержку cXML. Однако для внутреннего электронного документооборота чаще используются форматы, основанные на российских стандартах (УПД, УКД) и протоколах (EDI, ЭДО через операторов).

Стандарт также применяется в розничной торговле и логистике для обмена данными с международными поставщиками. Например, российские дистрибьюторы электроники могут получать каталоги и размещать заказы через cXML-интерфейсы зарубежных производителей.

Альтернативы

На рынке B2B-электронной коммерции существуют и другие стандарты обмена данными:

  • EDI (Electronic Data Interchange) — более старый стандарт, основанный на ANSI X12 или EDIFACT. Требует специализированного ПО и сетей (VAN). В России EDI широко используется в рознице (например, «Магнит», X5 Group).
  • UBL (Universal Business Language) — открытый стандарт OASIS, более гибкий и современный, чем cXML. Поддерживается многими ERP-системами.
  • OAGIS (Open Applications Group Integration Specification) — стандарт для интеграции бизнес-приложений, охватывающий не только закупки, но и логистику, производство.
  • JSON-схемы — многие современные платформы (например, Shopify, WooCommerce) используют REST API с JSON, что проще для веб-разработчиков.

cXML сохраняет позиции в сегменте корпоративных закупок благодаря интеграции с SAP Ariba, но уступает более гибким и простым решениям в малом и среднем бизнесе.

Интересные факты

  • Название «cXML» расшифровывается как «Commerce XML», но иногда его ошибочно называют «cXML» как «cXML» (с маленькой «c»), что неверно — стандарт пишется с заглавной «C».
  • Первоначально cXML разрабатывался для работы с Ariba Network, но затем стал независимым стандартом.
  • В 2020 году консорциум cXML.org выпустил спецификацию для поддержки криптографических подписей на основе ECDSA, что повысило безопасность транзакций.
  • Стандарт поддерживает многоязычность: описания товаров и адреса могут быть на любом языке, включая русский.

Источники

  1. Спецификация cXML 2.0 — cXML.org.
  2. SAP Ariba — документация по интеграции cXML.
  3. OASIS — сравнительный анализ стандартов B2B (UBL, cXML, EDI).
  4. «Электронный документооборот в России: стандарты и практика» — отчёт Ассоциации ЭДО (2022).
  5. «B2B Integration: Concepts and Architecture» — книга по интеграции корпоративных систем.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →