Оптовий магазин зовні майже не відрізняється від роздрібного: той самий каталог, ті самі картки, кнопка «купити». Різниця починається після цієї кнопки. Ціна залежить від того, хто увійшов. Кількість обмежена коробкою. Замовлення закривається рахунком, а не чеком. І каталог гортає не покупець, який обирає, а закупівельник, який уже знає артикул.
31 липня 2026 року ми зняли технічні показники з семи оптових каталогів — від 1 656 адрес у медичному до 13 590 у білизняному. Нижче шість місць, де B2B-логіка розходиться з роздрібною, і те, що заміри показали всередині.
Ціна залежить від того, хто увійшов
У роздрібі ціна одна для всіх, і це найпростіша частина магазину. В опті у того самого товару їх кілька: базова для випадкового відвідувача, дилерська, окрема для ключового клієнта, який вибирає обсяг щомісяця. Поки це живе в Excel, воно живе погано: файл переслали, ціна застаріла, клієнт сперечається, менеджер шукає, яку версію прайсу надсилав минулого разу.
На OpenCart це штатний механізм — групи покупців і рівні цін. Клієнт входить у кабінет і бачить свою колонку, роздрібний відвідувач бачить базову. Джерело цін одне, і оновлюється воно імпортом прайсу, а не листуванням.
Друга половина цього пункту — реєстрація. Оптові ціни не показують випадковому відвідувачу, тому форма реєстрації не відкриває доступ сама: заявка йде на модерацію, і менеджер підтверджує, що це справді закупівельник. Складність починається там, де ціна залежить одночасно від групи, обсягу замовлення й категорії товару. Тоді це вже окрема логіка ціноутворення, яку описують у технічному завданні й перевіряють по кожній комбінації окремо.
Кількість обмежена коробкою
Роздрібний покупець бере одну штуку. Оптовий бере коробку по дванадцять, палету або мінімальну партію — і будь-яке замовлення на сім штук повертається до менеджера на ручне узгодження. Це найдорожчий спосіб приймати замовлення з тих, що існують.
Кратність упаковки ставиться на рівні товару, і кошик не дає оформити некратну кількість. Те саме з мінімальною партією й мінімальною сумою замовлення. Деталь, яку легко пропустити й дорого повернути: кнопка має пояснювати, чому вона неактивна. «Оформити», яке нічого не робить, читається як поламаний сайт; «додайте ще 4 штуки — товар відвантажується коробками по 12» читається як правило.
В одному з виміряних каталогів — оптовому магазині будматеріалів на 3 145 позицій — до цього додається розрахунок за палетами й обсягом: одиниця продажу не збігається з одиницею зберігання, і коефіцієнт має стояти в системі, а не в голові менеджера.
Замовлення набирають списком, а не кліками
Закупівельник заходить із готовим списком: тридцять артикулів і кількості. Роздрібний сценарій — знайти товар, відкрити картку, додати в кошик, повернутись — на тридцяти позиціях перетворюється на пів години кліків. Тому в опті потрібна форма швидкого замовлення: артикул і кількість, вставка списком, кошик збирається одним рухом.
Друга частина того самого — повтор попереднього замовлення в кабінеті. Клієнт відкриває минуле замовлення, прибирає зайве, додає нове й оформлює. Тут є чесна межа: кабінет має сенс тільки там, куди справді повертаються. Якщо ваш клієнт замовляє раз на квартал, кабінет стоятиме порожній — а це близько семи робочих днів роботи. Частоту повторних замовлень знаєте ви, а не ми, і саме вона вирішує, робити це чи ні.
Оплата закривається документом
Роздрібному покупцю потрібен чек. Юридичній особі потрібен документ: рахунок-фактура з номером і реквізитами, безготівковий переказ на IBAN, різні умови для ФОП і для платника ПДВ. Якщо це формує менеджер руками в обліковій системі, кожне замовлення коштує кількох хвилин чужого часу.
Рахунок, який складається із самого замовлення, — найпростіша механіка з тих, що знімають найбільше рутини: реквізити, номер, позиції й суми підставляються автоматично. У виміряних каталогах така оплата — норма. В оптовому магазині нижньої білизни вісім способів розрахунку, включно з рахунком-фактурою, і вони винесені не лише в текст сторінки, а й у структуровану розмітку. У B2B-каталозі запчастин для промислових швейних машин — безготівковий розрахунок без ПДВ на рахунок ФОП і оплата після отримання товару на складі перевізника.
Перелік документів, які сайт закриває замість менеджера, — одна з двох речей, що визначають обсяг роботи. Друга — кількість цінових рівнів. Як із цих двох чисел складається сума, розібрано окремо: скільки коштує інтернет-магазин.
Ціни й залишки веде облікова система
В опті продаж того, чого немає на складі, коштує дорожче, ніж у роздрібі: клієнт узяв позицію на перепродаж, пообіцяв своєму покупцеві, а вона не приїхала. Тому залишки на сайті мають братися з бази, а не оновлюватись руками.
Односторонній імпорт прайсу файлом — базова частина роботи: ціни й залишки оновлюються за розкладом, який задаєте ви. Двосторонній обмін з 1С чи BAS — окрема робота приблизно на десять робочих днів, бо синхронізація йде в обидві сторони: залишки й ціни на сайт, статуси замовлень назад у базу. Починається вона не з опису словами, а з реального файлу вивантаження: опис і вміст бази розходяться майже завжди.
Межа, яку варто назвати одразу: факт синхронізації ззовні не перевіряється. Ми можемо виміряти каталог і швидкість чужого сайту, але не те, чи справді до нього щоночі приїжджають залишки.
Каталог влаштований під підбір, а не під перегляд
Роздрібний каталог веде людину від категорії до товару. Оптовий має привести її до потрібної позиції за мінімум кроків, і сценарії тут різні для різних ніш.
В оптовому магазині нижньої білизни це підбір за розмірами й кольорами всередині моделі: закупівельник набирає асортимент в одній картці, а не ходить по сорока сторінках. Каталог там тримає 13 428 карток товару. У каталозі запчастин для швейних машин — пошук деталі за кодом або моделлю обладнання, бо помилка в підборі коштує простою виробництва. У постачальника будматеріалів — розрахунок за обсягом і палетами. У B2B-каталозі обладнання для шоколадного виробництва на 106 позицій кошика немає взагалі: там форма запиту прорахунку, бо темперувальну машину не купують в один клік.
Сюди ж лягає й те, що починається після оформлення: зонування тарифів доставки, коли доставка в сусідній район і доставка в село за шістдесят кілометрів від траси коштують вам по-різному, і розділення відправлень, коли частина позицій лежить у вас, а частина на складі постачальника.
Що показали сім виміряних оптових каталогів
Заміри 31 липня 2026 року дали кілька спостережень, яких не видно з опису проєкту.
Обсяг сам собою не робить сайт повільним. Перша відповідь сервера на каталогах від 1,6 до 13,6 тисячі адрес — від 289 до 576,8 мілісекунди. Найшвидший відгук виявився саме в найбільшого каталогу.
Карту сайту акуратно веде меншість. У білизняному 13 590 адрес і рівно один дублікат — 0,007%. Поруч у вибірці стоїть каталог косметики, де паралельно живе стара карта: 7 782 записи на 2 755 унікальних адрес, і жодної адреси другої мовної версії в ній немає. Двомовність зроблена, а для пошуку її не існує.
Аналітика вмирає тихо. У B2B-каталозі на 1 848 позицій у коді досі стоїть Universal Analytics, а властивості GA4 немає взагалі. Дані не збираються з липня 2023 року, і власник про це не знає, бо сайт при цьому працює.
Вага сторінки не залежить від розміру каталогу. Найважчий документ вибірки — 751,2 КБ на головній магазину з 13 тисячами позицій; каталог на 1 848 позицій віддає 120,2 КБ. Різниця тут у тому, як зроблена сторінка, а не в тому, скільки в ній товару.
Чого оптовий магазин не зробить
Він не замінить менеджера. Узгодження партії, відстрочка, спірна ціна, претензія по браку — це й далі люди. Сайт знімає рутину: рахунок, повтор, залишки, статус замовлення.
Він не забере одразу прайс із месенджера. Частина закупівельників роками працює телефоном і надішле список у Viber навіть тоді, коли на сайті є все. Реалістичний сценарій — не «всі перейшли на сайт», а «частина клієнтів оформлює сама, і саме цю частину менеджер більше не обробляє руками».
У пошуку оптовий магазин потрібен інакше, ніж роздрібний. Закупівельник шукає артикул, категорію і слова «опт» чи «гурт», часто разом із назвою бренду, — а не «купити дешево». Технічна частина при цьому та сама: ЧПУ, canonical, унікальні title, карта сайту без дублів, структурована розмітка. Саме тут у виміряних каталогах найбільше дірок.
З чого почати
Строк розробки оптового магазину — 30–55 робочих днів від затвердження технічного завдання; роздрібний магазин на тому самому движку — 25–45, і що саме розтягує ці строки, розібрано окремо. Найдовший етап в опті — збірка: кожну комбінацію групи покупця й ціни треба перевірити на живому замовленні.
Починається все з безкоштовного розбору комерційної схеми: скільки у вас рівнів цін, які документи менеджер робить руками, звідки беруться залишки. Це 1–3 робочі дні, після них — оцінка по етапах. Далі письмовий договір із фіксованою сумою і гарантія 30 календарних днів з дня підписання акта.




