Інтеграція 1С-Бітрікс з Яндекс.Маркет
Каталог на сайті — це одна структура даних. Яндекс.Маркет очікує інше: власні категорії, обов'язкові атрибути для кожної категорії, фіди в форматі YML з конкретними тегами. Без правильного налаштування товари не пройдуть модерацію, а ті, що пройшли — показуватимуть неправильні ціни або порожні характеристики. Інтеграція 1С-Бітрікс з Яндекс.Маркет — це зіставлення двох різних моделей даних і підтримання синхронізації.
Архітектура інтеграції
Яндекс.Маркет взаємодіє з магазином через два канали:
- YML-фід (Yandex Market Language) — XML-файл з товарами, який Маркет періодично завантажує за URL. Основний канал для каталогу.
-
Partner API (
https://api.partner.market.yandex.ru/) — REST API для управління замовленнями, цінами, залишками, статусами.
У 1С-Бітрікс за генерацію фіду відповідає модуль catalog.export з профілем експорту «Яндекс.Маркет (YML)». За роботу з API — або модуль із Marketplace (RetailCRM, Kooplex, «МоєДіло»), або спеціальний обробник.
Генерація YML-фіду: глибока настройка
Стандартний профіль експорту створюється в Магазин → Налаштування → Експорт каталогу → Яндекс.Маркет. Базові параметри:
- Тип торгівлі: DBS (Delivery by Seller) — доставка продавцем, FBS (Fulfillment by Seller) — відвантаження зі свого складу через логістику Маркета, FBY (Fulfillment by Yandex) — товар лежить на складі Яндекса.
- Інфоблок каталогу: прив'язка до конкретного інфоблоку товарів.
- Властивості для експорту: зіставлення полів інфоблоку з тегами YML.
Обов'язкові теги для кожного <offer>:
| Тег YML | Поле в Бітрікс | Примітка |
|---|---|---|
<name> |
NAME елемента |
До 150 символів |
<price> |
Ціна каталогу | У рублях, без знижок |
<currencyId> |
Валюта | RUR / USD |
<categoryId> |
Розділ інфоблоку | Зіставляється з категоріями Маркета |
<picture> |
DETAIL_PICTURE або властивість |
Мінімум 300×300 px, до 10 фото |
<vendor> |
Властивість «Бренд» | Обов'язково для більшості категорій |
<barcode> |
Властивість «Штрихкод» | EAN-13. Без нього — обмеження розміщення |
<description> |
DETAIL_TEXT |
До 3000 символів, обмежені HTML-теги |
Критичний момент — <param>. Яндекс.Маркет вимагає характеристик товару у вигляді <param name="Розмір">42</param>. У Бітрікс характеристики — це властивості інфоблоку. Стандартний профіль експорту експортує тільки ті властивості, які явно позначені в налаштуваннях експорту. Якщо властивість множественна (кілька значень), кожне значення генерує окремий <param>.
Проблема з торговими пропозиціями (SKU). Якщо товар має торгові пропозиції (розмір, колір), кожна пропозиція — окремий <offer> у фіді. Зв'язок встановлюється через <group_id> (об'єднує пропозиції одного товару). Стандартний експорт Бітрікс не завжди правильно формує group_id — може знадобитися доопрацювання обробника експорту в /bitrix/php_interface/include/catalog_export/.
Зіставлення категорій
Яндекс.Маркет використовує власне дерево категорій. Розділ «Електроніка → Смартфони» у вашому каталозі — це конкретний categoryId у дереві Маркета. Зіставлення встановлюється двома способами:
- Через модуль інтеграції — завантажується дерево категорій Маркета, і для кожного розділу інфоблоку вибирається відповідність.
-
Через
market_categoryв YML — тег<market_category>Електроніка/Смартфони</market_category>всередині<offer>. Яндекс намагається автоматично зіставити.
Перший способ надійніший. Неправильне зіставлення = товар потрапить у чужу категорію з іншими обов'язковими атрибутами і не пройде модерацію.
Управління замовленнями через Partner API
Коли покупець замовляє товар на Яндекс.Маркет, замовлення потрібно прийняти і обробити. Схема:
- Маркет відправляє POST на ваш endpoint (callback URL) з даними замовлення.
- Обробник Бітрікс створює замовлення в модулі
saleчерезBitrix\Sale\Order::create(). - При зміні статусу замовлення в Бітрікс — відправляється PUT-запит в Partner API для оновлення статусу на Маркеті.
Статуси Маркета: PROCESSING → DELIVERY → DELIVERED / CANCELLED. Зіставлення зі статусами Бітрікс (N, P, F, C) налаштовується в модулі інтеграції.
Оновлення залишків. Маркет очікує актуальні залишки. Два підходи:
-
Через фід — тег
<count>в<offer>. Фід оновлюється по cron кожні 30–60 хвилин. -
Через API — метод
PUT /campaigns/{campaignId}/offers/stocks. Оновлює залишки в реальному часі. Використовується для товарів з великим обігом.
Часті помилки при інтеграції
Фід не проходить валідацію. Яндекс перевіряє XSD-схему. Незакриті теги, спецсимволи (&, <, >) в описі без CDATA, кирилиця в URL картинок — все це причини відхилення.
Ціни не збігаються. Якщо на сайті діють знижки, а фід експортує ціну до знижки — Маркет може заблокувати магазин за розбіжність цін. Рішення: в профілі експорту вибрати тип ціни, відповідний ціні на сайті, або формувати <oldprice> для перекреслена ціни.
Дублі товарів. При переіндексації каталогу змінюються ID елементів інфоблоку. Маркет вважає товари з новими ID новими офертами, а старі — видаленими. Використовуйте <shop-sku> на основі артикулу (властивість ARTICLE), а не ID елемента.
Терміни інтеграції за масштабом
| Масштаб каталогу | Обсяг робіт | Термін |
|---|---|---|
| До 500 товарів, без SKU | Настройка фіду + базове зіставлення | 3–5 днів |
| 500–5000, з торговими пропозиціями | Фід + доопрацювання експорту + API залишків | 1–1.5 тижня |
| 5000+, FBS/FBY, мультискладовість | Повна інтеграція: фід + API замовлень + залишки + статуси | 1.5–2 тижня |







