Парсинг залишків товарів з сайтів постачальників для 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Парсинг залишків товарів з сайтів постачальників для 1С-Бітрікс
Середня
~1-2 тижні
Часті питання

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

Етапи розробки

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

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Парсинг залишків товарів із сайтів постачальників для 1С-Бітрікс

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

Що саме парсимо

На сайті постачальника залишок може бути представлений по-різному:

  • Числове значення («в наявності: 47 шт») — парсимо число напряму
  • Статус наявності («в наявності» / «під замовлення» / «немає») — маппимо на 0/1/999
  • Кілька складів — підсумовуємо або беремо найближчий склад

Іноді залишки ховаються у JS-змінних на сторінці (window.__PRODUCT_DATA__ = {...}) — шукаємо через regex у тілі сторінки, це швидше headless-браузера.

Зв'язка товарів свого каталогу з позиціями постачальника

Ключовий етап. Без надійного маппінгу парсинг марний. Варіанти:

Артикул постачальника — додаємо властивість SUPPLIER_SKU в інфоблок. При парсингу шукаємо елемент з цим значенням через CIBlockElement::GetList() з фільтром за властивістю.

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

EAN/штрихкод — універсальний варіант для брендових товарів.

Для великих каталогів (10 000+ SKU) фільтрація за властивістю через ORM працює повільно. Краще побудувати зворотній маппінг supplier_sku → element_id в Redis або у кастомній таблиці та оновлювати його при змінах каталогу.

Оновлення залишків у 1С-Бітрікс

Оновлення через CCatalogProduct::Update():

CCatalogProduct::Update($elementId, [
    'QUANTITY' => $parsedQty,
    'QUANTITY_RESERVED' => 0,
]);

Якщо магазин використовує склади (b_catalog_store), оновлюємо через CCatalogStoreProduct::Update() з вказанням STORE_ID.

Важливо: при оновленні лише кількості не торкайтесь ACTIVE — інакше втратите ручні правки активності. Робіть окремий UPDATE лише потрібного поля.

Логіка обробки «немає в наявності»

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

  1. Кількість = 0 → товар залишається активним, але додається прапорець «під замовлення»
  2. Кількість = 0 більше N днів → сповіщення менеджеру, ручне рішення
  3. Товар не знайдено на сайті постачальника 3+ рази поспіль → прапорець SUPPLIER_DISCONTINUED

Прапорці реалізуємо через властивості інфоблоку або поля Highload-блоку.

Часові рамки робіт

Етап Термін
Аналіз сайту постачальника, вибір методу парсингу 2–4 години
Розробка парсера залишків 1–2 дні
Налаштування маппінгу SKU 4–8 годин
Логіка оновлення у 1С-Бітрікс + обробка нульових залишків 4–8 годин
Налаштування розкладу та моніторингу 2–4 години

Разом: 3–5 робочих днів на одного постачальника. Кожен додатковий постачальник — +1–2 дні (різна структура сайтів).