Розробка сайту оптової компанії на 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
    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. Фронтенд вторинний — інтерфейс має бути функціональним і швидким, а не ефектним. Замовте розробку — отримаєте інструмент, який реально економить час ваших дилерів. Зв'яжіться з нами для консультації по вашому проекту.

Як правильно проектувати інфоблоки?

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

Наш підхід: проектуємо інфоблоки до першого рядка коду. Окремі інфоблоки під сутності (товари, категорії, бренди), властивості-довідники через HL-блоки, торгові пропозиції для SKU. Це закладає продуктивність на роки вперед. Якщо хочете отримати попередній аудит вашої схеми інфоблоків — зв'яжіться з нами, розберемо типові помилки та надамо рекомендації.

Чому 1С-Бітрікс вигідніший за альтернативи?

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

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

Що дають HL-блоки і як ми прискорюємо каталог

Highload-блоки — це альтернатива розширеним властивостям інфоблоків, коли список значень може зростати до тисяч записів. Типовий приклад: виробники, країни, кольори. Якщо зберігати їх як властивості-списки в інфоблоці, кожна фільтрація викликає повне сканування таблиці b_iblock_property_enum. З HL-блоками вибірка йде по індексу — час відповіді фільтра знижується з 1–2 секунд до 50 мс. Продуктивність HL-блоків у 8 разів вища за властивості-списки інфоблоків. Ми використовуємо 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.

Типові помилки при проектуванні інфоблоків
  • Один інфоблок на всі сутності замість окремих під товари, категорії, бренди.
  • Використання властивостей-списків замість HL-блоків для довідників з великою кількістю записів.
  • Відсутність індексів на полях, що використовуються у фільтрації каталогу.
  • Нехтування тегованим кешуванням — призводить до скидання всього кешу при зміні одного елемента.

Гарантія та підтримка

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