ЕЛЕНА РТИЩЕВА
CommerceML – стандарт обмена коммерческой информацией в формате XML
Для обмена информацией в электронной коммерции необходим общий язык, с помощью которого компании могли бы обмениваться структурированными данными между своими разнотипными компьютерами. Язык Internet первого поколения, HTML, не подходит для этой цели – он описывает форматирование информации, но не ее смысл. И вот появился XML – Extensible Markup Language (расширяемый язык разметки). Как и HTML, он содержит текст, размеченный тегами. Но теги в XML описывают уже и смысл и структуру информации, позволяя напрямую обрабатывать ее программными средствами. Например, Международный совет по прессе и телекоммуникациям недавно утвердил NewsML как основную систему разметки новостной информации, также был создан MathML для математических документов и др.
Однако для конкретного бизнес-приложения сам по себе XML еще не ответ – он лишь основа, на которой этот ответ можно построить.
В соответствии с планами, объявленными в июле 2000 года, специалистами фирм «1С» и «Extra.RU» при поддержке технических специалистов представительства Microsoft в России разработаны стандарты обмена коммерческой информацией в формате XML для торговых организаций.
Между компанией Microsoft, фирмой «1С» и ведущими отечественными Интернет-компаниями «Port.ru», «Price.Ru» и «Extra.RU», а также московским представительством компании Intel достигнуто соглашение о поддержке единого стандарта обмена коммерческой информацией в формате XML.
Соглашение о дальнейшем развитии и поддержке единого стандарта предполагает совместную работу специалистов фирм «1С», «Port.ru», «Price.Ru», «Extra.RU» и компании Microsoft над совершенствованием стандарта, а также предоставление всей необходимой информации организациям, которые в дальнейшем захотят поддерживать предлагаемый стандарт.
Соглашение имеет некоммерческий характер, ставит целью развитие интернет-технологий и технологий обмена коммерческой информацией и является открытым для всех заинтересованных организаций, готовых к конструктивному сотрудничеству.
Использование CommerceML
Сегодня рынок интернет-коммерции в нашей стране находится на этапе становления. Пока что интернет-торговлей занимаются в основном компании, созданные непосредственно для продажи услуг через Сеть, а также фирмы, работающие в сфере информационных технологий. Естественным путем, позволяющим вовлечь в Интернет-коммерцию широкий круг традиционных (off-line) торговых фирм, расширить сферу применения интернет–технологий и продемонстрировать преимущества этих технологий продавцам и покупателям, является публикация каталогов фирм на специализированных интернет-сайтах (веб-витринах). Поэтому количество веб-витрин растет, и интернет-компании заинтересованы в привлечении как можно большего числа торговых организаций. Однако этот процесс сдерживается отсутствием стандартов и готовых программно-аппаратных решений, а также большой трудоемкостью организации взаимодействия торговых организаций с веб-витринами.
Общее описание стандарта
Разработанный стандарт позволяет существенно снизить затраты на организацию информационного взаимодействия за счет унификации обмена коммерческой информацией между различными организациями: как выступающими на рынке интернет-коммерции, так и работающими в сфере традиционной (off-line) торговли.
Использование торговыми организациями программного обеспечения, поддерживающего данный стандарт, позволит им с минимальными усилиями и без привлечения программистов организовать публикацию своих предложений на любых поддерживающих этот стандарт веб-витринах, а также реализовать обмен информацией между собой без специальной доработки программ. Например, при оприходовании товаров у покупателя информация о хозяйственной операции может быть автоматически загружена из данных, полученных от продавца.
Разработчики стремились обеспечить максимальную открытость стандарта с тем, чтобы он в дальнейшем мог развиваться на основании объективных потребностей рынка и поддерживаться как можно более широким кругом производителей экономического программного обеспечения и интернет-компаний. Для этого разработчики изначально создавали стандарт независимо от особенностей собственного программного обеспечения или структур информационных баз и исходили из общих принципов организации торговой деятельности. В то же время в стандарте учтены различные особенности работы как Интернет-компаний, так и торгующих организаций. Например, решена проблема организации обмена информацией при независимой классификации товаров у каждого участника обмена.
Предлагаемый стандарт существенно отличается от иностранных аналогов, так как учитывает отечественную специфику и включает несколько универсальных решений, необходимых для российских интернет–компаний и торговых организаций. Вместе с тем, новый стандарт имеет много общего с решениями, используемыми сейчас в наиболее популярных отечественных системах интернет-торговли.
Описание схемы CommerceML
Предусматривается использование данной схемы, в частности, для обмена:
- каталогами товаров;
- коммерческими предложениями;
- документами.
Формирование коммерческих предложений по каталогу
Предложение практически совпадает с одной строкой «обычного» прайс-листа. Предлагается такой-то товар по такой-то цене, имеющийся в наличии в таком-то количестве. Например, гречневая крупа по цене 200 рублей за мешок, на складе имеется 125 мешков. Предложения группируются в Пакет предложений, в котором задается общая часть всех предложений (аналог «шапки» прайс-листа).
Для того чтобы получатели предложений могли понять, какой товар предлагается, последний должен быть описан. Описание товара и его классификация «складываются» в Каталог. Каталог может быть «внутренним», т.е. вложенным в тот же документ, что и пакет предложений, и составленным непосредственно автором пакета предложений. Он также может быть «внешним» – составленным одной из известных фирм. В этом случае в пакете предложений оговаривается, на какой каталог (классификатор) он ориентирован. Для однозначного определения товара в последнем случае достаточно ссылки (идентификатора товара во внешнем каталоге), т.е. в тот же документ, что и пакет предложений, каталог товаров можно вообще не включать. Таким образом, каталог товаров можно рассматривать как некий классификатор. Следовательно, в каталоге должен быть оговорен список Свойств (по каким критериям производится классификация). Устойчивые сочетания свойств удобно фиксировать в Наборы свойств (например, «свойства видеомагнитофона», «свойства телевизора»). Для указания, какие свойства (или наборы свойств) доступны (могут быть определены, обязательно должны быть указаны) для всего каталога, для его группы или для отдельного товара, используются Ссылки на свойства (Ссылки на наборы Свойств). Каталог (классификатор) обычно создается многоуровневым (т.е. имеющим разветвленное дерево категорий (Групп), к которым можно отнести товар). Иногда однозначная классификация может вызвать затруднения, поэтому для удобства разрешается включать товары сразу в несколько категорий. Но при этом одна из них должна быть выбрана в качестве «основной». Например, радио-будильник можно отнести как к категории «Радиоприемники», так и к категории «Будильники», но в первую очередь, радио-будильник является радиоприемником. При разработке классификаторов принято для каждой позиции указывать Аналоги (например, для лекарства это – другие лекарства аналогичного действия, для запчастей – запчасти, которые можно поставить вместо данной).
Указание, какими собственно свойствами из заданных в каталоге может обладать товар (или группа), достигается с помощью Ссылки на свойство (при этом еще можно задать обязательность заполнения данного свойства). Аналогичный тип элемента создан и для набора (Ссылка на набор свойств).
Для хранения значений свойств, в том числе и дополнительной, не предусмотренной классификатором информации, служит специальный тип элемента Значение Свойств.
В итоге, для опубликования своего прайс-листа (составления своего пакета предложений) надо сделать следующее.
1. Классифицировать свой товар
Это можно сделать:
- путем составления собственного классификатора, для чего нужно:
- составить список свойств, по которым будет производится классификация;
- объединить устойчивые сочетания свойств в наборы свойств;
- составить иерархический список категорий (групп);
- отнести каждый товар к одной или нескольким категориям;
- определить для каждого товара его аналоги.
- путем нахождения своих товаров во внешнем классификаторе.
- если некоторые товары не найдены во внешнем классификаторе, то для них (и только для них!) придется составлять внутренний классификатор.
2.Отправить пакет предложений
- Если при составлении пакета предложений оказалось достаточно внешнего классификатора, то отправленный файл будет содержать только пакет предложений.
- Если для составления пакета (всего или его части) понадобился внутренний классификатор, то в отправляемый файл придется включить внутренний классификатор.
Обмен документами
В задачу, решаемую с помощью данной схемы, не входит обмен произвольными документами. Также не входят задачи поддержки распределенной базы данных. Схема описывает документы, сопровождающие наиболее распространенные торговые (хозяйственные) операции:
- Заказ товара
- Cчет на оплату
- Отпуск товара
- Счет-фактура
- Возврат товара
- Передача товара на реализацию
- Возврат товара с реализации
- Отчет о продажах комиссионного товара
- Выплата наличных денег
- Возврат наличных денег
- Выплата безналичных денег
- Возврат безналичных денег
Причем для предприятий (фирм) – отправителя и получателя XML-документа – указанные хозяйственные операции представляются разными документами. Например «Отпуск товара» для отправителя сопровождается оформлением «расходной накладной» («накладной на отпуск товара»), а для получателя – оформлением «приходной накладной». Программа автоматизации учета может, исходя из вида хозяйственной операции и роли, которая указана для данного предприятия, «понять», является ли «собственное предприятие» (от лица которого автоматизируется учет в программе) получателем данного документа. Роли предусмотрены следующие:
- Продавец
- Покупатель
- Плательщик
- Получатель
Например, если в обрабатываемом XML-документе, описывающем «Отпуск товара» роль «собственного предприятия» обозначена как «Покупатель», то это означает, что XML-документ описывает расходную накладную поставщика, и ее следует импортировать в учетную систему как «накладную на поступление товара».
Примеры соглашений при использовании данной схемы.
Обозначения
- «0-1» – атрибут или элемент не обязателен. Может принимать только одно значение;
- «1-1» – атрибут или элемент обязателен. Может принимать только одно значение;
- «0-*» – атрибут или элемент не обязателен. Может содержать список значений;
- «1-*» – атрибут или элемент обязателен. Может содержать список значений.
По умолчанию – все атрибуты и элементы являются не обязательными и имеют тип «строка», если специально не оговорено другое.
Коммерческая Информация (CommerceInfo)
Описание: Корневой элемент XML-документа, описывающего каталог (каталоги) товаров, список (списки) предложений. Содержит один или несколько каталогов товаров, включая список возможных свойств товаров в каталоге, один или несколько пакетов предложений.
Атрибуты: Таблица №1
Наименование
|
Описание
|
Комментарий
|
Комментарий
(Comment)
|
Предназначен для передачи «сопроводительной записки» в виде произвольной текстовой информации по документу.
|
0-1
|
Содержит: Каталог (0-*), ПакетПредложений (0-*), Контрагент (0-*), Документ (0-*), Банк (0-*), Склад (0-*).
РасчетныйСчет (BankAccount)
Описание: Расчетный счет описывает банковский счет контрагента в объеме, необходимом для оформления (и передачи) документов.
Атрибуты: Таблица №2
Наименование
|
Тип
|
Описание
|
Комментарий
|
НомерСчета
(AccountNumber)
|
|
Номер счета.
|
1-1
|
Банк (Bank)
|
Idref
|
Банк, в котором открыт счет.
|
1-1
|
БанкКорреспондент
(CorrespondentBank)
|
Idref
|
Банк-корреспондент, в случае не
прямых расчетов.
|
0-1
|
Комментарий (Comment)
|
|
Произвольный сопроводительный
текст.
|
0-1
|
Содержит: ДополнительныйРеквизит (0-*).
Контакт (Contact)
Описание: Контакт предназначен для ответа на вопросы: «Где найти?» и «Кого спросить?».
Содержит список ФИО контактных лиц (например, список сотрудников отдела продаж), список телефонов, факсов, адресов электронной почты контакта, ICQ.
Атрибуты: Таблица №3
Наименование
|
Тип
|
Описание
|
Комментарий
|
Идентификатор (Id)
|
Id
|
Уникален в рамках всего документа.
|
1-1
|
Наименование
(Name)
|
|
Наименование (например: «Домашний
телефон директора»).
|
1-1
|
Комментарий
(Comment)
|
|
Произвольный сопроводительный текст
(например, как доехать на автомобиле).
|
0-1
|
Содержит: КонтактноеЛицо (0-*), Телефон (0-*), Факс (0-*), Почта (0-*), ICQ (0-*).
Пример структуры XML-схемы в формате HTML
<КоммерческаяИнформация> собирательный элемент для всего, что может быть упомянуто в процессе обмена.
– предназначен для передачи «сопроводительной записки» в виде произвольной текстовой информации по документу.
синтаксис:
|
< КоммерческаяИнформация >
|
|
[
|
Комментарий = string ]
|
|
>
|
|
|
seq
|
|
< Контрагент > ] *
|
[
|
< Склад > ] *
|
[
|
< Банк > ] *
|
[
|
< Каталог > ] *
|
[
|
< ПакетПредложений > ] *
|
[
|
< Документ > ] *
|
|
состав:
|
eltOnly
|
порядок:
|
seq
|
вышестоящие:
|
No parents found. This is probably the document element.
|
дочерние:
|
Банк , Документ , Каталог , Контрагент , ПакетПредложений , Склад
|
атрибуты:
|
Комментарий
|
модель:
|
open (по умолчанию)
|
Представленный стандарт обмена коммерческой информацией дает возможность организациям обмениваться информацией в одном формате. В стандарте учтены различные аспекты работ как интернет-компаний, так и обычных предприятий. Стандарт предлагает подробную схему обмена с описанием атрибутов и представлением её в виде кода HTML. Это соглашение является важным шагом, позволяющим расширить сферу применения интернет-технологий на российском рынке.
<ElementType name="КоммерческаяИнформация" content="eltOnly" order="seq">
<description> Собирательный элемент для всего, что может быть упомянуто в процессе обмена</description>
<AttributeType name="Комментарий" dt:type="string" required="no">
description>Предназначен для передачи «сопроводительной записки» в виде произвольной текстовой информации по документу.</description>
</AttributeType>
<attribute type="Комментарий"/>
<element type="Контрагент» minOccurs="0" maxOccurs="*"/>
<element type="Склад» minOccurs="0" maxOccurs="*"/>
<element type="Банк» minOccurs="0" maxOccurs="*"/>
<element type="Каталог" minOccurs="0" maxOccurs="*"/>
<element type="ПакетПредложений" minOccurs="0" maxOccurs="*"/>
<element type="Документ" minOccurs="0" maxOccurs="*"/>
</ElementType>