Уявіть: оптовик запитує прайс-лист з артикулами, залишками по складах і фотографіями у форматі XLSX, а стандартне вивантаження Бітрікс видає лише CSV з ID, назвою та ціною. Доводиться правити руками — втрачаєте години, плодяться помилки. З нуля писати вивантаження довго, а стандартні засоби не покривають специфіку B2B: різні типи цін для оптовиків і роздрібу, умовне форматування, автоматична щоденна генерація. Налаштування вивантаження товарів у прайс-листи 1С-Бітрікс під ключ дозволяє вирішити це завдання без програмування. Економія часу — до 20 годин на місяць, а вартість обслуговування знижується на 30% за рахунок автоматизації. Наприклад, типовий проект коштує від 5000 грн і окупається за 2 місяці. Автоматизація заощаджує до 20 000 грн на місяць на зарплаті менеджера. За 5+ років ми налаштували експорт для 50+ проектів — від простих CSV до складних XLSX з макросами. Ми спеціалізуємося на налаштуванні прайс-листів Бітрікс та експорті каталогу Бітрікс для різних форматів. Ви можете отримати CSV прайс-лист Бітрікс або XLSX Бітрікс з усіма даними. Розкажу, як це робимо під ключ і які рішення реально економлять час.
Типова ситуація: менеджер витрачає щоп'ятниці на ручне формування прайсу з Excel-вивантаження. Результат — застарілі ціни, невірні залишки. Автоматичний експорт на стороні Бітрікс вирішує проблему: задаєте розклад, формати та доступ — і клієнти отримують актуальні файли без вашої участі. Налаштування займає від двох днів, а економія часу — до 20 годин на місяць. Економія коштів: до 20 000 грн/міс.
Які стандартні профілі експорту надає Бітрікс?
Модуль catalog з коробки пропонує кілька профілів: Магазин → Налаштування → Експорт каталогу. Кожен профіль — PHP-файл у /bitrix/modules/catalog/load/.
- CSV (
cat_o_csv.php) — вивантаження з налаштуванням роздільника, полів, кодування. Підходить для Excel, Google Таблиць, 1С. - Яндекс.Маркет (YML) (
yandex_run.php) — XML у форматі YML. Формально для Яндекс.Маркету, але універсальний товарний фід. - CommerceML — XML для обміну з 1С, важкий формат, не для прайс-листів. CommerceML на Wikipedia (Wikipedia).
Налаштування профілю: вибираєте інфоблок, тип ціни, властивості, фільтр за розділами. Результат — файл за URL або на диску.
Чому стандартного CSV недостатньо?
Стандартний CSV дає базовий набір: ID, назва, ціна, розділ. Для реального прайсу потрібні артикул, бренд, залишки по складах, посилання на фото. Кожне поле — окрема доробка. Критично для B2B: різні групи клієнтів бачать різні ціни. Один профіль = один тип ціни. Для трьох груп — три профілі. Кодування вибираємо під систему клієнта: Windows-1251 для 1С, UTF-8 для інших.
Залишки по складах стандартний експорт не вивантажує — потрібен кастомний обробник з викликом CCatalogStoreProduct::GetList(). Це збільшує обсяг даних, але без цього прайс не відображає реальну наявність.
Як ми налаштовуємо кастомний експорт під ваші завдання
Для нестандартних вимог створюємо PHP-файл у /bitrix/php_interface/include/catalog_export/ з двома функціями: налаштування профілю та експорт. При рефакторингу стандартного обробника ми оптимізуємо бізнес-логіку вибірки даних. Типові доробки:
- Excel-формат (XLSX). Стандартний експорт не генерує XLSX. Підключаємо PhpSpreadsheet через Composer. Формуємо файл з форматуванням: шапка з логотипом, заморожений рядок, автоширина колонок. XLSX краще CSV для звітності, але генерується в 5 разів повільніше. CSV генерується в 5–10 разів швидше за XLSX.
- Фільтрація за властивостями: тільки товари із залишком > 0, певного бренду, зі знижкою.
- Кілька типів цін в одному файлі — колонки «Роздрібна», «Оптова від 10 шт.», «Дилерська». Кожна підтягується зі свого типу ціни.
- Торгові пропозиції в рядках: якщо товар має SKU (розмір, колір), кожна пропозиція — окремий рядок із зазначенням варіанту.
Приклад із практики: нещодавно налаштували вивантаження для оптового дистриб'ютора з 15 000 товарів, п'ятьма типами цін і вимогою XLSX з умовним форматуванням (зелена заливка для товарів у наявності, червона — під замовлення). Вирішили через кастомний обробник на базі PhpSpreadsheet. Генерація одного прайсу — близько 30 секунд при cron-інтервалі 30 хвилин.
Приклад сигнатури кастомного обробника
function CustomExportProfile(array $arProfile, array $arParams): bool { // ваш код експорту } Автоматична генерація по cron: покрокова інструкція
- У профілі експорту увімкніть «Файл експорту» — вкажіть шлях, наприклад
/upload/pricelist/price_opt.csv. - Додайте cron-завдання:
*/30 * * * * php /var/www/bitrix/modules/catalog/load/cat_o_csv.php PROFILE_ID— оновлення кожні 30 хвилин. - Альтернатива — агент Бітрікс:
CCatalog::PreGenerateXML(PROFILE_ID). Працює черезcron_events.php. - Перевірте файл за URL та налаштуйте доступ.
Для важких каталогів (50 000+ товарів) генерація CSV займає секунди, Excel — десятки секунд. YML — хвилини. Кастомний обробник може бути в 2 рази швидшим за стандартний для складних форматів. Для великих каталогів YML кращий за CSV, оскільки містить більше даних.
| Формат | 1000 товарів | 10 000 товарів | 50 000 товарів |
|---|---|---|---|
| CSV | < 1 сек | 2–5 сек | 10–20 сек |
| XLSX | 2–5 сек | 15–30 сек | 1–3 хв |
| YML | 1–3 сек | 10–30 сек | 1–5 хв |
Чи можна отримати прайс-лист у форматі Excel?
Так, через кастомний обробник на базі PhpSpreadsheet. Формат XLSX підтримує форматування, макроси та захист аркушів. Але врахуйте: XLSX генерується повільніше за CSV, тому для частих оновлень рекомендуємо CSV.
Вибір формату прайс-листа
CSV — швидкий і легкий, підходить для Excel і 1С. XLSX — з форматуванням, але повільніше. YML — для маркетплейсів. Якщо потрібна сумісність з 1С, вибирайте CSV з кодуванням Windows-1251.
Організація доступу до прайс-листу
Файл лежить у /upload/pricelist/ — публічна директорія. Варіанти обмеження:
- Пряме посилання — для партнерів вручну.
- Авторизація через
.htaccess(Basic Auth) або PHP-скрипт з перевіркою прав користувача Бітрікс. - Токен в URL —
/upload/pricelist/price_opt.csv?token=abc123. PHP-обгортка перевіряє токен, прив'язаний до контрагента.
Типові помилки при налаштуванні експорту
- Неправильне кодування: клієнт відкриває CSV в Excel і бачить кракозябри. Рішення — явно вказувати кодування Windows-1251 для 1С та UTF-8 для сучасних систем.
- Розбіжність залишків: якщо не налаштувати вивантаження залишків, у прайсі буде 0, хоча на складі товар є. Обов'язково виводити актуальні залишки через
CCatalogStoreProduct::GetList(). - Забувають про торгові пропозиції: якщо товар має SKU, їх потрібно експортувати окремими рядками або об'єднувати в один рядок з варіантами.
Що входить у налаштування під ключ
Ми виконуємо проект за 2–5 днів залежно від складності. Входить:
- Аналіз вимог (типи цін, формати, доступ).
- Створення профілів експорту (CSV/YML) або кастомного обробника (XLSX).
- Налаштування автоматичної генерації (cron/агент).
- Організація доступу (токени, авторизація).
- Документація та консультація щодо оновлення.
Гарантуємо стабільну роботу вивантаження. Отримайте актуальний прайс-лист без ручного оновлення. Зв'яжіться з нами, щоб обговорити ваш проект. Замовте налаштування прайс-листів — і ми вирішимо завдання під ключ.







