Полная синхронизация: сайт, МойСклад, Price List Importer, retailCRM

Полная синхронизация: сайт, МойСклад, Price List Importer, retailCRM

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

retailCRM — это облачная CRM система для ведения заказов, обращений клиентов, задач, бизнес-процессов, логистики, аналитики, маркетинга, сегментации клиентов. Но не имеет полноценного складского учета и работы с каталогом. Детально про retailCRM
МойСклад  — облачный сервис для ведения склад, взаиморасчетов с поставщиками, движение денег, накладных, подключения кассовых аппаратов и сканеров штрик-кода. Фактически это аналог 1С, но с многими дополнительными плюшками. В системе есть простенькая CRM-система, но подойдет только для начинающих интернет-магазинов. Подробней о системе МойСклад
Etrade PriceList Importer — vip решение для обработки прайс-листов, цен конкурентов, автоматического ценообразования и контента. По крайней мере я его внедряю в 90% случаев, на тематике товаров любой сложности. В МойСклад есть импорт прайса, но подойдет если у Вас один поставщик, или товары не пересекаются. Большинство же магазинов работаю с множеством поставщиков с одинаковыми товара. Про PriceList Importer

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

Общая схема взаимодействия.

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

Какой получим результат
 1. Полная синхронизация номенклатуры, в т.ч. товарных предложений и при добавлении новых товаров из прайс-листов;
 2. Динамическое обновление остатков с сайтов через МойСклад, независимо от обновлений прайсов;
 3. Передача в МойСклад информации о поставщиках для каждого товара.

Простые товары и торговые предложения

Во всех перечисленных системах товары могут быть как простыми — состоять из одного товара, так и быть торговым предложениям (они же товарные предложения, модификации товаров) — схожих товаров, но отличных по определенными свойствами.  Например Samsung Galaxy S7 32Gb белый — это товар, а Samsung Galaxy S7 с выбором цвета, и размера памяти — это торговое предложение. Представление о торговом предложении в МойСклад отличается от представления в Bitrix, retailCRM и PriceList. Поэтому об этом будет много деталей.

Загружаем прайсы в МойСклад
Для начала разберемся какие бывают способы импорта в МойСклад:

  1. Загрузка через YML. Простой и удобный импорт, позволяет загружать номенклатуру с фото. Но не передает UUID — из-за чего нельзя настроить обмен с сайтом, также не передает закупочные цены, поставщиков. Не подходит.
  2. Прайс-лист Excel имеет те же недостатки.
  3. А вот загрузка остатков позволяет более тонко все настроить. Им и воспользуемся.

Для загрузки в МойСклад из PriceList нам понадобится экспорт в XLS со следующими полями:

  1. Код товара, нужно выбрать с символьным кодом {CAT_FULL};
  2. Группы;
  3. Наименование;
  4. Внешний код — именно по этому полю синхронизируется мой склад и битрикс. В некоторых других CMS это может быть другое поле;
  5. Артикул;
  6. Цена продажи;
  7. Закупочная цена;
  8. Поставщик;  
  9. Количество , переименовать в остаток.

В дополнительных настройках надо отключить “группировать категории” и “создавать автофильтр”

Экспорт из PLI
Экспорт из PLI

На поля Размер и цвет пока не обращайте внимание. В МойСклад выбираем — импорт, товары и остатки (Excel). И если сделали все как на скриншоте, то поля для импорта определяться автоматически. Единственно что надо сделать, это выбрать склад не основной, а создать виртуальный “Склад поставщика” и лучше выбрать опцию: искать по коду.

Импорт в МойСклад
Импорт в МойСклад

При импорте автоматически создается документ оприходования. Оприходование отличается от приемки, как раз тем, что не изменяет баланс взаиморасчетов — что нам и надо. При этом автоматически создаются новые товары, категории, и поставщики, а у товаров будут заполнены поля — розничная цена, цена продажи, поставщик, артикул.

Теперь при оформлении заказа или подборе номенклатуры выводится наличие по товарам поставщика, или же по собственным остаткам и поставщика:

При подборе выводится остаток поставщика
При подборе выводится остаток поставщика

На текущем этапе вы уже можете быстро добавлять новые товары, обновлять оптовые и продажные цены, а также получать данные о поставщике товара. Если все ваши поставщики предоставляют разную продукцию — все отлично.

Но обратите внимание, сейчас в поле склад поставщика загружается одно значение. Т.е. если поставщиков одного товара несколько, их количество будет суммироваться, а также будет суммироваться собственный остаток. Как вариант можно не суммировать, а брать количество поставщиков у которых товар в наличии. То есть, если есть у 4 поставщиков, то количество 4. Если поставщиков в пределах 7, можно сделать некую кодировку — за каждый разряд в строке наличие будет отвечать определенный поставщик. Например 1001101. Это значит товар есть у 1, 4,5 и 7 поставщика.

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

Наличие и цена по каждому поставщику

Для того чтоб в системе Мойсклад были данные о наличии у каждого поставщика, необходимо в PLI вывести матрицу поставщиков, или же передавать наличие по каждому поставщику через дополнительные поля. Но если добавлять через склады, то эти данные попадают и в retailCRM, если через доп. поля — нет

Наличие по складам retailCRM
Наличие по складам retailCRM

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

При данном импорте не надо каждый день удалять предыдущий импорт, и если используете именно интерфейс МойСклад для ведения заказов, данный способ более удобен.

А что насчет цены? МойСклад может хранить только одну закупочную цену. Если хотите в карточке товара в МоемСкладе видеть цену по каждому поставщику, можно загрузить цены также через дополнительные столбцы. В настройках экспорта PLI же надо просто добавить строчку “Матрица цен поставщиков” На самом деле многие поставщики не дают точного наличие у себя, а только факт наличия. Поэтому можно упростить — выгружать цену поставщика, только если товар есть в наличии у поставщика. Для этого активируете в экспорте галочку “Экспортировать из СТИПП в сводный прайс, только товары, которые есть в наличии”

В результате получаем:

Цена поставщика в карточке товара
Цена поставщика в карточке товара

Экспортируем на сайт.

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

Выгрузка из МойСклад
Выгрузка из МойСклад

Экспорт из МойСклад
Остатки по всем поставщикам ведет Price List Importer и выгружает данные в поле “общее количество”.
Если используете retailCrm то синхронизацию заказов в МойСклад надо отключить, если не используете — обязательно включаем.

А если торговые предложения?

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

Выгрузка товарных предложений из МойСклад
Выгрузка товарных предложений из МойСклад

Как видно, у товаров-артибутов внешний код состоит из двух частей — кода товара родителя и собственного кода. На стороне МойСклад исправить это нет возможности (если отключить в экспорте “выгружать модификации товаров” — они просто не выгружаются), поэтому будем решать вопрос на стороне PriceList Importer. Для этого в настройки экспорта добавляем SQL запрос:

UPDATE etrade_products_kits SET tov_guid=CONCAT(tov_guid_kit, ‘#’, tov_guid);;;

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

Создание свойств
Создание свойств

Второе. Коды всех товаров-модификаций должны быть одинаковые. Для этого в PLI дополнительно добавляем колонку “Код родительского товара-атрибута” (tov_id_kit ) и заменяем в excel колонку “код” значениями “Код родительского товара-атрибута” (специальная вставка — пропускать пустые значения). Также в настройках экспорта необходимо оставить сортировку только по категории, производителю, цене. При импорте в МойСклад, обязательно указываем колонку с артибутом.

В итоге:

Создаются товарные предложения
Создаются товарные предложения.

Выгрузка остатков в PLI

Для корректного ценообразования, PLI должен учитывать остатки на собственном склад. Это можно сделать через Склад-остатки- выбрать свой склад — печать — Excel.
К сожалению МойСклад не позволяет делать постоянную ссылку для автоматического обновления. Я поступаю иначе — генерирую остатки по складу через сайт, и PLI автоматически берет свежие остатки.

Ограничения обмена

В статье были показаны все возможности без использования программирования или API сервисов. Для большинства задач этого вполне достаточно, но перечислю, для чего недостаточно:

  • При синхронизации остатков, из системы МойСклад приходит информация о средней закупочной стоимости товара на складе. Без использования API невозможно в retailCRM автоматически передавать закупочные цены по каждому поставщику
  • В retailCRM есть функция перемещения между складами, это перемещение создается в МойСклад. Для того, чтоб учитывался баланс с поставщиком необходимо оприходование. Также, только через API
  • В retailCRM не отображаются товары в резерве.
  • Без использования API обновлять номенклатуру в Мой клад можно только вручную, загружая xls файл.

Если возникли вопросы по синхронизации или предложения  — пишите в комментариях или в контакты.

8 thoughts on “Полная синхронизация: сайт, МойСклад, Price List Importer, retailCRM

  1. Здравствуйте, требуется синхронизация 1с-битрикс с Мой Склад. Подробности (ТЗ) отправлю в ответ на ваше письмо. С уважением, Максим.

  2. Добрый день! Есть лайфхак как связать: retailCRM, МойСклад и Webasyst или это в принципе невозможно?!

    1. Здравствуйте.
      Тут абсолютно стандартная схема. Синхронизация между WebAsyst и моим складом есть, но отключите синхронизацию заказов. Товары передаются из Моего Склада в WebAsyst, а с сайта по xmlID поступают в RetailCRM.
      Также в RetailCRM поступают из Моего Склада.

  3. Здравствуйте. Мы пользуемся retailcrm и сервисом МойСклад, но еще ни разу не работали с чужими складами (работаем со своего).
    Сейчас рассматриваем такую возможность и читаем ваши статьи.
    Сейчас работаем так:
    А) С моего склада на сайт выгружаются остатки
    Б) С сайта в ретейл выгружаются заказы (с ретейла, на сайт, соответственно тоже, если заказ поступает по телефону)
    В) С ретейла в МойСклад выгружаются подтвержденные заказы с резервированием
    Задача: подключение одного (в будущем двух-трех) прайс-листов (или yml) для подтягивания актуальных остатков (на сайт и в МС и в ретейл) и автоматического формирования заказов данным поставщикам. (Поступил заказ с сайта на номенклатуру, которая есть у поставщика -> заказ подтвердили в ретейлсрм -> «что-то произошло в алгоритме, что бы не вручную фиксировать позиции, которые нужно сегодня забрать у поставщика и забивать затем документ приемки в МойСклад»

    Перечитал два раза, но так и не понял, как это можно реализовать. Ежедневно загружать «общий» сгенерированный прайс-лист с остатками в МойСклад? Но как тогда потом разобраться, у кого из поставщиков сколько товара необходимо забрать.. Да и синхронизацию остатков в своей статье вы советуете только «со своим складом» почему-то (значит есть другая схема?) Отключение синхронизации заказов retailcrm МойСклад — вопрос, зачем отключать синхронизацию заказов? Или имеется ввиду — выгрузку заказов с сайта в retail (она у нас, например, и так отключена — заказы выгружаются с ретейла на сайт)

    1. Здравствуйте.
      Вся загвоздка, из-за того что в моем складе нет понятия «склад поставщика». Можно создать якобы склад поставщика, но при перемещении с него, не будет меняться баланс с этим поставщиком. Поэтому в эти склады, или же в дополнительные поля записывается информация только для справки. Если номенклатура у поставщиков не пересекается, то можно ежедневно в товаре обновлять закупочную цену и поставщика ( при заказе поставщику, эти данные будут проставляться автоматически). Можно эти данные обновлять через xls, или по API. Так что Вы в принципе правильно поняли, загружаете сводный прайс, и потом в МоемСкладе на заказе выбираете — создать заказ поставщику, если товара нет на остатках.
      Но если хотите, чтоб сразу в RetailCRM отображалась информация в разрезе складов, то в МоемСкладе необходимо выгружать остатки и цены только в разрезе складов.

  4. Здравствуйте, решил синхронизировать PROM.ua, retailCRM, МойСклад
    Товары были выгружены с помощью https://github.com/retailcrm/moyskad-catalog
    Заказы были выгружены с помощью https://github.com/retailcrm/tiu-client
    Все отлично выгрузилось, но нет связи товара в выгруженном заказе retailCRM со справочником товары в retailcrm в чем может быть проблема?

    1. Причина однозначно в том, что в выгрузке yml для retail одни id товара (yml_ID), а в заказе (external_id) передаются другие.
      Для всех товаров или только для товаров с модификациями такая проблема?
      Проверьте синхронизацию пром и мой склад, какой используют ключ для передачи катала в пром

      1. Проблема со всеми товарами. Пром и мой склад получилось синхронизировать нормально, айди совпадают.

Comments are closed.