Разработка сайта оптовой компании на 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Разработка сайта оптовой компании на 1С-Битрикс
Сложная
от 1 недели до 3 месяцев
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Разработка сайта оптовой компании на 1С-Битрикс

Оптовый сайт — это не витрина для конечного покупателя, а рабочий инструмент для дилеров и закупщиков. Здесь не нужны красивые баннеры и «хиты продаж». Нужна быстрая навигация по каталогу из десятков тысяч SKU, загрузка заказа по артикулу, актуальные остатки и цены, привязанные к группе контрагента. 1С-Битрикс с модулем «Торговый каталог» и штатной интеграцией с 1С покрывает эти задачи, но стандартную логику B2C-магазина приходится перестраивать.

B2B-каталог: типы цен и оптовые правила

Основа B2B-каталога — множественные типы цен. В таблице b_catalog_group создаются ценовые группы:

  • Розничная — базовая, видна неавторизованным пользователям (если каталог открыт).
  • Мелкий опт — для дилеров категории C.
  • Средний опт — для дилеров категории B.
  • Крупный опт — для дилеров категории A.
  • Специальная — индивидуальные цены для ключевых клиентов.

Каждый тип цены привязывается к группе пользователей через настройки модуля catalog. Авторизованный дилер из группы «Крупный опт» видит свою колонку цен — остальные скрыты. Настройка выполняется в разделе «Торговый каталог» → «Типы цен» → «Группы покупателей».

Дополнительные параметры на уровне товара:

  • Минимальная партия — свойство инфоблока, числовое. В компоненте корзины контролируется: нельзя заказать меньше указанного количества.
  • Кратность заказа — свойство инфоблока. Количество в корзине округляется до ближайшего кратного значения (например, упаковка по 12 штук).
  • Единица измерения — штатное поле модуля каталога (b_catalog_measure): штуки, упаковки, паллеты.

Авторизация дилеров и разграничение доступа

Регистрация дилера — не самостоятельная, а по заявке. Схема:

  1. На сайте — форма заявки: ИНН, название компании, контактное лицо, сфера деятельности, предполагаемый объём закупок.
  2. Заявка попадает в CRM или в админку (раздел «Пользователи» → «Заявки на регистрацию»).
  3. Менеджер проверяет контрагента, создаёт учётную запись и назначает группу (мелкий/средний/крупный опт).
  4. Дилер получает доступ к личному кабинету и видит каталог со своими ценами.

Разграничение ассортимента (не только цен) реализуется через права доступа к разделам инфоблока. Например, группа «Крупный опт» видит раздел «Эксклюзивные коллекции», недоступный мелким дилерам.

Личный кабинет: документооборот

Личный кабинет дилера выходит далеко за рамки стандартного sale.personal.section. Ключевые разделы:

  • История заказов — с фильтрацией по дате, статусу, сумме. Повторный заказ в один клик.
  • Счета на оплату — PDF-документы, сформированные модулем sale или переданные из 1С.
  • Акты сверки — файлы, загружаемые менеджером или генерируемые автоматически из 1С.
  • Накладные и УПД — привязаны к заказам, доступны для скачивания.
  • Кредитный лимит — отображение текущего лимита, использованной суммы и доступного остатка.
  • Отсрочка платежа — информация о сроках и условиях.

Документы хранятся в Highload-блоке Documents: тип документа, номер, дата, файл, привязка к заказу и контрагенту. Загрузка из 1С — через REST API по расписанию.

Формирование PDF счетов на стороне Битрикс — через библиотеку mPDF или TCPDF, подключаемую в обработчике события OnSaleOrderSaved. Шаблон счёта включает реквизиты компании, таблицу товаров, итоги, QR-код для оплаты.

Интеграция с 1С: CommerceML + REST

Обмен с 1С — ядро оптового сайта. Два канала:

CommerceML (штатный обмен):

  • Номенклатура → инфоблок товаров.
  • Цены по типам → b_catalog_price.
  • Остатки по складам → b_catalog_store_product.
  • Заказы: Битрикс → 1С (выгрузка) и обратно (статусы, отгрузки).

REST API (для оперативных данных):

  • Актуальные остатки — запрос к 1С при открытии карточки товара (с кешированием на 5–10 минут).
  • Кредитный лимит контрагента — запрос при авторизации и при оформлении заказа.
  • Документы — выгрузка новых счетов и актов по расписанию.

Deep-dive: B2B-корзина с загрузкой Excel и типами цен

Стандартная корзина Битрикс рассчитана на розничного покупателя: выбрал товар, нажал «В корзину», перешёл к оформлению. В B2B-сценарии закупщик работает иначе. Он приходит с готовым списком из 50–200 позиций и хочет загрузить его за одно действие.

Быстрый заказ по артикулу

На странице «Быстрый заказ» — текстовое поле, куда вводятся пары «артикул — количество» по одной на строку:

ART-001 24
ART-002 48
ART-003 12

При отправке серверный обработчик парсит строки, ищет товары по свойству ARTICLE в инфоблоке (через CIBlockElement::GetList с фильтром), проверяет наличие и добавляет в корзину через \Bitrix\Sale\Basket::addItem(). Если артикул не найден — строка подсвечивается красным с пояснением.

Загрузка Excel-файла

Более продвинутый вариант — загрузка XLS/XLSX. Обработчик на стороне сервера:

  1. Приём файла — через стандартную загрузку Битрикс (CFile::SaveFile).
  2. Парсинг — библиотека PhpSpreadsheet (подключается через Composer). Ожидаемый формат: столбец A — артикул, столбец B — количество. Первая строка — заголовок (пропускается).
  3. Валидация — проверка каждой строки: существование артикула, доступность товара для группы пользователя, соответствие минимальной партии и кратности.
  4. Формирование результата — таблица с колонками:
Артикул Название Запрошено Скорректировано Остаток Цена Сумма Статус
ART-001 Товар А 24 24 150 OK
ART-002 Товар Б 48 48 30 Частично (ост. 30)
ART-999 12 Не найден
  1. Подтверждение — пользователь видит результат, корректирует количество, подтверждает добавление в корзину.

Обработка типов цен в корзине

При добавлении товара в корзину цена определяется автоматически на основе группы пользователя. Логика:

  • Определяется группа авторизованного пользователя (CUser::GetUserGroupArray()).
  • По группе определяется доступный тип цены (CCatalogGroup::GetGroupsList()).
  • Из b_catalog_price извлекается цена для товара по нужному типу.
  • Если для товара настроены скидки по количеству (модуль «Правила корзины» — sale.discount), они применяются при пересчёте.

Дополнительная логика — пороговые скидки: при заказе на сумму свыше определённого порога автоматически применяется дополнительная скидка. Настраивается через правила корзины с условием «Сумма корзины больше N».

Кредитный лимит при оформлении

На этапе оформления заказа проверяется кредитный лимит контрагента. Данные берутся из 1С через REST API. Если сумма заказа превышает доступный лимит — выводится предупреждение, но заказ можно отправить (на усмотрение менеджера). Реализация — обработчик события OnSaleOrderBeforeSaved, который выполняет запрос к 1С и записывает результат в свойство заказа.

Техническая сводка

Компонент Решение
Каталог bitrix:catalog с фасетным индексом
Фильтрация bitrix:catalog.smart.filter + AJAX
Корзина Кастомный компонент с поддержкой Excel
Интеграция CommerceML (каталог) + REST API (остатки, лимиты)
Документы Highload-блок + mPDF
Права доступа Группы пользователей → типы цен + разделы инфоблока

Оптовый сайт на Битрикс — это прежде всего backend: обмен с 1С, типы цен, права, документооборот. Фронтенд вторичен — интерфейс должен быть функциональным и быстрым, а не эффектным.