Представьте: оптовик запрашивает прайс-лист с артикулами, остатками по складам и фотографиями в формате XLSX, а стандартная выгрузка Битрикс выдаёт лишь CSV с ID, названием и ценой. Приходится править руками — теряете часы, плодятся ошибки. С нуля писать выгрузку долго, а стандартные средства не покрывают специфику B2B: разные типы цен для оптовиков и розницы, условное форматирование, автоматическая ежедневная генерация. Настройка выгрузки товаров в прайс-листы 1С-Битрикс под ключ позволяет решить эту задачу без программирования. Экономия времени — до 20 часов в месяц, а стоимость обслуживания снижается на 30% за счёт автоматизации. За 5+ лет мы настроили экспорт для 50+ проектов — от простых CSV до сложных XLSX с макросами. Расскажу, как это делаем под ключ и какие решения реально экономят время.
Типичная ситуация: менеджер тратит каждую пятницу на ручное формирование прайса из Excel-выгрузки. Результат — устаревшие цены, неверные остатки. Автоматический экспорт на стороне Битрикс решает проблему: задаёте расписание, форматы и доступ — и клиенты получают актуальные файлы без вашего участия. Настройка занимает от двух дней, а экономия времени — до 20 часов в месяц.
Стандартные профили экспорта: что даёт коробка
Модуль 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 раз медленнее.
- Фильтрация по свойствам: только товары с остатком > 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.
Для тяжёлых каталогов (50 000+ товаров) генерация CSV занимает секунды, Excel — десятки секунд. YML — минуты. Учитывайте при выборе интервала.
| Формат | 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 мин |
Как выбрать формат прайс-листа?
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/агент).
- Организация доступа (токены, авторизация).
- Документация и консультация по обновлению.
Гарантируем стабильную работу выгрузки. Получите актуальный прайс-лист без ручного обновления. Свяжитесь с нами, чтобы обсудить ваш проект. Закажите настройку прайс-листов — и мы решим задачу под ключ.







