E-commerce
August 30, 2023

Сложности интеграции со СБИС: кейс разработки интернет-магазина

В очередном проекте ключевым требованием заказчика стало исключение необходимости для администратора магазина управлять сайтом сразу в нескольких местах. В последнее время это правило очень актуально в электронной коммерции.

С появлением различных маркетплейсов, агрегаторов и прочих аналогичных сервисов владельцы бизнеса стали понимать, что у них не хватает ресурсов на информационную поддержку одновременно всех площадок. В ответ на запрос компаний на рынке стали появляться различные решения, позволяющие контролировать товары интернет-магазина в режиме одного окна, например, одновременно управлять товарами и на сайте, и на всех маркетплейсах. Одно из таких решений — система учета СБИС. Похожая ситуация наблюдается и в других нишах. Так, для гостиничного бизнеса создана платформа TravelLine, для застройщиков и девелоперов — Profitbase.

Нашему клиенту — федеральной сети магазинов «Царские Раки» — потребовалось централизованно управлять всем каталогом продукции. Причем не только ценами и остатками, как это обычно бывает, но и полным описанием товаров, изображениями, всеми маркетинговыми инструментами (разделами «Акции», «Скидки», «Новинки», метками «Хит продаж» и прочим).

Решения

Итак, на начало разработки интернет-магазина у нас были следующие слагаемые:

1. Система управления контентом «1С-Битрикс» в редакции «Бизнес» (1С-БУС).

2. Решение «Аспро: Максимум».

3. Система учета СБИС.

4. Система лояльности UDS.

5. CRM-система «Битрикс24».

6. Система сквозной аналитики Roistat.

7. Собственное мобильное приложение клиента для Android и iOS.

В ходе работы над проектом их предстояло встроить в цельную, синхронизированную систему. Далее мы подробно расскажем об основных моментах, на которые хотелось бы обратить особое внимание

СБИС

С нее мы начали потому, что это сердце всей композиции и то самое единое окно управления для заказчика.

СБИС позиционируется как экосистема для бизнеса.

У системы СБИС есть несколько способов «подружиться» с сайтом на «1С-Битрикс: Управление сайтом»:

  • прямая интеграция с «Битрикс»;
  • интеграция через стандарты CommerceML;
  • обмен с помощью API.

Изучив все доступные варианты, выяснили:

1. Прямая интеграция с сайтом имеет следующие недостатки: выгружается все, что есть в каталоге, в том виде, как оно есть, и с той архитектурой, как есть. Чем-то похоже на интеграцию с «1С: Управление торговлей». Но в отличие от нее, СБИС не поддерживает сторонние изменения. На наш запрос в поддержку СБИС на тему «можно ли что-то в обмене подправить, дописать», получили ответ, что сделать могут что-либо с программой могут только сами сотрудники СБИС. Это первый минус. Теперь о втором. Что предусмотрена только выгрузка сразу всего, что есть и как есть — это полбеды, тут можно, конечно, все грамотно настроить внутри СБИС и актуализировать. Главной причина отказа от данного способа для нас стала невозможность управлять остатками отдельно по магазинам. СБИС выгружает остатки по магазинам (складам), затем суммирует их и вписывает результат в поле общего остатка. А это неприемлемо. Нам необходимо, чтобы в карточке товара на сайте была информация с остатками по магазинам, и пользователь мог видеть где товар есть, а где — нет.

2. CommerceML сразу отмели, ибо подключение на сайте происходит все в том же разделе «Интеграция с "1С: Предприятие"», и все минусы и ограничения первого способа актуальны и здесь.

3. Работа с API СБИС перспективна и дает очень большой простор для действий. Именно поэтому мы выбрали этот вариант.

Мы работали с API не с чистого листа, а использовали готовое решение от СБИС: «Выгрузить каталог в формате Яндекс.Маркета с помощью API». Формат YML нам понятен и наиболее подходит, плюс не нужно изобретать велосипед. Конечно же, не обошлось без приключений. Приведем лишь самые интересные из них.

Остатки на складах

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

Наличие товара отображается для каждого офлайн-магазина в отдельности.

Поэтому нам пришлось дорабатывать выгрузку и создавать модернизированный файл YML. Причина — все те же остатки по складам. В формате YML вообще нет остатков: там есть только наличие товара и доступность к заказу available="true". Поэтому мы добавили в наш стандартный файл дополнительно «внешний код склада — остаток на складе». У нас три склада, итого к каждой записи мы получили по три дополнительных значения. Предварительно также создали склады на сайте и проставили в них внешний код СБИС. Таким образом, решение оказалось отличным способом управлять остатками по каждому складу в отдельности.

Единицы измерения

Выгрузка количества происходит в системе СБИС, из-за чего получаются «кг» вместо «килограмм», «шт» вместо «штук». Поэтому пришлось к уже имеющейся информации добавить единицы измерения, и на сайте перед импортом модифицировать значения для импорта на сайт под управление «1С-БУС».

Картинки

Все инструкции по работе с изображениями прописаны и, на первый взгляд, никаких проблем не должно быть. Да и формат файла «Яндекс.Маркет» предусматривает картинки.

В карточку товара автоматически загружается оптимизированное изображение из отдельной папки.

Но на момент создания нами сайта специалисты СБИС, как выяснилось, не знали, что, оказывается, выполнив все по их инструкции, мы никак не можем получить изображения. Они пообещали доработать систему, но нам ждать несколько месяцев было невозможно, и мы добавили внутренний архив на сайте с изображениями, представив имена файлов в формате {внешний код товара}.jpg. Из этого архива картинки при выгрузке каталога автоматически подтягиваются в карточку товара с таким же внешним кодом.

Описания товара

Тут совсем беда. СБИС использует какой-то свой синтаксис и разметку, поэтому в выгрузку попало множество непонятных тэгов. Так что стало понятно, что придется добавить в процесс импорта настройку обработки для удаления ненужных символов.

Автоматизация

Решив все промежуточные задачи, мы написали программу на языке JSON, отправляющую периодический запрос (периодичность задали через cron раз в час) к БД СБИС и получающую ответ в виде нужного нам модернизированного файла в формате YML. Теперь у нас был обновляемый файл в нужном нам формате, и оставалось придумать, как его обрабатывать.

Настройка обработки каталога

Обработку полученного от СБИС файла мы без раздумий доверили лучшему, на наш взгляд, приложению: «Импорт из XML/YML» от команды Esolutions. Мы уже много раз работали с их решениями. Их приложение мы применяли для обработки при импорте из XLS, XML и вот теперь — YML.

В модуле «Импорт из XML/YML» предусмотрена статистика, по которой можно отслеживать все изменения в каталоге.

Что мы смогли реализовать с помощью данного способа:

  • разбор файла и распределение информации из него в нужные места нашего каталога на сайте;
  • модификацию значений, полученных от СБИС, и преобразование их под требования 1С-Битрикс (вырезание из кода описания спецсимволов, замена «кг» на «килограммы», преобразование имен картинок в путь до картинки на сервере и тому подобное).

Это стандартные действия, но вот дальше началась магия.

Наличие

У нас выгружаются остатки отдельно по складам, а в карточке товара на странице списка товаров выводится общая метка «В наличии». Поэтому нам пришлось снова суммировать остатки по всем складам и ставить «В наличии», если значение больше заданного числа и наоборот.

Потребовалась также настройка, благодаря которой добавляются только те позиции, у которых стоит специальная отметка — пользовательское поле СБИС «Выгружать на сайт».

Цены

В СБИС нет такого понятия как старая и новая цена. В системе есть только одно поле для ввода цены, и менять его нельзя. Ведь магазин работает и офлайн, по этим ценам кассир пробивает товар. Но на нашем сайте есть скидки, и было бы неплохо показать цену с учетом скидки, например, в 20%. Плюс «Битрикс» имеет очень сильный и гибкий функционал работы с товарами в корзине, включающий применением специальных вычислений на сумму заказа, вес, количество и так далее, а также применение спеццен.

Для акционных товаров на сайте отображается и новая, и старая цена, несмотря на то, что в СБИС фигурирует только одна.

Поэтому мы добавили в СБИС внутреннее системное поле «Старая цена» и доработали обработку, установив, что если у товара есть значение в этом поле, то именно оно вносится в стоимость. Так мы получили возможность применить нужные акции и скидки к тем товарам, которые нас интересовали. При этом полученное автоматически новое значение цены соответствовало реальной цене в каталоге СБИС.

Специальные метки

Заказчик хотел на сайте иметь специальный раздел «Акции» и в него помещать любые товары. Триггером служит слово «Акция» в начале имени товара — так администратор магазина понимает какой товар акционный в СБИС. Мы находили имена товаров с «Акция» в начале и привязывали такие товары и к реальной категории в каталоге, и одновременно к категории «Акции». При этом использовали каноническую ссылку с основным разделом (реальным).

В особом разделе «Акции» размещаются имеющие специальную отметку товары из обычных разделов каталога.

Чтобы довести все это до нужного формата также применяли обработку имени для удаления слова «Акция» из названия.

Потребовалось также ввести специальный маркер для товара «Новинка». Не вопрос: смотрим на дату создания товара и, если она меньше 30 дней от текущей даты, значит, товар новый. Как только условие перестает выполняться — метка автоматически снимается.

В блоке лучших предложений на главной странице товары можно фильтровать по присвоенным им меткам «Новинка», «Акция».

Плюсом еще было сделано много мелких правок и доработок, на которых не стоит акцентировать внимание. Главный вывод такой — имея структурированный файл, внутри которого есть все, что нам нужно, и имея инструмент для его обработки, можно придумать сколько угодно таких хитрых обработок, и на выходе получить именно то, что нужно. Благо, решение Esolutions дает безграничные возможности.

Обработка заказов

Обработку заказов было принято отдать CRM «Битрикс24». Вместе с CMS «1C-БУС» она образует удачную связку внутри одной системы. Такое решение позволяет обрабатывать заказы внутри удобного функционала «Битрикс24», а не разбираться в дизайне 98-го года внутри админ панели БУС.

Система начисления кешбэка и интеграция личного кабинета пользователя с бонусной системой UDS

На момент создания ТЗ по разработке сайта в маркеплейсе «Битрикс» было приложение для БУС от UDS, но на момент непосредственной сборки приложение оказалось удалено. А студия, которая его разработала, сообщила для нас неприятную новость, что они более не поддерживают этот продукт. В настоящий момент ожидаем создания приложения от UDS для реализации этой задачи. По завершении работ на сайте можно будет видеть свой процент скидки и остаток баллов, а товары, купленные в магазин, будут увеличивать кешбэк внутри системы UDS.

Модуль SEO

Позволяет использовать метки для каждой категории, расширяющие число посадочных страниц, через работу с характеристиками умного фильтра внутри каталога товаров. Каталог СБИС имеет два уровня категорий, например, «Икра» — «Красная». Но для решения задач SEO нам нужны более глубокие уровни, например, раздел «Икра горбуши».

Посадочная страница созданная из фильтра с помощью «Модуля SEO» внешне ничем не отличается от страницы обычного раздела каталога.

Чтобы не создавать лишние категории, мы приняли решение использовать функционал создания специальных меток. Для начала получаем ссылку на товары, отобранные по ряду условий умного фильтра. В нашем случае в категории «Икра красная» отбираем товары, соответствующие фильтру по типу: «Вид рыбы: Горбуша». Полученную страницу переделываем в посадочную страницу — наделяем ее уникальными заголовками, метатэгами и описанием. Далее внедряем ее в мегаменю, как фейковую категорию. Так мы можем создать абсолютно любое число страниц. При этом URL-адреса этих страниц, по сути являющиеся адресами страниц фильтра, добавляются в список разрешенных для индексации адресов.

Индексация посадочных страниц, созданных из фильтра, разрешается отдельно.

В дополнительные работы также вошла настройка:

  • автоматизированной системы, изменяющей у всех загружаемых администратором сайта картинок формат на webp для ускорения работы сайта.
  • расчета стоимости доставки в зависимости от удаленности адреса покупателя от склада в километрах;
  • интеграции со службой доставки СДЭК;
  • интеграции с модулями оплаты «СберБанка»;
  • интеграции с мобильными приложениями клиента для обмена данными.

За 9 месяцев с начала разработки мы создали современно выглядящий сайт интернет-магазина, который фактически не нуждается в повседневном администрировании. Для внесения изменений в каталог используется только СБИС, для работы с заказами — CRM «Битрикс24».

Главная страница https://rakisam.ru/

Благодаря настроенным нами алгоритмам сайт выполняет свои функции по взаимодействию компании с клиентами в автоматическом режиме.

Заключение

Сайт rakisam.ru уже полноценно работает, но мы не намерены останавливаться на достигнутом и в ближайшем будущем расширим его функциональность. В планы входит:

1. Более точный количественный учет в СБИС. Для этого необходимо, чтобы в СБИС попадала информация о заказах.

2. Разработка собственного решения по программе лояльности, если UDS не вернет приложение. Бонусные баллы — это основа маркетинга в современном e-commerce, и без них нельзя.

3. Интеграция каталога с «ВКонтакте».

4. Выгрузка в «Яндекс.Маркет» оптимизированных, обработанных сайтом позиций.

5. Выгрузка каталога в специальный фид для расширения сниппетов в поисковой выдаче и для нужд директолога по товарной рекламе.

6. Внедрение сервиса сквозной аналитики Roistat.

Все это поможет интернет-магазину «Царские Раки» становиться удобнее как для пользователей, так и для владельца, и благодаря этому увеличивать свою эффективность как инструмента для получения прибыли.