
Описание обмена данными между 1С и интернет-магазином.
По своему роду деятельности, я часто занимаюсь внедрением новых программных продуктов для автоматизации бизнеса. При этом важным этапом работы всегда является интеграция систем между собой. И особо здесь стоит выделить одну из самых концептуальных потребностей – интеграцию учетной системы с интернет-магазином.
При этом CMS и особенности реализации интернет-магазинов могут быть самыми разными, в качестве учетной системы чаще всего выступает 1С, но и здесь конфигурации могут очень сильно отличаться друг от друга. Но есть основные принципы и определенные стандарты обмена данными, общие для всех типов программного обеспечения. О них я и хочу поговорить.
Статья может быть полезна разработчикам в качестве помощи при интеграции, IT специалистам и руководителям бизнеса для проверки качества реализованной интеграции, а также заказчикам для правильного составления задания на интеграцию интернет-магазина и 1С.
Зачем нужен обмен данными
Автоматическая интеграция между интернет-магазином и учетной системой помогает решить целый ряд вопросов:
- Избавиться от проблем, связанных с человеческим фактором.
- Снизить число возможных ошибок при обмене данных.
- Снизить загруженность сотрудников и направить их активность непосредственно на продажи и работу с клиентами.
- Обеспечить актуальность информации как для посетителей магазина, так и для продавцов компании. Особенно актуально при большом товарообороте.
Основные этапы обмена данных
Процесс обмена данными между программными системами состоит из 3 основных частей:
- Инициация обмена.
- Выгрузка данных на сайт.
- Выгрузка данных с сайта.
Если первый этап происходит один раз, т.е. обмен настроен, включен и работает, то этапы 2 и 3 повторяются регулярно.
Инициация обмена
Инициация – это важный этап, основная часть работы в рамках которого, проводится до первой выгрузки данных на сайт. Необходимо настроить базы данных под определенные стандарты, проверить информацию по существу (чтобы не выгружать ошибочные или избыточные сведения) и т.д.
Далее на последующих этапах обмен будет производиться автоматически и регулярно. Но первая выгрузка данных должна быть соответствующим образом подготовлена, и только потом обмен инициируется – производится первая выгрузка и после проверок включается постоянный обмен.
Выгрузка из 1С в интернет-магазин
Из учетной системы на сайт выгружаются следующие сведения:
- Название товарной позиции;
- Иерархия товара;
- Артикул и код товара;
- Описание ( не рекомендуется, подробнее – ниже);
- Характеристики ( цвет, размер и т.д)
- Штрих-код товара;
- Цены, акции, скидки;
- Товарные остатки.
Некоторые параметры из перечня понятны интуитивно и не требуют подробного обсуждения. Другие имеет смысл рассмотреть подробнее.
Иерархия
Иерархию заводят как отдельный справочник в 1С. Встроенную иерархию 1С использовать не рекомендуется. Дело в том, что структура каталога товаров на сайте и справочников в 1С очень часто оказывается разной. При этом именно так удобнее всего строить работу: для покупателей – один вариант структуры, для работы в 1С – другой. Соответственно, для выгрузки в магазин необходим отдельный реквизит «Группа товаров на сайте», где будет отражаться иерархия каталога в интернет-магазине.
Цены, скидки и акции
Цены для интернет-магазина рекомендуется также хранить как отдельный тип цены (справочник "Типы цен"), так как они нередко отличаются от стоимости товара в оптовых или розничных продажах. При этом отдельно нужно учитывать возможность продаж со скидками и в рамках акций.
Обычно «Акция» в карточке товара в 1С включаются при помощи флага («галочка»). Необходимо этот параметр также переносить в интернет-магазин, где акционные товары будут выделяться соответствующим образом.
Для цены со скидкой необходимо реализовать отдельный реквизит. При этом в магазин выгружаются 2 цены: без скидки и со скидкой. Это нужно для реализации распространенного решения: перечеркнутая цена без скидки и новая – со скидкой.
Товарные остатки
Основная проблема выгрузки остатков в магазин – это невозможность 100% синхронизировать данные. Вы можете выгружать остатки из 1С на сайт очень часто, но все равно, внутри учетной системы актуализация остатков будет происходить быстрее. С этим ничего невозможно сделать. Просто необходимо предусмотреть дополнительную проверку оформленного заказа с сайта на предмет наличия всех позиций.
Также следует продумать варианты решения на случай отсутствия нужного товара при заказе через сайт. В принципе, такие ситуации не бывают частыми, конечно, если вы не торгуете штучным товаром, а потому этот момент просто учитывают при организации работы.
Описания товаров и фото
Описания выгружать из 1С в большинстве случаев не имеет смысла. На сайте они должны красиво отображаться в формате HTML, в описаниях нередко бывают ссылки, таблицы, различные варианты форматирования текста. Справочники 1С не поддерживают все эти нюансы. А потому намного удобнее загружать описания сразу на сайт.
Фотографии также нередко стремятся хранить в 1С и загружать на сайт, что я считаю – большой ошибкой.
- Графические файлы сравнительно много «весят», в результате обмен данными будет значительно замедляться, при этом потребуется задействовать значительные серверные мощности.
- Отображение фото в CMS может быть некорректным, файлы «обрезаются» или «сжимаются» системой под заданные параметры, а в некоторых CMS вообще не отображаются после выгрузки без дополнительных действий контент-менеджера.
- Фото, как и описания товара, обновляются крайне редко.
По перечисленным причинам фото товаров и их описания я рекомендую загружать сразу в CMS, как и другие данные для сайта, ответственность за которые несет контент-менеджер.
При этом важно не злоупотреблять размерами фотографий. Понятно, что всем хочется показать товар как можно качественнее. Но слишком большие фото – это файлы огромных размеров. В результате значительно замедляется загрузка страницы сайта для пользователей, а пользы – никакой, так как никто (за исключением, возможно, конкурентов) не будет выгружать фото и просматривать его с большим увеличением.
А потому фотографии необходимо оптимизировать до выгрузки на сайт (даже если ваша CMS поддерживает автоматическую оптимизацию, большие файлы будут занимать лишнее место на хостинге). И при оформлении контент-менеджер обязательно должен отслеживать такие параметры, как названием файла (лучше всего осмысленное) и заполнять тег alt (отображается если не видно картинки, полезен для поисковой оптимизации).
Выгрузка из магазина в 1С
Из интернет-магазина в учетную систему обязательно выгружается один тип документов – заказ от клиента вместе со всеми необходимыми данными (ФИО, email, телефон, адрес, финансовая информация для юридических лиц и т.д.)
Здесь стоит остановиться на двух важных этапах:
- Выгрузка заказа;
- Проведение заказа.
Выгрузка заказа
В процессе выгрузки необходимо корректно из базы данных магазина в 1С передать все данные:
- ФИО и контакты (при этом важно избегать дублирования в случае повторных заказов);
- Адрес доставки или точку самовывоза.
- Данные об оплате.
- Данные о товарах и их количестве.
Оплата в интернет-магазине может быть простой (оплачивается полная сумма безналом или при получении товара) и сложной (часть суммы оплачивается подарочным купоном, баллами из программы лояльности и т.д.). Все эти сведения также должны корректно передаваться в 1С.
Очень важно, чтобы все сведения из заказа передавались в 1С без искажений. Например, товар был продан с определенной скидкой, в заказе в 1С должна отображаться цена со скидкой, даже если она окажется индивидуальной (с учетом бонусных баллов и т.д.). Нередко возникают ситуации, когда при автоматическом обмене данных в 1С используется цена из справочника цен для интернет-магазина, в результате в учетной системе цены и сумма заказа могут не совпадать с тем, что было на сайте. Этой распространенной ошибки необходимо избегать.
Проведение заказа
При проведении заказа может возникнуть описанная мною выше ситуация: в заказе присутствует уже проданный товар. Необходимо предусмотреть такую возможность и реализовать пути решения. Обычно при этом заказ проводится с остатками «в минус» либо не проводится вообще. И в любом случае о проблеме уведомляется ответственный сотрудник, который в ручном режиме решает вопрос с покупателем (договариваются о возврате средств или увеличении срока поставки, если товар можно быстро заказать).
Статусы: работа с проведенным заказом
После оформления заказа и проведения его в 1С процесс продажи переходит к вопросам проверки оплаты и осуществлению доставки (адресной или к точке самовывоза).
И здесь важно предусмотреть, каким образом покупатель будет получать уведомления о статусе заказа.
- Вариант 1. Уведомления будут рассылаться из 1С (на email, при помощи sms или телефонии)
- Вариант 2. Статус заказа отображается в интернет-магазине и уведомления отправляются с сайта.
В первом случае обмен данных не нужен, вся работа проводится в рамках обычного бизнес-процесса продажи. Во втором случае необходимо реализовать выгрузку из 1С в интернет-магазин такого параметра, как статус заказа.
Что необходимо предусмотреть при организации обмена данными
До начала интеграции учетной системы и сайта необходимо четко определить бизнес-процесс продажи. Продумайте все этапы работы с покупателями, это поможет определить, какие сведения вам нужно передавать в какую сторону.
Что важно учитывать при составлении техзадания по интеграции:
- Какие данные необходимо выгружать в каждую сторону;
- С какой периодичностью будет производиться обмен;
- Предусмотреть возможные коллизии: проблемы с остатками, возможность удвоения данных, другие сложности. Все это должно быть предусмотрено, сотрудники компании должны знать, как действовать в случае возникновения коллизий.
Технические нюансы реализации интеграции зависят от выбранной конфигурации 1С и особенностей интернет-магазина. Методы их реализации выбирают специалисты по внедрению. Но независимо ни от чего, если при обсуждении заказа и составлении технического задания будут учтены описанные в статье этапы и учтены «подводные камни», интеграция пройдет быстро, а последующий обмен данными будет работать качественно и эффективно.
Вопросы и ответы
Что делать, если у нас несколько магазинов, и мы хотим торговать из розничного магазина и на сайте одновременно?
Необходимо организовать обмен данными между всеми торговыми точками и сайтом интернет-магазина, т.е. все торговые точки и склад должны быть объединены в общую систему при помощи интеграции.
А если я торгую оптом и хочу продавать через интернет?
Если у вас нет розницы, я рекомендую использовать не интернет-магазин, а какой-либо B2B сервис. Оптовикам обычно известно, что им нужно. Они редко нуждаются в подробных описаниях, сравнении товаров и других функциях интернет-магазина. Им нужно быстро выбрать необходимый товар, убедиться в его наличии, увидеть свою цену, получить необходимые финансовые документы. В специализированных сервисах эти возможности уже реализованы, при этом нет ничего лишнего.
Если вы все же предпочитаете работать с интернет-магазином, например, по причине сочетания опта и розницы, то в его рамках нужно реализовать личный кабинет пользователя с расширенными возможностями для оптовых клиентов: история заказов, текущая скидка, взаиморасчеты, возможность автоматически получить бухгалтерские документы. Все это сделает работу удобной для покупателей и разгрузит ваших сотрудников.
Какие стандарты обмена данными вы рекомендуете?
Обмен данных может быть по API, текстовыми файлами или при помощи прямой записи в базы данных. Я рекомендую по возможности пользоваться API. Этот вариант обмена наиболее защищен от ошибок, удобен и прост при внедрении. Но если такая возможность не реализована или вам необходима повышенная скорость обмена, можно использовать и другие методы обмена. Например, если на сайте базы данных реализованы на MySQL, прямой обмен реализовать можно быстро и относительно просто.