В этой статье расскажем, как настраивать регулярный обмен цен и остатков по данным поставщика.
Первичную настройку робота, который обрабатывает письма, ссылки на YML и Excel-файлы, выполняет сотрудник SelSup. При обработке файла робот извлекает штрихкод или артикул и использует его для сопоставления данных поставщика с товарами в SelSup. После обработки робот может извлечь остатки и/или цены. Для извлечения остатков необходимо указать склад в SelSup, на котором будут обновляться остатки, и включить отправку остатков на маркетплейсы.
Наш сотрудник добавит необходимых роботов, после чего вы самостоятельно сможете редактировать обработку.

Необходимо заполнить следующие параметры:
Тип
CRON запуска
Выражение CRON с расписанием запуска. Максимальная частота обработки — не чаще одного раза в 30 минут на всех тарифах, кроме выделенного сервера. На выделенном сервере можно поставить любую периодичность обработки.
Списать остатки
Если ваш поставщик не передаёт нулевые остатки, вы можете включить обнуление остатков для товаров, которые не были найдены в новом файле.
Порог 50% считается по количеству артикулов, которые должны стать нулевыми, а не по тому, насколько снизился остаток у конкретного товара.
Например, если раньше остатки были у 100 артикулов, а после обработки файла 50 из них должны быть обнулены, SelSup не выполнит такое обнуление. Это помогает избежать ошибок, если поставщик прислал неполный файл или часть товаров не сопоставилась.
Фильтрация по названию
Этот фильтр помогает отбирать только нужные письма или листы файла при обработке. При этом будут обрабатываться только письма с заголовком, содержащим данный текст.
Склад
Вы можете указать склад, на котором будут обновляться остатки после обработки файла.
Если вы используете несколько регулярных обменов, то лучше для каждого создать отдельный склад и указать одинаковые настройки связей каждого склада с маркетплейсом. Это необходимо для объединения остатков при обновлении их на маркетплейсе.
Обновлять остатки на маркетплейсе
Включенный переключатель позволяет отправлять остатки товаров сразу на маркетплейсы после обработки файла. Если не включить — остатки будут обновляться только в SelSup, без отправки сразу на маркетплейсы.
Если в файле поставщика в столбце с остатком указано значение ">100", то при обработке файла SelSup уберёт символ ">" и отправит остаток на маркетплейс 100.
Отправлять цены на маркетплейсы
Включенный переключатель позволяет отправлять цены на маркетплейсы после обработки файла.
Для объединения у товара берем поле
Позволяет определить поле, которое используется для связи данных из файла с карточками товаров в SelSup.
Проверяется полное совпадение указанного поля с извлеченным из файла значением с точностью до символа
Если ничего не указано, по умолчанию используется Любой артикул товара
Возможные значения:
В модуле Дропшипинг → Регулярный обмен теперь можно указывать поставщика.
Что это даёт:
если указан поставщик, сопоставление идёт только по его артикулу;
колонка со штрих-кодом исчезает (матчинг по штрих-кодам с поставщиками невозможен);
можно использовать артикул поставщика вместо штрих-кода.
Также появилась галочка «Импортировать для групповых карточек».
Она позволяет подтягивать остатки и цены сразу по групповым карточкам — это упрощает работу и делает выгрузки значительно компактнее.

Для настройки обработки файлов с почтового ящика необходимо указать следующие данные:
Вверх
URL: imap.yandex.ru
Порт: 993
Логин: test
(если ваш почтовый ящик test@yandex.ru)
Пароль: указывается пароль специальный для получения писем, НЕ от почтового ящика,
Для настройки и получения пароля перейдите по ссылке:
https://mail.yandex.ru/#setup/client
Включите использование IMAP в настройках.

Пароль получается по ссылке:
https://id.yandex.ru/security/app-passwords


Вверх
Пример настроек для почты:

URL: imap.mail.ru
Порт: 993
Логин: для второстепенных доменов @inbox.ru и пр - указывается полностью почтовый ящик с @, для mail.ru указывается просто логин до @
Пароль: специальный пароль приложений, НЕ пароль от почтового ящика
Заходим в настройки в почте:

Настройки Безопасность и Пароли для внешних приложений.


На последнем шаге скопируйте пароль внешних приложений.
ВверхURL: imap.gmail.com
Порт: 993
Логин: test
(если ваш почтовый ящик test@gmail.com)
Пароль: от почтового ящика
Перейдите в настройки почтового ящика и выберите пункт Все настройки.

Перейдите на вкладку Пересылка и POP/IMAP, включите IMAP и сохраните изменения.


В поле URL указывается ссылка на файл, если ваш сайт требует авторизации, то необходимо указать логин и пароль Basic Auth
Пример формата YML:
Общие правила указания тегов в YML: вы можете указать в данном поле теги, которые вложены в offer. Указать можно не более 2 тегов, например outlets/count — в этом случае значение будет взято из текста внутри тега count, вложенного в outlets, который будет находиться в offer.
Например, в случае такого YML будет взято значение count в качестве остатка, если указать значение в поле "Название колонки с остатком":
<offer>
....
<outlets><count>5</count></outlets>
</offer>
Если укажите в поле просто "count", значение будет взято из тега <count>, вложенного в <offer>
<offer>
....
<count>5</count>
</offer>
Если тег содержится в другом внутри тега offer, например:
<offer>
....
<count><quantity>5</quantity></count>
</offer>
Шаблон для извлечения значения будет выглядеть следующим образом:
count/quantity
Если необходимо указать условие на атрибуты, например выбирать определенный параметр из тега <param name="name">value</param>, то в условие указывается следующая конструкция:
param[@name = "name"]
Если необходимо просто наличие какого-то атрибута, то указывается конструкция:
param[@name]
Название колонки с артикулом — поле из которого будет браться артикул товара. По умолчанию используется offer/@id, если не указано. Можно указать например "vendorCode", "article" по схеме описанной выше.
Название колонки с штрих-кодом — поле из которого будет браться штрих-код. По умолчанию значение берется из тегов <barcode>, что равнозначно указанию в поле значения "barcode", их может быть несколько. Можно ничего не указывать в поле.
Название колонки с остатком — поле из которого будет браться остаток. По умолчанию тег <count> внутри offer, если ничего не указывать, что равнозначно указанию в поле значения "count".
<offer id="123">
....
<count>5</count>
....
</offer>
Можно указать "outlet", для использования схемы передачи остатка МегаМаркет, когда внутри тега offer передается тег outlets с остатками по складам
Вверх<offer id="123">
....
<outlets>
<outlet id="34" instock="5"/>
</outlets>
....
</offer>
В SelSup также доступен импорт остатков через агрегатор API Core с использованием JSON API.
Для настройки такого обмена:
Перейдите в раздел Закупки → Дропшиппинг.
Откройте вкладку Регулярные обмены и нажмите Добавить обмен.
Выберите тип обмена JSON API.
Укажите:
организацию;
название обмена;
JSON-конфигурацию API.
Выберите склад, на котором должны обновляться остатки.
Включите необходимые переключатели (обновление остатков, отправка на маркетплейсы — при необходимости).
Нажмите Сохранить и дождитесь выполнения выгрузки.

После завершения обработки в обмене отобразится статус «Успешная выгрузка».
Чтобы проверить результат:
перейдите в раздел Склад → Остатки на складе;
выберите указанный при настройке склад;
убедитесь, что по товарам обновились остатки.
Таким образом, остатки из API Core автоматически загружаются в SelSup и могут использоваться для дальнейшей синхронизации с маркетплейсами.