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







