Парсинг даних з Яндекс.Маркет для 1С-Бітрікс

Ціни та залишки на маркетплейсі змінюються частіше, ніж ви встигаєте виправляти їх вручну, і каталог на сайті розходиться з реальністю. Ми автоматизуємо парсинг Яндекс.Маркет і налаштовуємо регулярний обмін товарними даними з вашим каталогом на 1С-Бітрікс — під ключ. Зіставлення товарів відбувається автоматично, а ви бачите актуальні ціни, залишки та характеристики.

Парсинг даних з Яндекс.Маркет для 1С-Бітрікс

Парсери та автонаповненняСередній~1-2 тижні
Часті запитання

Парсинг Яндекс.Маркет для каталогу на 1С-Битрикс: що ламається

Майданчик оновив ціни вночі, а вітрина на 1С-Битрикс залишилася на попередніх значеннях: покупець оформлює замовлення за ціною, якої вже немає, а менеджер бачить залишок, що не збігається з реальним складом.

Це не разовий збій, а штатна поведінка каталогу без регулярного обміну — парсинг Яндекс.Маркет перетворюється на набір ручних операцій, тоді як він має бути частиною потоку даних.

Причина зазвичай одна: зіставлення позицій відбувається за назвою. Назву постачальник править під час кожної рекламної кампанії, і зв'язок рветься — з'являються дублі, а частина товарів оновлюється не тим пропозиціям. Надійний ключ — артикул і штрихкод, а назва та опис залишаються редагованими полями.

Оновлення цін і залишків, запущене пакетом без журналу, під час обриву зв'язку залишає половину каталогу зі старими значеннями: наступне вивантаження стартує спочатку й не наздоганяє відсталі позиції.

Звідси ж і ручні правки карток — менеджер править заголовок або властивість, а черговий імпорт його перезаписує, бо редакторський контент не відокремлений від даних постачальника.

Замикає ланцюжок розбіжність каталогу й майданчика за наявністю: товари без наявності залишаються активними й ідуть у відмову, а кеш і пошуковий індекс тримають старе значення ще добу. Далі розбираємо, як це закривається на боці Битрикса.

Що дає регулярний обмін товарними даними з маркетплейсом

Разовий збір каталогу вирішує завдання на день, після чого ціни й залишки знову розходяться з реальністю. Регулярний обмін із Яндекс.Маркет будується як регламентне завдання: система сама забирає зміни за товарами й віддає оновлені ціни та наявність, залишаючи людям лише винятки.

Перший вимірний ефект — частка позицій з актуальною ціною. Під час ручної правки прайсу раз на тиждень вона просідає до кінця інтервалу й завжди нерівномірно: частина карток відривається, а відновити картину без звірки неможливо.

Обмін за розкладом і лише за зміненими артикулами тримає частку актуальних цін біля верхньої межі, а розбіжність за конкретним товаром живе хвилини, а не дні.

Другий ефект — час на підготовку вивантаження. Звірка прайсів, чищення дублів, ручна правка описів і характеристик згортаються в разове зіставлення полів: регламент оновлення виконує ту саму роботу за журналом обміну, а не за пам'яттю менеджера. Звільнені години йдуть на картки та ціни, які справді потребують рішення людини.

Третій — клас відмов через неправильну наявність. Продаж позиції, якої немає на складі, обертається скасуванням замовлення й просіданням рейтингу продавця.

Обмін залишків за розкладом, буферний запас за ходовими артикулами й окремий статус «немає в наявності» замість нульової ціни прибирають цю категорію помилок майже повністю.

Обмін не підміняє облікову систему — він тримає маркетплейс у згоді з нею. Нижче розбираємо, як влаштований парсинг даних і на яких місцях він ламається найчастіше.

Формати парсингу: разовий імпорт, розклад, потік оновлень

Формат збору визначає не зручність роботи, а допустиму розбіжність між каталогом на сайті та карткою на майданчику.

Дані Яндекс.Маркет можна забирати разово, за розкладом, потоком або через офіційний інтерфейс майданчика — у кожного варіанта свій клас відмов і свої обмеження збору. Нижче — порівняння, за яким зазвичай і обирають схему.

Варіант Коли підходить Обмеження
Разова вивантаження Первинне наповнення каталогу, перенесення асортименту, звірка після зміни постачальника До наступного обміну ціни й залишки розходяться з майданчиком; годиться як стартова база, не як постійне джерело
Збір за розкладом Регулярне оновлення цін, залишків, характеристик і описів Жорсткі ліміти на кількість звернень за інтервал: у разі перевищення зростають затримки, а мережева адреса потрапляє під тимчасове блокування
Потокове оновлення Позиції з частою зміною ціни й залишку, де важлива реакція протягом дня Тримає постійний канал і чергу; потрібна дедуплікація подій, інакше повторні записи перевантажують обмін з 1С
Офіційний інтерфейс майданчика Коли потрібна стабільність і підтверджене джерело даних Потребує партнерського доступу, віддає не всі поля картки, терміни надання доступу не залежать від нас

Обирають не «найшвидший» варіант, а комбінацію: разове вивантаження задає базу, розклад підтримує актуальність, потік закриває критичні позиції.

Далі вирішує зіставлення — товари зв'язуємо за артикулом і штрихкодом, щоб оновлення не плодило дублі в інфоблоках, а розбіжності потрапляли у звіт. Опишіть завдання — повернемося з оцінкою та планом під ваш випадок.

Порядок впровадження: від аудиту каталогу до передачі регламентів

Обмін із маркетплейсом — не разове вивантаження, а регламентна операція: ціни, залишки й картки змінюються щодня, а замовлення потрібно забирати до спливу строку підтвердження.

Тому роботу будуємо так, щоб кожен етап давав перевірюваний результат, а не «налаштували й сподіваємося».

  1. Аудит каталогу. Звіряємо номенклатуру, торгові пропозиції та властивості, шукаємо дублі, позиції без зовнішніх ідентифікаторів і товари, які в каталозі є, а в постачальника вже зняті з продажу. На виході — карта відповідності та список місць, які обмін зламає.
  2. Схема обміну. Визначаємо напрямки потоків, періодичність запуску, поведінку в разі розбіжності та ліміти на обсяг змін за один прогін. Схема фіксується письмово до першого рядка коду.
  3. Правила зіставлення. Основний ключ — зовнішній ідентифікатор, резервний — артикул і нормалізована назва. Окремо описуємо створення нових позицій, архівацію зниклих і пріоритет ціни: з картки чи з прайсу.
  4. Налаштування обміну. Реалізуємо обмін у 1С-Битрикс, ставимо завдання за розкладом, підключаємо журнал: кожен прогін пише звіт із кількістю створених, оновлених і відхилених позицій.
  5. Перевірка на копії. Прогоняємо на копії бойового каталогу та копії бази: повторний запуск, обрив зв'язку, порожня відповідь, частково некоректні дані. Відкат має бути штатною операцією ще до релізу.
  6. Передача регламентів. Інструкції для контент-менеджера: як читати звіт, що робити при масових відхиленнях, як додати категорію. Плюс журнал запусків і оповіщення, щоб збій виявлявся раніше за скаргу покупця.

Що залишається у вас: схеми обміну, правила зіставлення, регламенти

Після запуску парсингу Яндекс.Маркет у вас залишаються не разові вивантаження, а робочий контур обміну: схеми, правила й документи, за якими команда продовжує роботу без автора рішення.

Це головний критерій приймання — систему можна передати іншому інженеру або віддати на супровід, не відновлюючи логіку з листування.

  • Схема обміну даними — карта маршруту «джерело → проміжна таблиця → картка в каталозі» з переліком полів на кожному кроці: що оновлюється завжди, що лише додається, що ніколи не перезаписується.
  • Правила зіставлення товарів — пріоритет ключів (артикул виробника, потім штрихкод, потім зв'язка «бренд + модель»), окремі гілки для наборів, комплектів і позицій з варіантами.
  • Журнал помилок — фіксує тип збою, час, вихідний запис і ознаку «повторювати автоматично або в ручний розбір»; розбіжності не проковтуються мовчки, а потрапляють у чергу зі зрозумілим статусом.
  • Регламент оновлення — періодичність запусків для цін і залишків, порядок дій у разі недоступності джерела, правила відкату до попереднього знімка каталогу.
  • Інструкція для редактора — які властивості правляться руками, а які буде перезаписано під час наступної синхронізації, щоб ручні правки не зникали безслідно.
  • Налаштовані перевірки — контроль дублів, порожніх цін і аномальних стрибків: зміни проходять валідацію й не потрапляють у бойовий каталог до підтвердження.
  • Доступи й точка передачі — де розміщені конфігурації, хто відповідає за розклад, як передати контур новому підряднику.

Кожен пункт узгоджений із вашою командою на етапі запуску та перевірений на реальному вивантаженні — вам не потрібно здогадуватися, як поводитиметься обмін за наступної зміни видачі.

Кейс: прибрали ручне оновлення цін і залишків у каталозі

Каталог на 12 000 позицій тримався на ручній роботі: редактори раз на тиждень зводили вивантаження з трьох джерел, звіряли порядково за артикулом і заливали оновлення на сайт.

Розбіжності за ціною й наявністю сягали 20% — покупець бачив актуальні дані лише в момент оформлення замовлення, а відмови «немає в наявності» били по конверсії та репутації магазину.

На підготовку прайсу йшло 12–14 годин на тиждень, тобто кілька повних робочих днів редактора на місяць на механічну звірку замість роботи з описами та категоріями.

Помилка в одному рядку спливала не відразу: її помічали вже за зверненням клієнта, коли позиція тижнями висіла з неправильним залишком.

Ми зібрали потік даних від Яндекс Маркет до каталогу: зіставлення за артикулом і штрихкодом, правила пріоритету, чергу обміну з журналом за кожною позицією та відкат до останнього коректного стану в разі збою джерела.

Спірні рядки не перетирають ціни мовчки, а складаються в окремий список із причиною — редактор розбирає лише їх.

Оновлення відбувається раз на 30 хвилин за ціною й залишком і раз на добу за категоріями та характеристиками.

Частка розбіжностей упала нижче 1%, ручного втручання потребують близько 3% позицій, а навантаження на редактора скоротилося до 40 хвилин на день: він перевіряє винятки, а не зводить таблиці. Відмови за наявністю скоротилися в рази, і картки перестали розходитися з реальним складом.

Що робити, якщо каталог уже синхронізується стороннім модулем?

Сторонній модуль обміну — зазвичай чорна скринька зі своєю таблицею зіставлень і своїм розкладом. Зносити його відразу не можна: разом із ним зникне накопичена прив'язка товарів до розділів, а частина полів заповнена лише ним.

Перший крок — не заміна, а зняття телеметрії: скільки записів зачіпає цикл, які властивості картки він перезаписує, за яким ключем зіставляє товар.

Далі — перевірка коректності даних. Беремо зріз каталогу й звіряємо артикули, ціни, залишки, торгові пропозиції та прив'язку до розділів із джерелом.

Окремо дивимося дублі й позиції, яких у джерелі вже немає: модуль позначає їх знятими з продажу, а не видаляє, і цю поведінку потрібно зберегти — інакше отримаємо биті посилання в розділах.

Конфлікт оновлень знімається розмежуванням володіння полями: ціна й залишок залишаються за обміном, опис, фото та вкладки — за редактором. Без цього дві схеми затирають правки одна одної, і помітно це лише за історією змін конкретної картки, тобто вже після втрати контенту.

Міграція без простою відбувається паралельно: новий канал піднімається поряд зі старим і пише в ті самі сутності через окремі службові властивості. Кілька повних циклів порівнюємо за кількістю змінених позицій і розбіжностями, і перемикаємося лише після збігу.

Відкат змін при цьому залишається оборотним: поки триває звірка, тримаємо дамп каталогу й таблиць зіставлення, тому повернення до попередньої схеми — одна операція, а не відновлення зі старої резервної копії.

Технічні сумніви: зіставлення, дублі, ліміти звернень

Розбір технічних сумнівів починається з того, що стійкість обміну закладається у схему на етапі проєктування, а не правиться вручну після кожного вивантаження.

Ключ зіставлення, правила нормалізації назв і розклад запитів описуються до першого запуску — тому повторний обмін оновлює каталог, а не створює його заново.

Нижче — питання, які найчастіше спливають на старті: як зв'язуються позиції, що відбувається з дублями карток і як обмін поводиться при обмеженнях за частотою звернень.

Як зіставляються артикули, якщо в постачальника немає нашого коду?

Позиція зв'язується за набором ознак: виробник і артикул, штрихкод, нормалізована назва та ключові характеристики. Прямий збіг за артикулом має пріоритет, інші ознаки працюють як підтвердження.

Спірні збіги не потрапляють у каталог автоматично — вони складаються в окремий список для ручного підтвердження, щоб помилкова зв'язка не розійшлася за цінами й залишками.

Що буде з дублями карток при регулярному обміні?

Дедуплікація відбувається за тим самим ключем: повторне вивантаження оновлює наявну картку, а не створює другу. Якщо товар надходить із кількох джерел, торгові пропозиції зливаються в одну картку зі збереженням історії змін.

Позиції, що втратили актуальність у постачальника, позначаються як зняті з продажу, а не видаляються — це зберігає прив'язку до замовлень.

Чи не впремось ми в ліміти звернень до джерела?

Обмін відбувається за розкладом із паузами між запитами й кешуванням незмінених розділів. У разі відповіді про обмеження обмін призупиняється й продовжується з тієї ж позиції, а повторні спроби йдуть із наростаючою затримкою.

Журнал фіксує кожну операцію, тому збій на середині вивантаження не призводить до частково оновленого каталогу.

Обговоримо завдання: що підготувати до розмови і що ви отримаєте

Щоб розмова про парсинг Яндекс.Маркету була предметною, а не «загалом», до неї достатньо підготувати кілька вступних даних про каталог. Чим точніше вони описані, тим менше припущень в оцінці термінів і тим конкретнішим виходить план робіт. Нижче — те, що реально впливає на склад робіт.

  • Джерело та приймач. Розділ або перелік категорій Маркету, звідки беремо картки, і куди вони лягають у 1С-Битрикс: торгові пропозиції, властивості, розділи каталогу.
  • Правила зіставлення. За яким полем зв'язуємо товар із уже наявною позицією — артикул, штрихкод, назва з моделлю; що робимо, коли два джерела дають різні значення.
  • Склад картки. Які поля потрібні: ціна, характеристики, галерея, опис, залишки; що оновлюється часто, а що достатньо завантажити один раз.
  • Регламент оновлення. Запуск вручну, за розкладом або за фактом зміни; що відбувається з товаром, який зник із видачі.
  • Доступи й обмеження. Чи є офіційний програмний доступ до даних або працюємо через вивантаження, які ліміти за частотою звернень, хто з боку замовника підтверджує правила.
  • Відповідальний за спірні картки. Хто розбирає межові випадки й за яким каналом узгоджуємо правки в правилах.

Опишіть завдання у вільній формі та додайте те, що вже є, — повернемося з оцінкою та планом робіт: етапами, перевіркою на тестовому наборі карток і варіантом відкату, якщо правила зіставлення доведеться переглядати.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1060
  • Розробка віджета онлайн-запису для медичного центру
    Розробка віджета онлайн-запису для медичного центру
    837
  • Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    928
  • Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    865
  • Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1223