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

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Разработка сайта оптовой компании на 1С-Битрикс
Сложный
от 1 недели до 3 месяцев
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1357
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    946
  • 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
    693
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    830
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    732
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1075

Типичная ситуация: оптовый закупщик присылает список из 50-200 артикулов в Excel, ожидая, что сайт позволит загрузить их одной кнопкой. Но стандартный магазин на Битрикс не умеет работать с множественными типами цен, автоматически привязанными к группам пользователей, и не загружает файлы напрямую в корзину. В результате — ручной ввод позиций, ошибки и потеря времени. Мы за 10+ лет разработали более 50 решений, которые превращают сайт в полноценный B2B-инструмент: интеграция с 1С, своими REST-ручками для остатков и кредитных лимитов, гибкая система цен и документов. Свяжитесь с нами — за 2 дня оценим ваш проект.

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

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

Тип цены Для кого
Розничная Неавторизованные пользователи
Мелкий опт Дилеры категории C
Средний опт Дилеры категории B
Крупный опт Дилеры категории A
Специальная Ключевые клиенты

Каждый тип цены привязывается к группе пользователей через настройки модуля catalog. Авторизованный дилер видит только свою колонку цен. Дополнительно на уровне товара настраиваются минимальная партия, кратность заказа и единица измерения — свойства инфоблока, контролируемые в корзине.

Как настроить множественные типы цен для дилеров?

Мы подключаем несколько типов цен через штатный функционал «Торговый каталог» → «Типы цен» → «Группы покупателей». Для каждого типа создаём правило отображения: цена показывается только тем группам, которые привязаны. Если дилеру нужна скидка по объёму, добавляем правила корзины с условиями на сумму заказа. Это позволяет делать пороговые скидки без дополнительного кода.

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

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

  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(). Если артикул не найден — строка подсвечивается красным с пояснением.

Пример обработчика быстрого заказа
// Парсинг строк
$lines = explode("\n", $_POST['items']);
$basket = \Bitrix\Sale\Basket::loadItemsForFUser(\Bitrix\Sale\Fuser::getId(), SITE_ID);
foreach ($lines as $line) {
    list($art, $qty) = explode(' ', trim($line));
    $res = CIBlockElement::GetList([], ['PROPERTY_ARTICLE' => $art], false, false, ['ID']);
    if ($el = $res->Fetch()) {
        $item = $basket->createItem('catalog', $el['ID']);
        $item->setField('QUANTITY', (int)$qty);
    }
}
$basket->save();

Загрузка 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С и записывает результат в свойство заказа.

Что входит в работу

При разработке оптового сайта мы предоставляем:

  • Техническое задание с описанием логики типов цен и прав.
  • Настроенный обмен с 1С (CommerceML + REST).
  • Личный кабинет дилера с документами.
  • Корзину с поддержкой Excel и быстрого заказа.
  • Интеграцию с платёжными системами и службами доставки.
  • Исходный код и доступы к серверу.
  • Руководство администратора и обучение сотрудников.
  • Гарантийную поддержку 3 месяца после запуска.

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

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

Оптовый сайт на Битрикс — это прежде всего backend: обмен с 1С, типы цен, права, документооборот. Подробнее о формате обмена — CommerceML. Фронтенд вторичен — интерфейс должен быть функциональным и быстрым, а не эффектным. Закажите разработку — получите инструмент, который реально экономит время ваших дилеров. Экономия на обработке заказов достигает 300 000 руб в год за счёт автоматизации, а средний проект окупается за 4–6 месяцев. Свяжитесь с нами для консультации по вашему проекту.

Как правильно проектировать инфоблоки?

Мы видим десятки проектов, где неправильная структура инфоблоков превращает сайт в тормоз. Типичный сценарий: заказчик просит «каталог товаров». Разработчик создаёт один инфоблок catalog, закидывает туда 15 свойств. Через полгода — 40 свойств, 8 из которых используются только для одной категории. Фильтр тормозит, таблица b_iblock_element_property разрослась до миллионов строк, CIBlockElement::GetList выполняется 3 секунды. Последствия — падение конверсии, потеря клиентов, дополнительные затраты на оптимизацию. В одном проекте после рефакторинга каталога время генерации страницы снизилось с 4,2 до 0,8 секунды, а стоимость поддержки сократилась на 250 000 рублей в год — за счёт устранения избыточных запросов и агентов.

Наш подход: проектируем инфоблоки до первой строки кода. Отдельные инфоблоки под сущности (товары, категории, бренды), свойства-справочники через highload-блоки, торговые предложения для SKU. Это закладывает производительность на годы вперёд. Если хотите получить предварительный аудит вашей схемы инфоблоков — свяжитесь с нами, разберём типовые ошибки и дадим рекомендации бесплатно.

Почему 1С-Битрикс выгоднее альтернатив?

Выбор CMS диктуется не предпочтениями, а бизнес-задачами. Вот ключевые аргументы:

  • Нативный обмен с 1С — модуль catalog.import.1c обеспечивает двусторонний обмен товарами, ценами, остатками и заказами через CommerceML. Без сторонних модулей. Это в 5 раз быстрее, чем разработка собственного обмена на OpenCart или WordPress. Подробнее о формате — в Wikipedia. Экономия на интеграции составляет в среднем 150 000–300 000 рублей по сравнению с кастомными решениями.
  • Проактивная защита — модуль security включает WAF, контроль целостности файлов, защиту от SQL-инъекций, двухфакторную аутентификацию. Для проектов с требованиями ФСТЭК — сертифицированное решение.
  • Модульная архитектура — подключаем только нужные модули: iblock, catalog, sale, search. Меньше модулей — меньше запросов к БД на каждый хит.
  • Регулярные патчи — вендор выпускает security-патчи, закрывая уязвимости быстрее, чем open-source проекты (среднее время исправления CVE — 2 недели). Официальная документация по модулям — dev.1c-bitrix.ru.

Что дают HL-блоки и как мы ускоряем каталог

Highload-блоки — это альтернатива расширенным свойствам инфоблоков, когда список значений может расти до тысяч записей. Типичный пример: производители, страны, цвета. Если хранить их как свойства-списки в инфоблоке, каждая фильтрация вызывает полное сканирование таблицы b_iblock_property_enum. С HL-блоками выборка идёт по индексу — время ответа фильтра снижается с 1–2 секунд до 50 мс. Мы используем HLB компонент и кастомные запросы через Bitrix\Highloadblock\DataManager. Это особенно критично для каталогов с 100 000+ товарами.

Из нашей практики — проект интернет-магазина с 500 000 товаров. Стандартный фильтр по бренду выполнялся 4 секунды. Сервер не выдерживал нагрузку в 50 одновременных запросов — страницы падали. Мы перевели справочник брендов в HL-блок, добавили тегированное кэширование на 15 минут и настроили агент для сброса кэша при изменении. После доработки время фильтрации составило 120 мс, средний LCP страницы — 1,8 секунды. Проект работает стабильно без сбоев.

Что входит в разработку сайта на 1С-Битрикс

Каждый проект включает полный комплект документации и артефактов, исключающий потерю знаний после передачи.

  • Техническое задание — user stories, диаграммы инфоблоков, схемы интеграций.
  • Исходный код в Git — с историей коммитов, тегами релизов, правилами ветвления.
  • Административная документация — описание кастомных компонентов, инструкции по разворачиванию, перечень агентов и событий.
  • Обучение сотрудников — до 3 часов вебинара: панель управления, работа с заказами, настройка цен. Записываем, чтобы можно было пересмотреть.
  • Доступ к staging на время разработки — тестируете сами до деплоя на продуктив.
  • Гарантийная поддержка — исправление ошибок кода в течение 30 дней после запуска. Постгарантийные абонентские пакеты с SLA (реакция 2 часа, решение 8 часов).

Наш процесс и технологии

Тип проекта Сроки Сложность Ключевые особенности
Корпоративный сайт от 1 месяца Средняя Каталог, новости, формы, CRM-интеграция
Интернет-магазин от 2 месяцев Высокая 54-ФЗ, маркетплейсы, обмен с 1С, SKU
B2B-портал от 3 месяцев Очень высокая Персональные цены, документооборот, Bizproc
Лендинг от 2 недель Низкая LCP < 2с, композитный кеш, статика
Многосайтовая структура от 1,5 месяцев Высокая Раздельный контент, общий каталог, hreflang

Стек: вёрстка mobile-first, тестируем на физических устройствах (iPhone, iPad, Android). Используем BrowserStack для Safari на iOS. Производительность — LCP < 2,5 с, FID < 100 мс, CLS < 0,1. Включаем композитный сайт (composite), CDN, тегированное кэширование, WebP/AVIF, lazy loading. SEO — Schema.org через JSON-LD, автогенерация sitemap.xml модулем seo, canonical и hreflang для мультиязычных версий. robots.txt закрываем /bitrix/ от индексации. CI/CD — Git, автодеплой через GitLab CI, staging. Миграции базы — модуль sprint.migration с версионированием.

Процесс работы:

  1. Аналитика — изучаем конкурентов, собираем требования, рисуем прототипы в Figma. На выходе — ТЗ с user stories.
  2. Дизайн — UI/UX с дизайн-системой. Компоненты переиспользуются.
  3. Разработка — пишем компоненты с кастомными шаблонами в local/templates/. Бизнес-логику выносим в модули local/modules/.
  4. Тестирование — функциональное, кроссбраузерное, нагрузочное (до 1000 запросов). Критичные баги исправляем до запуска.
  5. Запуск — деплой на прод, мониторинг через UptimeRobot, алерты в Telegram. Устраняем первые 48 часов.

Интеграции, мультиязычность и редизайн

Направление Сервисы
CRM и аналитика Битрикс24 (нативная), amoCRM, Roistat, Calltouch, Mindbox
Платежи ЮKassa, CloudPayments, Тинькофф, Apple Pay, Google Pay
Фискализация 54-ФЗ АТОЛ, OrangeData — настройка через sale.cashbox
Логистика СДЭК, Boxberry, ПЭК, Почта России, Яндекс.Доставка
Коммуникации JivoSite, Carrot Quest, SendPulse
  • Полная локализация через языковые файлы lang/ и механизм SITE_ID. hreflang для каждой версии. Региональные версии с разными ценами и контентом — определение по IP (main.geo) или ручной выбор. Мультидоменность — единое управление несколькими доменами.

  • Редизайн без потери позиций: аудит производительности (PageSpeed, WebPageTest), SEO (Screaming Frog). Новый шаблон в local/templates/ с сохранением URL-структуры. 301-редиректы только если URL меняется существенно. Обновление ядра, переход на D7 ORM, реструктуризация инфоблоков, миграция через sprint.migration с Git.

Гарантия и поддержка

Мы работаем с 1С-Битрикс 12+ лет, реализовали 500+ проектов. В штате сертифицированные разработчики. Фиксированная стоимость в договоре — без сюрпризов. Гарантийный период покрывает ошибки кода. После — абонентские пакеты с SLA (время реакции — 2 часа, решение — 8 часов). Мониторинг доступности 24/7, алерты в Telegram. Получите консультацию и предварительный расчёт: свяжитесь с нами через форму на сайте или напишите в чат — ответим в течение часа. Закажите разработку под ключ — мы спроектируем инфоблоки, интегрируем 1С и разгоним каталог. Если уже есть сайт на другой CMS — закажите аудит производительности и миграцию на Битрикс.