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

Коли в каталозі 10 000 товарів, а постачальник надсилає прайс щодня в Excel, оновлювати вручну — це втрата часу та джерело помилок? Ми автоматизуємо цей процес: забираємо файл, парсимо, оновлюємо ціни та залишки без участі людини. Інтеграція під ключ займає від 4 до 6 робочих днів на одного поста
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Автоматичне оновлення цін та залишків із прайсів постачальників
Середній
~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

Коли в каталозі 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 разів.