Мы разрабатываем сайты-каталоги на 1С-Битрикс без корзины — когда товары демонстрируют, но не продают в онлайне. Типичные кейсы: промышленное оборудование, стройматериалы, автозапчасти, недвижимость. Цена зависит от объёма, региона или курса — публиковать фиксированную бессмысленно. Или товар штучный: один экскаватор, один объект — корзина тут абсурд.
С точки зрения Битрикса это принципиально другая архитектура. Не «интернет-магазин минус корзина», а отдельный класс проекта со своими решениями на каждом уровне — от лицензии до структуры инфоблоков.
Лицензия: «Старт» vs «Стандарт»
Первый вопрос, который влияет на бюджет. Редакция «Старт» не включает модули sale и catalog. Это значит: нет торговых предложений (SKU), нет типов цен, нет корзины, нет заказов. Для каталога без корзины — ровно то, что нужно. Редакция «Стандарт» включает catalog, но позволяет его использовать выборочно: включить свойства торгового каталога для инфоблока, но не подключать sale. Это даёт торговые предложения и множественные цены без корзины.
Экономия на лицензии: редакция «Старт» стоит от 5 400 руб., «Стандарт» — от 35 000 руб. При каталоге до 5 000 позиций выбор «Старта» сэкономит до 50% бюджета на лицензию.
Выбор зависит от сценария:
| Сценарий | Рекомендуемая редакция | Почему |
|---|---|---|
| Каталог до 5К позиций, одна цена или без цен | Старт | Модуль catalog не нужен, экономия на лицензии |
| Каталог с вариациями (цвет, размер) без покупки | Стандарт | Нужны торговые предложения из catalog |
| B2B с несколькими типами цен (розница, опт, дилер) | Стандарт | Типы цен — функция модуля catalog |
| Каталог с перспективой добавления корзины через год | Стандарт | Переход со «Старта» на «Стандарт» — миграция данных |
На «Старте» каталог строится целиком на модуле iblock. Товар — элемент инфоблока, категория — раздел. Свойства инфоблока — характеристики товара. Всё. Никаких торговых обёрток.
Структура инфоблоков без SKU
Каталог без торговых предложений
Один инфоблок — один каталог. Нет связки «товар → SKU» через PROPERTY_CML2_LINK. Нет таблицы b_catalog_product. Нет b_catalog_price.
Типовая структура для каталога промышленного оборудования: Инфоблок «Каталог оборудования» (тип catalog, API-код equipment):
- Разделы — категории (Насосы → Центробежные → Горизонтальные)
- Элементы — товарные позиции
- Свойства:
-
MANUFACTURER(справочник, привязка к Highload-блоку) — производитель -
ARTICLE(строка, индексируемое) — артикул -
POWER(число) — мощность, кВт -
WEIGHT(число) — масса, кг -
MATERIAL(список) — материал корпуса -
DOCS(файл, множественное) — PDF-документация -
GALLERY(файл, множественное) — фотографии -
PRICE_ON_REQUEST(чекбокс) — цена по запросу -
IN_STOCK(список: «В наличии», «Под заказ», «Снят с производства»)
Справочники — в Highload-блоках. Производители, единицы измерения, страны. HLBlock для справочника «Производители» — таблица
b_hlbd_manufacturersс полямиUF_NAME,UF_LOGO,UF_COUNTRY,UF_WEBSITE. Привязка из инфоблока через свойство типа «Справочник».Ключевой момент: без SKU нет таблицы
b_iblock_element_propertyс множителем вариаций. Если товар имеет 15 свойств и нет SKU — это 15 строк в EAV на элемент. С SKU по 5 вариаций — 75 строк. На 10К товаров разница между 150К и 750К строк ощутима при фильтрации.Фильтрация:
catalog.smart.filterбез модуляcatalogКомпонент
bitrix:catalog.smart.filterработает на инфоблоках и без модуляcatalog. Но есть нюанс: фасетные индексы (b_catalog_sm_*) доступны только при подключённом модулеcatalog. На «Старте» фасетов нет.Без фасетов фильтрация выполняется через прямые запросы к
b_iblock_element_property. На каталоге до 10-15К позиций с 10 фильтруемыми свойствами — приемлемо, 100-300ms. На 50К+ — уже больно, 2-5 секунд.Альтернативы фильтру без фасетов:
-
Кастомный фильтр на D7 ORM —
Bitrix\Iblock\Elements\ElementXxxTable(гдеXxx— API-код инфоблока). Генерируется автоматически, позволяет строить запросы через::getList()сfilter,select,runtime. Плюс: полный контроль над SQL, можно добавить кеширование результатов фильтрации. -
Elasticsearch / Sphinx — для каталогов от 50К позиций. Индексация через агент или обработчик события
OnAfterIBlockElementUpdate. Фильтрация — 5-20ms на любом объёме. Минус: дополнительная инфраструктура. - Фильтр на Highload-блоке — если каталог перенесён в HLBlock, фильтрация идёт по плоской таблице с индексами. Быстро, но теряются штатные SEO-компоненты инфоблоков.
Рекомендация для большинства проектов: стандартный
catalog.smart.filter+ правильные индексы в БД. Кастом — только когда данные доказывают необходимость.CIBlockElement::GetList vs D7 ORM
Старое API:
CIBlockElement::GetList($arOrder, $arFilter, $arGroupBy, $arNavStartParams, $arSelectFields). Работает, документировано, примеров тысячи. Проблема — нет строгой типизации, нет автодополнения в IDE, фильтры через массивы-соглашения (">=PROPERTY_POWER" => 100).D7 API:
\Bitrix\Iblock\Elements\ElementEquipmentTable::getList([...]). Строгие типы, fluent-интерфейс,runtime-поля,registerRuntimeField()для computed-колонок. IDE понимает структуру, рефакторинг безопасен.Практическое правило: новый код — на D7, существующий — не переписывать ради переписывания.
CIBlockElement::GetListникуда не денется, Битрикс поддерживает обратную совместимость десятилетиями. Но если строите фильтр или агрегацию с нуля — D7 даёт предсказуемый SQL и возможность профилировать каждый запрос через\Bitrix\Main\Diag\SqlTracker. D7 ORM генерирует предсказуемый SQL, что обычно даёт прирост производительности в 2–3 раза по сравнению с CIBlockElement::GetList на сложных фильтрах.SEO для каталога на инфоблоках
Модуль
iblockимеет встроенные SEO-шаблоны. Настраиваются на уровне инфоблока: вкладка «SEO» → шаблоны для разделов и элементов. Переменные:-
{=this.Name}— название элемента/раздела -
{=this.PreviewText}— анонс -
{=this.property.MANUFACTURER}— значение свойства -
{=parent.Name}— название родительского раздела
Шаблон
<title>для товара:{=this.Name} — купить {=parent.Name} от {=this.property.MANUFACTURER}. Для каталога без корзины «купить» заменяем на «характеристики и цена» или «заказать».ЧПУ настраиваются через шаблон URL в параметрах компонента
catalog.section/catalog.element:- Раздел:
/catalog/#SECTION_CODE#/ - Элемент:
/catalog/#SECTION_CODE#/#ELEMENT_CODE#/
SECTION_CODEиELEMENT_CODEгенерируются автоматически из названия (транслитерация) при включённой опции инфоблока «Транслитерировать символьный код при добавлении элемента».Микроразметка — Schema.org
ProductбезOffer(нет цены для покупки). Указываемname,description,image,brand,sku(артикул). Для «цена по запросу» — пропускаемoffersили используемpriceSpecificationсpriceCurrencyбезprice. Google поймёт, Яндекс примет через Вебмастер.Сравнение товаров без модуля sale
Штатное сравнение в Битриксе (
bitrix:catalog.compare.list) зависит от модуляcatalog. На «Старте» не работает. Решение — кастомный компонент сравнения.Хранение: массив ID выбранных товаров в
$_SESSION['COMPARE_LIST'][IBLOCK_ID]или в cookie (для незалогиненных). Вывод:CIBlockElement::GetListпо массиву ID с выборкой всех свойств, рендер в таблицу «свойство — значение по товарам». Реализация — 8-12 часов разработки, включая JS для добавления/удаления без перезагрузки страницы.На React-фронте (headless/SPA-подход) — сравнение хранится в state или localStorage, данные тянутся через REST API
/rest/iblock.element.getили кастомный контроллер.«Запросить цену» вместо «Купить»
Центральный UX-паттерн каталога без корзины. Реализация через веб-форму (
webformмодуль) или кастомный обработчик.Форма привязывается к элементу каталога: в скрытом поле передаётся
ELEMENT_IDиELEMENT_NAME. Менеджер получает письмо: «Запрос цены на [название товара], артикул [XXX], от [имя, телефон, email]». Данные сохраняются в инфоблоке заявок или в Highload-блоке — чтобы отслеживать конверсию.Варианты CTA-кнопок в зависимости от отрасли:
- Оборудование: «Запросить коммерческое предложение»
- Недвижимость: «Записаться на просмотр»
- Автозапчасти: «Уточнить наличие и цену»
- Мебель на заказ: «Рассчитать стоимость»
Обмен с 1С без модуля
saleМодуль
catalogподдерживает обмен через CommerceML (/bitrix/admin/1c_exchange.php). На «Старте» этого нет. Альтернатива — кастомный импорт через CSV/XML или REST API.Для каталога без корзины обмен обычно односторонний: 1С → сайт. Номенклатура, остатки, характеристики. Реализуется через:
- Агент (
CAgent) по расписанию, парсящий XML-выгрузку из 1С - Cron-задача, вызывающая скрипт импорта через CLI
- REST API, если 1С умеет отправлять HTTP-запросы (через обработку
HTTPСоединение)
При использовании «Стандарта» с модулем
catalog— штатный обмен CommerceML работает полноценно, просто модульsaleне подключается.Почему для B2B-каталога не нужна корзина?
В B2B-продажах сделка часто требует переговоров и индивидуальных условий. Цена может зависеть от объёма партии, региона или курса валюты. Кроме того, у многих товаров сложные характеристики — 15+ параметров, выбор по спецификации. В таких сценариях корзина только создаёт иллюзию простоты, а на деле увеличивает процент отказа при оформлении. Каталог с формами запросов даёт контекст для качественного коммерческого предложения.Каталог vs магазин
Каталог без корзины оправдан, если выполняется хотя бы два условия:
- Цены непубличные или зависят от контекста (объём, регион, договор)
- Сделка требует переговоров — нельзя оформить за 2 клика
- Ассортимент сложный: товар описывается 15+ характеристиками, выбирается по спецификации
- Нет складской логистики на стороне сайта
Если через полгода понадобится корзина — переход с каталога на магазин при правильной архитектуре (инфоблоки, разделение логики) занимает 2-4 недели: подключение модуля
sale, добавление типов цен, настройка платёжных систем и служб доставки. Данные каталога остаются без изменений.Что входит в разработку
- Техническое задание и прототипы
- Структура инфоблоков и HL-блоков
- Дизайн каталога, карточки товара, фильтра
- Вёрстка и интеграция с Битрикс
- Настройка фильтрации, сравнения, форм заявок
- SEO-шаблоны и микроразметка
- Импорт данных и обмен с 1С (при необходимости)
- Тестирование и передача в эксплуатацию
Этапы и сроки
- Проектирование (3-5 дней) — структура инфоблоков, карта фильтруемых свойств, прототипы в Figma
- Дизайн (1-2 недели) — каталог, карточка товара, фильтр, сравнение, формы заявок
- Разработка (2-5 недель) — вёрстка, интеграция с Битрикс, настройка фильтра, формы обратной связи, SEO
- Наполнение и импорт (3-7 дней) — загрузка товаров, настройка обмена с 1С при необходимости
- Тестирование и запуск (3-5 дней) — кроссбраузерность, мобильная версия, PageSpeed, передача в эксплуатацию
Масштаб Сроки Каталог до 500 позиций, без интеграций 3-5 недель Каталог 1-10К позиций, фильтр, сравнение 5-8 недель Каталог 10-50К, обмен с 1С, личный кабинет 8-12 недель Мы на рынке более 5 лет, реализовали 40+ каталогов на Битрикс. Опыт в промышленности, стройке, дистрибуции. Документация Битрикс.
Свяжитесь с нами, чтобы обсудить ваш проект. Закажите разработку каталога — получите оферту в течение дня.
-







