• +7 (495) 648-57-90
  • +7 (8442) 95-99-99

1С-Битрикс и МойСклад: расширение интеграции

― Ты кто такой?
― Сторож-МойСклад.
― А где бабуля-1С?
― Я за нее.

Что такое МойСклад?

Мы уже писали об особенностях интеграции с различными системами в статьях “ Интеграция Битрикса с лысым чертом ”, “ 1С-Битрикс и обмен контрагентами: как не сдохнуть по пути ” и многих других. Чаще всего наши статьи посвящены обмену данными между Интернет-магазином и системами учета из клана 1С. Сегодня же поговорим об интеграции с облачной системой учета МойСклад .

Эта система — хороший выбор для молодого бизнеса, который уже созрел для современной системы «учета всего», но на 1С пока что смотрит с опаской. В МойСклад есть все важные функции для организации торговли в малом бизнесе: учет товаров, работа с закупками, контрагентами, деньгами. Ранее мы коротко описывали наш опыт интеграции с МойСклад . С тех пор МойСклад стал еще лучше и создал нам стабильный поток заявок на интеграцию с сайтом.

Возможности и ограничения интеграции «из коробки»

МойСклад  - облачная система учета. Она ориентирована на российский рынок, и поддерживает множество системам (помимо 1С-Битрикс: Управление сайтом): Magento, PrestaShop, Tiu.ru, UMI.CMS, ВКонтакте и Яндекс.Маркет. Используется универсальный формат выгрузки CommerceML, как и 1С. За универсальность пришлось пожертвовать функциями — выгружаются далеко не все данные. Рассмотрим на примере обмена данными с сайтом на Битриксе.

Настройка интеграции МойСклад и Битрикс

«Из коробки» МойСклад загружает заказы с сайта, а на сайт выгружает товары в инфоблок с обязательными полями (название, цена). Для этого необходимо настроить обмен в административном интерфейсе Битрикса: Магазин > Настройки магазина > Интеграция с 1С.

Настройка обмена с МойСклад на стороне сайта

Настройка обмена с МойСклад на стороне сайта

Со стороны МойСклад также нужно настроить синхронизацию с интернет-магазином.

Настройка обмена с сайтом на стороне МойСклад

Настройка обмена с сайтом на стороне МойСклад

Дополнительные свойства товаров

Для выгрузки дополнительной информации о товарах на сайт (название бренда, страна изготовитель, название модели и т.п.) используются дополнительные поля .

Настройка дополнительного поля товара в МойСклад

Настройка дополнительного поля товара в МойСклад

Товар в МойСклад с дополнительным полем

Товар в МойСклад с дополнительным полем

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

Выгруженный в Битрикс товар с дополнительным полем

Выгруженный в Битрикс товар с дополнительным полем

Товары с SKU

Битриксовые SKU в МойСклад называются модификациями . Без дополнительных настроек на сайт попадают только обязательные поля: название, артикул, описание, типы цен, цены, остатки на складе и др.

Товар с модификациями цвета в МойСклад Товар с SKU в Битриксе

Товар с SKU в Битриксе

Автоматическое создание товаров в МойСклад

Если в заказе оказался товар, которого нет в МойСклад, то такой товар автоматически будет создан в системе. У созданного товара будут заполнены только обязательные поля (название и цена), даже если в Битриксе все поля и свойства заданы.

Автоматически созданный товар из заказа в МойСклад

Автоматически созданный товар из заказа в МойСклад

Выгрузка выбранной службы доставки и полей заказов

Название компании, тип плательщика и прочие свойства заказа в МойСклад сохранятся в связанную сущность: контрагента. А доставка будет представлена как товар.

Заказ на сайте

Заказ на сайте

Этот же заказ в МойСклад

Этот же заказ в МойСклад

Этот же заказ в МойСклад (продолжение)

Этот же заказ в МойСклад (продолжение)

Если нужно в МойСклад получить какие-либо другие свойства заказов, то нужно их заранее создать в системе. Сопоставление свойств из Битрикса и МойСклад происходит по названию.

Настройка свойства заказа в МойСклад  

Настройка свойства заказа в МойСклад

Настройка свойства заказа в Битриксе

Настройка свойства заказа в Битриксе

Статусы заказов

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

Заказ со статусом в Битриксе

Заказ со статусом в Битриксе

Заказ со статусом в МойСклад

Заказ со статусом в МойСклад

Расширение обмена Битрикса с МойСклад

Для расширения возможностей обмена у МойСклад имеется собственное API . С его помощью решаются задачи, для которых стандартного обмена недостаточно.

Нужно помнить про следующие ограничения в использовании:

  • не более 100 запросов за 5 секунд;

  • не более 5 одновременных запросов от пользователя;

  • не более 20 одновременных запросов от аккаунта;

  • не более 500 одновременных запросов с одного ip-адреса;

  • не более 100 элементов в ответе (если  записей больше, используется постраничность);

  • не более 10 Мб данных в запросе.

Примеры решаемых задач

Выгрузка архивированных товаров

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

За 20 часов мы разработали механизм загрузки таких товаров через JSON API. Можно было и быстрее, но подумали о масштабировании задачи. Сейчас таких товаров несколько десятков — а в скором будущем может быть несколько сотен или тысяч. Затягивать все товары разом на сайт вредно для оперативной памяти, поэтому сделали скрипт с пошаговым режимом, который забирает из МойСклад за один раз 50 товаров. Сделали настройку в панели управления сайтом, все как полагается.

Расширенный обмен данными о пользователе

Сколько бы данных о себе не указал на сайте пользователь, в МойСклад попадает только минимальный набор: имя, почта и т.п. Юридический адрес, ИНН, телефон, фактический адрес или данные о банковском счете, даже если они указаны в заказе, будут проигнорированы системой учета.

Для полноценной синхронизации пользователей через JSON API нами был разработан механизм, который связывает пользователей на сайте и пользователей в МойСклад и данных в заказе, так как данные обновляются исходя из последнего заказа. Синхронизация происходит после каждой выгрузки заказов с сайта, что обеспечивает актуальность данных на стороне МойСклад.

Синхронизация статусов заказа и обнуление резервов товаров при количественном учете

Если на стороне сайта ведется количественный учет, то товары после оплаты резервируются до тех пор, пока не будут отгружены. Но со стороны МойСклад информации об отгрузках и статусах заказов не поступает. Для решения задачи нами разработан механизм, который на основе сумм отгрузки и оплаты в МойСклад выставляет отгрузки, оплаты и статусы заказов на сайте. Чтобы сайт не тормозил у пользователей, вся логика вынесена в фоновую задачу сервера.

Каждые полчаса сайт проверяет, не пора ли обновлять заказы. Если пора, то “маленькими шагами” по 25 заказов за 10 секунд происходит обмен. Хотелось бы больше, но таковы ограничения облачных систем — мы ограничены длиной запроса в API.

Выводы

  1. В МойСклад можно загружать дополнительные поля заказа с сайта, но носят они исключительно информативный характер и завязать на них логику не получиться. Любая манипуляция с данными на стороне МойСклад совершается только с помощью API.

  2. Из МойСклад на сайт выгружаются не все поля и свойства товара.

  3. Данные о заказе в МойСклад разбиваются на две сущности: Заказы и Данные пользователей.

  4. В МойСклад услуга доставки приходит в виде товара.

  5. В МойСклад выгружаются статусы из заказов. Если МойСклад видит неизвестный для него статус заказа, он добавляет его в систему.

  6. Невозможна частичная выгрузка ассортимента. При необходимости исключить какие-либо разделы из выгрузки реализация проводится на стороне сайта.

Оцените статью:
Заявка на обновление, поддержку и сопровождение сайта 24x7

Вы можете войти, используя аккаунт одной из социальных сетей

Иван
+7 (905) 000 00 00
info@intervolga.ru
www.site.ru
Хочу подключить услугу "поддержка 24x7"