Автоматичний збір залишків з сайтів постачальників у 1С-Бітрікс

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

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

Часті запитання

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1440
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1013
  • 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
    751
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    872
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    791
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1153

Автоматичний збір залишків з вітрин постачальників у 1С-Бітрікс

Ситуація: постачальник не дає API, прайс-листи надсилає раз на тиждень поштою, а реальні залишки змінюються щодня. Покупець оформлює замовлення — товару немає. Ми вирішуємо цю проблему парсингом вітрини постачальника з оновленням поля CATALOG_QUANTITY у 1С-Бітрікс. Парсинг — це не завжди HTML: часто залишки лежать у JSON-змінних на сторінці (window.__PRODUCT_DATA__). Використовуємо CURL і regex — це швидше за headless-браузер і не навантажує сервер. Для захисту від блокувань застосовуємо випадкові User-Agent і ротацію проксі. За 5 років на ринку автоматизували збір залишків для каталогів від 500 до 50 000 SKU. Кожен проект проходить індивідуальне налаштування — від вибору методу парсингу до логіки обробки нульових залишків. Замовте розробку парсингу — і ми безкоштовно проаналізуємо вітрину вашого постачальника.

Як парсимо залишки з сайтів постачальників

На сайті постачальника залишок може бути представлений по-різному: числове значення (в наявності: 47 шт) — прямо парсимо число; статус наявності (в наявності, під замовлення, немає) — мапимо на 0/1/999; декілька складів — підсумовуємо або беремо найближчий склад. Іноді залишки ховаються в JS-змінних — шукаємо через regex у тілі сторінки, це швидше за headless-браузер. Якщо постачальник використовує API (рідко), підключаємося через REST.

Чому мапінг товарів — найвужче місце?

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

  • Артикул постачальника — додаємо властивість 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-блоку.

Як налаштувати парсинг залишків: покрокова інструкція

  1. Аналіз вітрини постачальника. Визначаємо спосіб парсингу (HTML, JSON-змінні, API), готуємо селектори.
  2. Розробка парсера. PHP-скрипт з підтримкою CURL, regex, опціонально Guzzle. Для захисту від блокувань використовуємо випадкові User-Agent і проксі.
  3. Налаштування мапінгу SKU. Зв'язка артикулів постачальника з ID товарів у Бітрікс. Для каталогів 10 000+ SKU використовуємо Redis.
  4. Інтеграція в Бітрікс. Агент або cron-задача, оновлення залишків через CCatalogProduct::Update(). Перевіряємо на тестовому наборі товарів.
  5. Логіка обробки нульових залишків. Автоматичні прапорці, повідомлення менеджеру. Тестуємо сценарії: товар зник, з'явився, змінилася ціна.
  6. Моніторинг і підтримка. Після запуску парсер працює стабільно; при зміні структури сайту постачальника адаптація займає не більше пари годин.

Що входить у роботу

Компонент Опис
Аналіз вітрини постачальника Визначаємо спосіб парсингу (HTML, JSON-змінні, API), готуємо селектори
Розробка парсера PHP-скрипт з підтримкою CURL, regex, опціонально Guzzle
Мапінг SKU Зв'язка артикулів постачальника з ID товарів у Бітрікс
Інтеграція в Бітрікс Агент або cron-задача, оновлення залишків через CCatalogProduct::Update()
Логіка обробки нульових залишків Автоматичні прапорці, повідомлення менеджеру
Документація та підтримка Схема мапінгу, інструкція з додавання постачальника, 2 тижні безкоштовної підтримки

Таймлайн робіт

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

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

Ми гарантуємо, що після запуску парсинг працюватиме стабільно, а при зміні структури сайту постачальника адаптація займе не більше пари годин. Економія часу на ручній обробці залишків — до 80% на місяць. Оцінимо ваш проект безкоштовно — просто напишіть нам. Отримайте консультацію прямо зараз.