Настройка выгрузки товаров в прайс-листы 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-обёртка проверяет токен, отдаёт файл. Токен привязан к контрагенту.







