Коли в каталозі 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. Всі варіанти підтримуються з коробки.
| Джерело | Протокол | Частота оновлення | Складність налаштування |
|---|---|---|---|
| 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 разів точніша за ручну працю.
Детальніше про гранулярне налаштування
Гранулярне налаштування мапінгу дозволяє ітеративно парсити навіть складні структури з динамічними колонками. Ми використовуємо оптимізацію запитів до БД для прискорення великих імпортів.Що входить в роботу з налаштування інтеграції?
- Аналіз джерел даних та поточного формату прайс-листів постачальників.
- Розробка конфігурації мапінгу колонок під кожного постачальника.
- Налаштування отримання файлів (email/FTP/HTTP) та агента для їх обробки.
- Реалізація оновлення цін та залишків через API Бітрікс з урахуванням торгових каталогів та складів.
- Створення системи логування помилок та сповіщень (Telegram, Email).
- Передача документації: опис архітектури, інструкція з додавання нового постачальника, контакти техпідтримки.
- Навчання операторів: як розпізнати збій та що робити при зміні формату.
- Підтримка інтеграції протягом місяця після запуску.
Типові помилки при імпорті та як їх уникнути
Зміна формату файлу. Постачальник не попередив — парсер впав. Логування фіксує помилки, ми отримуємо сповіщення та оперативно виправляємо мапінг. Для критичних постачальників налаштовуємо 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 разів.







