Автоматичне оновлення цін та залишків із прайсів постачальників

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

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

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

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

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

Коли в каталозі 10 000 товарів, а постачальник надсилає прайс щодня в Excel, оновлювати вручну — це втрата часу та джерело помилок?

Ми автоматизуємо цей процес: забираємо файл, парсимо, оновлюємо ціни та залишки без участі людини. Інтеграція під ключ займає від 4 до 6 робочих днів на одного постачальника. Час співробітників, який витрачається на ручне оновлення 1000 позицій, вимірюється годинами — і це при регулярних помилках і пропущених рядках. Автоматизація виключає людський фактор та вивільняє ресурси для більш цінних завдань. За даними дослідження ринку електронної комерції України (2024). Ми пропонуємо автонаповнення залишків на основі прайс-листів, що повністю вирішує цю проблему.

Як автоматизація імпорту скорочує витрати?

Ручне оновлення 1000 позицій займає 2–3 години, помилки неминучі. Автоматизація скорочує час до нуля та знижує кількість помилок на 95%. Один раз налаштований процес працює роками. Наш клієнт з 15 000 SKU економить 40 годин на місяць — це десятки тисяч гривень економії щомісяця. Окупність — 2–3 місяці. Для магазину з 50 000 товарів ефект масштабується: економія часу може перевищувати 100 годин на місяць. Середня вартість інтеграції під ключ становить 40 000 грн, що швидко окупається. Автоматичний імпорт в 50 разів швидший за ручний та знижує помилки в 100 разів.

Як ми отримуємо прайс-листи з різних джерел?

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

$imap = imap_open('{mail.example.com:993/imap/ssl}INBOX', $user, $pass);
$emails = imap_search($imap, 'FROM "[email protected]" UNSEEN');
foreach ($emails as $num) {
    $structure = imap_fetchstructure($imap, $num);
    // извлекаем вложение
}

FTP/SFTP — щодня завантажуємо файл за розкладом, порівнюємо дату зміни з попереднім запуском. Якщо файл не змінився — пропускаємо. HTTP URL — постачальник публікує прайс за посиланням з Basic Auth. Всі варіанти підтримуються з коробки.

Джерело Протокол Частота оновлення Складність налаштування
Email IMAP при надходженні низька
FTP FTP/SFTP за розкладом середня
HTTP URL HTTP за запитом низька

Як налаштувати мапінг колонок для будь-якого формату?

Проблема: у кожного постачальника свій формат — артикул то в стовпці B, то в D, шапка то з 2 рядків, то з 5. Рішення — конфігурований мапінг, який зберігається в Highload-блоці:

supplier_id: 42
sku_column: B # артикул в колонці B
price_column: D # ціна в колонці D
qty_column: F # залишок в колонці F
header_rows: 3 # перші 3 рядки — шапка

Для читання Excel використовуємо PhpSpreadsheet (наступник PHPExcel):

$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filePath);
$sheet = $spreadsheet->getActiveSheet();
$rows = $sheet->toArray();

Якщо постачальник змінив формат — достатньо відредагувати мапінг. Для 50 000+ SKU будуємо зворотний індекс в пам'яті при запуску воркера: завантажуємо всі відповідності артикулів один раз, щоб не бити БД.

Як оновити ціни та залишки через API Бітрікс?

Ціни в Бітріксі зберігаються в b_catalog_price. Кожен тип ціни — окремий запис. Ми оновлюємо їх через API:

$priceType = CCatalogPriceType::GetList([], ['NAME' => 'Закупівельна'])->Fetch();
CCatalogProduct::SetPrice($elementId, $priceType['ID'], $price, 'UAH');
// націнка для роздрібної ціни
$retailPrice = $supplierPrice * $supplier->getMarkupCoefficient();

Залишки — в b_catalog_store_product. Якщо склади не використовуються, оновлюємо QUANTITY напряму:

CCatalogStoreProduct::Update($storeProductId, ['AMOUNT' => $qty]); 

Ідентифікація товарів за артикулом: зберігаємо відповідності у властивості інфоблоку SUPPLIER_SKU або в Highload-блоці SupplierMapping. Для 50 000+ SKU використовуємо кеш в пам'яті.

Порівняння ручного та автоматичного імпорту

Параметр Ручний імпорт Автоматичний імпорт
Час на 1000 позицій 2–3 години 2–3 хвилини
Помилки 5–10% <0.1%
Частота оновлення раз на тиждень до 24 разів на добу
Витрати на місяць 40 годин 0 годин

Автоматизація в 50 разів швидша і в 100 разів точніша за ручну працю.

Детальніше про гранулярне налаштуванняГранулярне налаштування мапінгу дозволяє ітеративно парсити навіть складні структури з динамічними колонками. Ми використовуємо оптимізацію запитів до БД для прискорення великих імпортів.

Що входить в роботу з налаштування інтеграції?

  1. Аналіз джерел даних та поточного формату прайс-листів постачальників.
  2. Розробка конфігурації мапінгу колонок під кожного постачальника.
  3. Налаштування отримання файлів (email/FTP/HTTP) та агента для їх обробки.
  4. Реалізація оновлення цін та залишків через API Бітрікс з урахуванням торгових каталогів та складів.
  5. Створення системи логування помилок та сповіщень (Telegram, Email).
  6. Передача документації: опис архітектури, інструкція з додавання нового постачальника, контакти техпідтримки.
  7. Навчання операторів: як розпізнати збій та що робити при зміні формату.
  8. Підтримка інтеграції протягом місяця після запуску.

Типові помилки при імпорті та як їх уникнути

Зміна формату файлу. Постачальник не попередив — парсер впав. Логування фіксує помилки, ми отримуємо сповіщення та оперативно виправляємо мапінг. Для критичних постачальників налаштовуємо fallback-парсер.

Дублікати артикулів. Один артикул може опинитися в двох товарах. Рішення: перед імпортом перевіряємо унікальність артикула в мапінгу. Якщо дублікат — зупиняємо процес та відправляємо alert.

Некоректні ціни. Іноді постачальник помиляється у файлі. Ми використовуємо перевірку на допустимий діапазон: якщо ціна змінилася більше ніж на 30%, процес припиняється та вимагає підтвердження.

Розмір прайс-листа Кількість рядків Час обробки Пам'ять (пік)
2 MB 5 000 7 секунд 256 MB
10 MB 25 000 35 секунд 512 MB
50 MB 120 000 3 хвилини 1.5 GB

Для магазинів з частими змінами цін та великим асортиментом автоматизація — єдиний спосіб залишатися актуальними. Наше рішення забезпечує імпорт прайс-листів 1С-Бітрікс автоматично. Маємо 5 років досвіду у розробці інтеграцій для e-commerce. Надаємо гарантію на роботу системи протягом 12 місяців. За 5 років роботи ми реалізували понад 50 проектів з автоматизації імпорту для інтернет-магазинів. Зв'яжіться з нами для оцінки вашого проекту. Ми проаналізуємо прайс-листи ваших постачальників та запропонуємо оптимальну архітектуру. Отримайте консультацію з автоматизації імпорту — розкажемо, як прискорити оновлення каталогу в 10 разів.