1. Сложной задаче – сложные решения
В самой задаче обмена в общем случае участвуют две стороны, обычно называемые бэкенд или бэкофис (это Ваша учётная система) и фронтенд или витрина (собственно интернет-магазин). Менее распространена, но быстро набирает популярность схема «один бэкенд - несколько фронтендов». В обеих схемах всё сводится к необходимости организации надежной двусторонней передачи изменений данных. На стороне бэкенда обычно правится информация о товаре (наименование, характеристики, описание, цены, остатки и т.д.) на стороне фронтенда – структура товарного каталога, SEO данные, динамические разделы каталога, блоки динамической перелинковки, баннеры и т.д. Отдельным пунктом стоит передача информации о заказах и их статусах. Есть ещё вопросы маркетинга и обработки заявок клиентов, но их освещение выходит за рамки данной статьи, т.к. обычно такой функционал (CRM) реализуется либо в бэкенде, либо интеграцией фронтенда с внешним CRM решением.
Технологически задача связывания двух систем в электронной коммерции достаточно сложная, поэтому уместнее даже говорить не о настройке синхронизации между ними, а об их интеграции. Выбор конкретной схемы и технологий интеграции – очень серьёзный вопрос, во многом определяющий то, как будет дальше развиваться Ваш проект. Причин тому несколько:
- обе наши системы – и бэкенд и фронтенд – сложные и развивающиеся, особенно динамично развивается фронтенд, нужно тщательно продумывать их взаимодействие;
- от правильности выбора зависит объем и сложность доработки в дальнейшем «под себя»;
- выбрав однажды решение по интеграции систем, сменить его будет очень сложно;
- объемы передаваемых данных будут постоянно увеличиваться, связка должна держать нагрузку;
Отдельного упоминания заслуживает вопрос работы с большим ассортиментом. Практика показывает, что как бы ни была удобна «админка» сайта, массовые изменения гораздо легче, быстрее и надежнее делать в бэкенде, т.е. в 1С.
2. На простом импорте и экспорте далеко не уедешь
Обмен реализовывается либо вручную, либо с небольшой автоматизацией. Формат обычно – CSV. Такая схема проста в реализации, но рассматриваться как серьёзная не может, так как обеспечивает только самую примитивную функциональность на уровне синхронизации справочников.
3. Унификация и стандарты – не всегда панацея
В основе – тот же обмен файлами между двумя системами. Используется преобразование (импорт и экспорт) в одну из разновидностей XML формата, основными элементами связывания данных служат ID справочников и объектов бэкенда и фронтенда. В 1С:Предприятие такой функционал есть уже давно. Для большинства интернет магазинов его поддержка реализована в виде плагинов.
Достоинства:
Универсальность. XML – де-факто стандарт обмена данными. Практически для любой CMS есть инструменты, в том числе библиотеки для PHP, позволяющие обрабатывать такие данные.
Изолированность. Нет прямого взаимодействия между бэкендом и фронтендом. По большому счёту они «не знают» кто и как обрабатывает данные на другой стороне, работая только с данными, завернутыми в структуру XML.
Недостатки:
Зависимость от разработчика. В применении к конфигурациям 1С:Предприятие существующие реализации обмена с использованием XML привязаны к определённым решениям фронтенда (CMS).
Сложность настройки. XML формат – сложный, в нём нужно разбираться.
Ресурсоёмкость. Разбор структуры XML, равно как и формирование файлов создаёт значительную нагрузку на процессор, особенно это критично на стороне фронтенда. Уже при небольших объемах передаваемых данных такие операции приходится ставить на выполнение в нерабочее время фронтенда.
Большие объемы передаваемых данных. Сам формат организации данных XML обладает большой избыточностью, т.к. кроме самих данных содержит большое количество служебной информации. Объем служебных данных может в несколько раз превышать объем полезной информации.
Проблемы конвертации. Так как участники обмена полностью изолированы друг от друга, нужно тщательно следить за соответствием типов данных на обеих сторонах. При изменениях – вносить их на обеих сторонах одновременно.
Проблемы синхронизации. Любая рассогласованность в идентификаторах данных (справочники, документы) автоматически приводит к появлению задвоенных элементов. Чистка данных в таких случаях – сложная ручная работа, часто невыполнимая в рабочее время, так как требует полного доступа к базе данных.
Изолированность. С каждой из сторон обмена ни в каком виде не доступна информация о новых свойствах объектов другой стороны. Внесение их в схему обмена– только вручную, причём одновременно на обеих сторонах. Это также означает, что перенести часть функционала из фронтенда в бэкенд без доработки конфигурации (например, перенести работу с SEO данными в бэкенд) будет достаточно сложно или даже невозможно.
4. Интегрированные решения – наше всё
Один из вариантов дальнейшего развития перечисленных выше схем – уменьшение изолированности участников обмена друг от друга путём встраивания в бэкенд дополнительной подсистемы. Такой принцип уже давно используется в некоторых прикладных решениях на платформе 1С. Функционал конфигурации наращивается путём «пристройки» к ней отдельной подсистемы. Основные данные дублируются внутрь подсистемы с постоянной синхронизацией в дальнейшем и уже вокруг них разворачивается новый функционал. Основная конфигурация остаётся незатронутой, а набор данных, доступных для работы, расширяется. Одновременно появляются и новые элементы интерфейса.
В случае синхронизации с интернет магазином такой принцип положен в основу комплексного решения UNIMODULE. В конфигурацию 1С:Предприятие добавляется подсистема, с одной стороны, имеющая доступ ко всем данных бэкенда, а с другой, импортирующая и хранящая в себе всю информацию из интернет магазина. Важная часть этой информации – структура SQL таблиц. В итоге в программной среде бэкенда становятся доступными все данные вместе с их структурой и API - и 1С и интернет-магазина.
Достоинства
Низкая ресурсоёмкость. Упаковка и распаковка данных в служебные форматы обмена типа XML отсутствуют. Нагрузка на процессор в бэкенде существенно ниже других схем.
Оптимальный объем передаваемых данных. Низкая избыточность, минимум служебной информации - практически чистые SQL запросы.
Доступность данных - всё в одном месте. В бэкенде полностью доступна вся информация о новых свойствах объектов другой стороны. Это трудно переоценить в ситуациях, когда требуется расширение функционала бэкенда, например, использование внешних обработок. Практически всё можно создавать и настраивать в бэкенде.
Проблемы конвертации отсутствуют. Дополнительные преобразования данных - прямое перед передачей и обратное при приёме отсутствуют. При настройке типы данных обеих сторон видны, несоответствие обнаруживается сразу.
Проблемы рассинхронизации отсутствуют. Ещё одно следствие доступности данных в одном месте. Нет испорченного телефона.
Простота эксплуатации. Формат обмена данными и связанные с этим сложности полностью отходят на второй план, так как обеспечиваются интегрируемой подсистемой. Интерфейс подсистемы выполнен по идеологии платформы 1С:Предприятие и легко осваивается.
Недостатки
Сложность решения. Даже при практически полностью открытых исходных кодах, логика подсистемы достаточно сложная. При выходе релизов с значительными изменениями (1С и/или CMS), потребуется техническая поддержка разработчика. Первоначальная настройка также должна выполняться квалифицированным специалистом от разработчика.
5. Подводим итоги
Технически всё понятно - интегрированное решение при правильной реализации является оптимальным выбором. В то же время за рамками сравнения остались вопросы, играющие важную, если не решающую роль при выборе программного решения:
- сколько будет стоить внедрение?
- сколько будет стоить сопровождение? доработка?
- что будет с 1С? Насколько сильно изменится конфигурация?
Вопросы закономерные, поскольку практика показывает, что недорогое и простое решение в процессе эксплуатации может либо сильно ограничивать возможности работы, либо требовать постоянной и недешевой доработки. Особенно тяжёлый случай - снятие с поддержки конфигурации 1С:Предприятие. Исправление ошибок в конфигурации, новый функционал могут стать для вас просто недоступными.
Безусловно, стоимость внедрения комплексного решения существенно выше стоимости других вариантов. Однако, если разработчик тщательно продумал все эти вопросы, то стоимость владения и расширения функционала такого решения - минимальны. Никаких неприятных сюрпризов. Конфигурация 1С с поддержки не снимается, обновления подсистемы выходят по мере необходимости и предоставляются в основном бесплатно, весь штатный функционал платформы 1С не затронут, а лишь расширен. Как Вы уже могли догадаться, речь идёт о нашем программном продукте “UNIMODULE”, где всё это реализовано :) Подтверждение всего вышесказанного - успешный опыт - более 600 внедрений с 2010 года.
Благодаря архитектуре нашего решения, действительно глубокой интеграции как с 1С, так и с CMS, в UNIMODULE реализованы впечатляющие функциональные возможности, часть которых вообще уникальны на рынке решений по синхронизации и обмену данными. Об этом - в нашей следующей статье.
Отличная статья, побольше бы информации на такие темы, а то сталкиваешься с интеграцией и приходится выбирать модуль "на ощупь".
Пишите вопросы, всегда рады и будем стараться обоснованно отвечать.