Кабінет дилера: персональні ціни, історія, документи
Кабінет дилера на сайті — це закритий розділ, куди оптовий покупець заходить під своїм логіном і бачить свою ціну, свою кратність, свою історію й свої документи. Збираємо його на OpenCart: реєстрація з підтвердженням статусу менеджером, рівні цін за обсягом або окрема ціна на позицію, повтор замовлення в один крок, рахунок без дзвінка. Строк — 20–40 робочих днів. Суму називаємо після безкоштовного розбору вашої схеми цін: обсяг робіт задає глибина правил, а не кількість екранів.
ціна, кратність, історія, документи — усе прив'язане до контрагента
Що вмикає вхід у кабінет
1 992
Виміряний B2B-каталог
адреси в карті сайту без жодного дубліката, перша відповідь 388,1 мс
лічильник на властивості, яку Google вимкнув 1 липня 2023 року — дані не збираються
Що знаходимо в діючих B2B-каталогах
передоплата 50%, два раунди правок на дизайні, гарантія 30 календарних днів
Умови
Що входить
Повний перелік робіт і того, що ви отримуєте на виході
Закритий вхід із підтвердженням дилера менеджером: доступ до оптових цін відкриває людина, а не форма реєстрації
Персональні ціни — рівні за обсягом або окрема ціна на позицію: дилер бачить свою колонку одразу після входу
Кратність, мінімальна партія й фасування перевіряються в кошику, тому замовлення не приходить із семи штук із коробки по дванадцять
Повтор попереднього замовлення в один крок: регулярна закупівля перестає бути походом по каталогу
Замовлення таблицею й завантаження списку артикулів файлом — кількість вводиться напроти позицій, без відкривання сотні карток
Історія замовлень зі статусами: дилер сам бачить, що відвантажено, і не пише менеджеру «де моє»
Рахунок із замовлення без участі менеджера — з ПДВ або без, за статусом контрагента
Документи в кабінеті за узгодженим переліком: рахунки, накладні, стан взаєморозрахунків
Персональний прайс на вивантаження: дилер забирає свої ціни файлом до себе в облік
Розділення вітрини — неавторизований бачить роздріб, напис «ціна після входу» або нічого; наслідки кожного варіанта для індексації називаємо до старту
Обмін з обліковою системою для персональних цін і залишків, якщо ціни живуть саме там
Умови роботи: передоплата 50%, два раунди правок на етапі дизайну, гарантія 30 календарних днів
Коли ця послуга не підходить
Що не входить у роботу — щоб не було сюрпризів на здачі
Бухгалтерський облік взаєморозрахунків — кабінет показує дані вашої системи, а не веде їх
Юридичні шаблони дилерських договорів
Кредитний контроль і робота з простроченою заборгованістю як процес
Реклама після запуску
Хостинг, домен, еквайринг
Кому підходить
Ситуації, у яких ця послуга дає результат
Ситуація 1 з 4
Менеджер щоранку розсилає прайс і руками виставляє рахунки
Дилер пише у Viber «скиньте актуальні ціни», отримує файл, за тиждень замовляє за старою колонкою, далі йде звірка. Кабінет прибирає розсилку як клас: ціна лежить на сайті, дилер бачить її після входу, а менеджер займається спірними випадками, а не пересиланням того самого файлу двадцятьом людям.
Розберемо вашу ситуацію на безкоштовному аудиті
Ситуація 2 з 4
У кожного контрагента власна ціна на кожну позицію
Це вже не рівні за обсягом, а матриця «контрагент — товар — ціна», яка живе в обліковій системі й щомісяця правиться. Такі ціни на сайті не набивають руками: їх забирають обміном і підставляють у каталог після авторизації. Це найдорожчий сценарій кабінету, і на аудиті ми окремо перевіряємо, чи справді ваш випадок такий.
Ситуація 3 з 4
Дилери замовляють по колу те саме
Регулярна закупівля не потребує каталогу з картками: потрібні повтор попереднього замовлення, введення кількості таблицею й завантаження списку артикулів файлом. Каталог лишається для пошуку нового. Саме тут кабінет економить найбільше часу — і вашого менеджера, і закупівельника.
Ситуація 4 з 4
Дилер просить рахунок, а бухгалтер у відпустці
Замовлення узгоджене, відвантаження чекає документа, і все впирається в одну людину. Кабінет віддає рахунок одразу після оформлення — з ПДВ або без, залежно від статусу контрагента. Це не про конверсію, це про те, скільки годин замовлення стоїть між «так» і складом.
Безкоштовний розбір вашої оптової схеми
Перш ніж робити кабінет, треба зрозуміти, як у вас насправді влаштована ціна для дилера. Найчастіше виявляється, що правил більше, ніж здавалося, і половина з них живе в голові менеджера. Аудит виводить їх на папір.
Що міряємо
Схема цінСкільки рівнів, чи є персональні ціни на позицію, як рахується знижка за обсягом. Це головний множник трудомісткості.
Кратність і мінімальна партіяОбмеження на кількість і фасування. У виміряному оптовому магазині білизни підбір іде за розмірами й кольорами всередині моделі плюс фасування — саме такі правила й переносяться в кошик кабінету.
ДокументообігЩо дилер має отримувати сам: рахунок, накладну, акт звірки. Кожен документ — окрема робота, і не кожен варто виводити в кабінет на першому етапі.
Повторні замовленняЯк часто дилер бере те саме. У виміряному B2B-каталозі запчастин це основний сценарій, і він задає, як виглядатиме головна сторінка кабінету.
Спосіб розрахункуЩо працює зараз. У виміряному оптовому магазині білизни вісім способів розрахунку описані і в тексті, і в машинній розмітці, а онлайн-оплати немає свідомо: замовлення узгоджується до оплати.
Обмін з облікомЗвідки братимуться персональні ціни й залишки. Найчастіше з облікової системи — і це окремий обсяг робіт із власним строком.
Що ви отримуєте на руки
Схему цін і правил, виписану на папері так, як вона реально працює.
Перелік функцій кабінету з поділом на обов'язкові й ті, що можуть почекати другий етап.
Оцінку робіт по документах і обміну з обліковою системою.
Розмову на 30–40 хвилин по документу.
Строк: 3–5 робочих днів — оптова логіка розбирається довше за звичайний каталог
Чому це безкоштовно
Бо половину оптових правил не дізнатися з опису задачі — їх доводиться витягувати питаннями. Ця робота однаково потрібна, і чесніше зробити її до договору, ніж закладати в кошторис наосліп.
Що далі
Після аудиту — сума й строк по етапах із датами, договір, рахунок, акт.
Форма коротка: контакт і адреса сайту
Працюємо офіційно
Договір, акт і рахунок — на кожен проєкт, а не тільки на великий. Без документів у вас немає ні прав на роботу, ні підстави провести витрати.
Договір, акт і гарантія 30 днів
На кожен проєкт письмовий договір: обсяг, строки, сума, порядок приймання. Після здачі — акт і рахунок, а далі 30 календарних днів гарантії: помилки з нашої вини усуваємо безоплатно. Усне з дзвінка дублюємо письмово того ж дня — домовленість, якої немає в тексті, не рахується.
ФОП і безготівковий розрахунок
Виконавець — зареєстрований ФОП. Оплата на рахунок із закривними документами, які бухгалтерія проведе як витрати. Курс для гривневої оплати фіксується договором, а не з’ясовується постфактум.
Права й доступи — ваші
Код, дизайн і матеріали переходять до вас після повної оплати. Домен, хостинг, репозиторій, аналітику й рекламні кабінети оформлюємо на вас — щоб сайт не залежав від підрядника. NDA підписуємо на запит, після завершення свої доступи видаляємо самі.
Портал клієнта замість переписки
На час роботи ви отримуєте доступ до порталу: договори, рахунки, акти й стан проєкту в одному місці. Документи формуються з даних угоди, тому реквізити й суми в них не розходяться, а про оплати й дедлайни нагадує система, а не пам’ять менеджера.
Замовники з Європи
Серед робіт — проєкти для Норвегії, Болгарії та Іспанії: болгарський магазин трьома мовами з кур’єрською доставкою, іспанський з оплатою карткою й переказом, норвезький сайт клініки. Це видно в портфоліо, а не тільки в описі.
Цифри, які можна перевірити
Кожен кейс у портфоліо — з посиланням на живий сайт і технічним виміром: швидкість відповіді, вага сторінки, обсяг каталогу, знайдені дефекти. Ці цифри можна зняти самому й звірити з нашими.
Спершу аудит, потім сума
Прайсу на сайті немає навмисно: обсяг тієї самої роботи у двох клієнтів відрізняється в рази, і цифра «від» нічого не пояснює. Спершу безкоштовний розбір — рахуємо ваші сторінки, дублі й швидкість, — потім називаємо суму й строк і фіксуємо їх у договорі.
Кажемо «ні», коли не впевнені
Якщо задача не наша, строк нереальний або послуга вам просто не потрібна — скажемо це першим листом, а не після передоплати. Гарантій позицій у пошуку не даємо: їх не дає ніхто, а обіцянка без механізму — це продаж, а не робота.
NDA підписуємо на запит. Після завершення співпраці наші доступи до ваших сервісів видаляємо самі й повідомляємо про це.
Що впливає на вартість
Чому дві однакові на вигляд задачі рахуються по-різному — і що саме ми міряємо на аудиті
Глибина цінової схемиТри рівні за обсягом — це налаштування груп покупців. Окрема ціна на кожну пару «контрагент — товар» вимагає власної таблиці цін і правок у трьох місцях: у каталозі, у кошику й при формуванні замовлення. Різниця між цими двома випадками більша за всі інші фактори разом.
Звідки беруться ціниПравила на сайті рахуються самі. Вивантаження з обліку — це окремий обмін зі своїм строком. Чесна межа: обмін не виправляє облік. Якщо в обліковій системі пересорт і невідображені списання, сайт покаже неточні дані швидко й акуратно, а між вивантаженнями завжди лишається вікно зі старою ціною.
Перелік документів у кабінетіРахунок формується із замовлення й коштує небагато. Накладні тягнуться з обліку. Найдорожчий — стан взаєморозрахунків: він має право з'явитися в кабінеті лише тоді, коли обмін працює надійно, інакше дилер бачить чужий борг і телефонує менеджеру.
Способи швидкого замовленняПовтор із історії робиться швидко. Замовлення таблицею — середня робота. Розбір файлу зі списком артикулів найдорожчий, бо в дилера свої коди й їх треба зіставляти з вашими, а частина рядків приїжджає з помилками, які має ловити не менеджер.
Кількість винятків у правилахОдна кратність на весь каталог — це рядок логіки. Фасування, що змінюється по категоріях, і «для цих трьох клієнтів працює по-іншому» перетворюють правило на таблицю винятків.
Кейси
Задачі та результат у цифрах — усі показники зняті нашим виміром
B2B-каталог запчастин і комплектуючих до промислових швейних машин
Задача
Дати технічному спеціалісту знайти деталь за кодом або моделлю обладнання за мінімум кроків: помилка в підборі коштує простою виробництва.
Рішення
Каталог на OpenCart із підбором деталей за моделлю машини, технічними схемами й формою запиту наявності. Розрахунок безготівкою без ПДВ на рахунок ФОП за IBAN, оплата після отримання товару на складі перевізника. Дві мовні версії з коректним hreflang.
Результат
1 992 адреси в карті сайту без жодного дубліката — 1 848 карток товару і 138 категорій. Перша відповідь сервера 388,1 мс, повне завантаження 419,5 мс при вазі HTML 120,2 КБ: третя найлегша розмітка серед 16 виміряних сайтів. Знайдений дефект: у коді досі висить лічильник Universal Analytics, який Google вимкнув 1 липня 2023 року, а GA4 немає взагалі — три роки без даних. Вимір 31.07.2026.
оптовий магазин нижньої білизни з розмірними сітками, каталог понад 13 тис. позицій
Задача
Дати оптовому покупцю підбір за розмірами й кольорами всередині моделі, ціни за рівнями замовлення й швидкий повтор.
Рішення
OpenCart із розмірними сітками, фасуванням у картці та оптовими рівнями цін. Вісім способів розрахунку винесені не лише в текст, а й у машинну розмітку через acceptedPaymentMethod. Онлайн-оплати немає свідомо: щоб не оплачували те, чого немає в наявності.
Результат
13 428 товарних сторінок і 161 категорія — 13 590 адрес у карті сайту, з них лише один дубль. Перша відповідь 289 мс, повне завантаження 455,1 мс на каталозі в 13 тисяч позицій. Знайдений дефект: стандартна адреса карти сайту віддає 200 з порожнім тілом, а робоча лежить на нестандартній. Вимір 31.07.2026.
оптовий магазин косметики для б'юті-індустрії, каталог майже 4 тис. позицій
Задача
Зібрати оптовий каталог для професійних закупівельників: навігація за брендами, оптові ціни, швидке оформлення.
Рішення
Магазин на OpenCart із канонічною картою сайту, оголошеною в robots.txt. Розрахунок через платіжний сервіс, післяплатою і на рахунок у банку. Шість типів структурованих даних, включно з контактами й графіком роботи.
Результат
4 167 адрес у канонічній карті сайту: 3 947 товарів, 166 брендів, 47 категорій, 6 інформаційних сторінок і головна. Перша відповідь 576,8 мс при вазі HTML 192,4 КБ. Знайдений дефект: паралельно живе стара карта сайту — 7 782 записи на 2 755 унікальних адрес, тобто вона одночасно дубльована й неповна. Вимір 31.07.2026.
Не знайшли свій випадок?
Опишіть, як це влаштовано у вас, — відповімо, чи підходить «B2B-кабінет дилера в інтернет-магазині» і що це означає у вашій ситуації. Без брифу й без дзвінка: одне питання, одна відповідь.
Як проходить робота
Прозорі етапи з погодженням на кожному кроці
Загальний строк:20–40 днів
1
Розбір оптової схеми
3–5 робочих днів
Витягуємо питаннями всі правила ціни, кратності й документообігу — включно з тими, що ніде не записані. Це і є безкоштовний аудит.
2
ТЗ: матриця цін, правил і документів
3–5 робочих днів
Хто яку ціну бачить, за яких умов, що перевіряє кошик, які документи віддає кабінет і звідки їх бере. Документ, за яким потім приймається робота.
3
Прототип кабінету
2–4 робочих дні
Головна сторінка кабінету під ваш основний сценарій, форми швидкого замовлення, розділ документів. Погоджуємо до дизайну, бо перероблення після збірки дороге.
4
Збірка: доступ, ціни, кратність, кошик
6–12 робочих днів
Реєстрація з модерацією, підстановка ціни контрагента в каталозі й кошику, перевірка кратності на сервері, розділення вітрини для неавторизованих.
5
Швидке замовлення й документи
3–7 робочих днів
Повтор із історії, замовлення таблицею, розбір файлу з артикулами, формування рахунка з ПДВ і без, вивантаження персонального прайсу.
6
Обмін, тестування під реальним дилером, передача
3–7 робочих днів
Підключаємо обмін цінами й залишками, проганяємо повний цикл під живим контрагентом — від входу до рахунка, передаємо доступи й інструкцію менеджеру.
Технології та інтеграції
На чому будуємо і з чим це з’єднується
Стек
OpenCart 4.x — ставимо за замовчуванням, це гілка, яку розвивають
OpenCart 3.x — коли потрібен модуль без збірки під 4.x; версію фіксуємо в ТЗ до старту
групи покупців OpenCart — закривають рівні цін, але не ціну на конкретну пару «контрагент — товар»
PHP і MySQL — персональна ціна лежить окремою таблицею й підставляється в моделі каталогу, а не в шаблоні
перевірка кратності на сервері, а не в JavaScript: кількість правиться в запиті за десять секунд
nginx, HTTP/2
HTTPS + HSTS — кабінет із документами інакше не запускаємо
обмін з обліковою системою за розкладом: між вивантаженнями завжди є вікно зі старою ціною
розділи кабінету під noindex — у пошуку їм робити нічого
Інтеграції
1С / BAS
безготівковий розрахунок з ПДВ і без ПДВ
оплата за IBAN
рахунок-фактура
WayForPay
LiqPay
Нова Пошта
Укрпошта
Meest Express
Google Tag Manager
GA4
JivoSite
Telegram
Кабінет проти прайсу в месенджері й таблиці в менеджера
Чим цей варіант відрізняється від «Прайс у месенджері + Excel»
Прайс у месенджері + ExcelНаш підхід
Ціна для контрагентафайл, який застаріває в момент відправкиодне джерело, дилер бачить свою колонку після входу
Кратність і мінімальна партіяперевіряє менеджер очима, іноді вже після відвантаженняперевіряє кошик до оформлення
Повторна закупівляпереписка з уточненням кожної позиціїповтор попереднього замовлення в один крок
Рахунокробить людина й тільки в робочі годиниформується із замовлення, доступний одразу
Спірне замовлення«я вам писав» проти «ви не писали»склад видно в історії кабінету
Що це коштуєгодини менеджера щодня, і їх треба більше з кожним новим дилеромразова розробка плюс підтримка
Що потрібно від вас
Без цього не почнемо — краще підготувати заздалегідь
1Схему цін: рівні, знижки, персональні умови — у тому вигляді, в якому вона реально працює.
2Правила кратності, мінімальної партії й фасування.
3Перелік документів, які дилер має отримувати самостійно.
4Опис процесу підтвердження дилера: хто його схвалює й за якими критеріями.
5Приклад вивантаження з облікової системи, якщо ціни братимуться звідти.
6Одну людину з правом ухвалювати рішення по оптовій логіці.
Якщо чогось із цього немає — скажіть, підкажемо, як зібрати або зробимо самі окремою задачею.
Часті питання
Те, що питають найчастіше — з конкретними відповідями
чим кабінет дилера відрізняється від оптового магазину?
Оптовий магазин — вітрина з оптовими цінами для всіх, хто на неї зайшов. Кабінет — закритий контур під конкретного покупця: його ціни, його кратність, його історія й документи. Одне не замінює інше, і часто на сайті живуть обидва режими: публічна вітрина для нових і кабінет для тих, кого вже підтвердив менеджер. Якщо вам потрібна саме вітрина, дивіться сторінку про оптовий магазин.
у кожного клієнта своя ціна на кожну позицію — так узагалі можна?
Можна, але це не налаштування, а доробка. Групи покупців у OpenCart дають рівні: роздріб, дилер, ключовий клієнт. Ціна на конкретну пару «контрагент — товар» у ядрі не передбачена, тому вона заводиться окремою таблицею й підставляється в моделі каталогу. Важлива деталь: правити треба саме модель, а не шаблон картки. Якщо ціну підмінити у виводі, у кошику й у рахунку опиниться роздрібна сума, і дізнаєтесь ви про це від дилера.
як дилер зробить замовлення на двісті позицій, не відкриваючи двісті карток?
Трьома способами, і зазвичай потрібні не всі. Повтор попереднього замовлення — коли закупівля стабільна. Замовлення таблицею — коли міняється тільки кількість: список позицій із полем кількості напроти кожної. Завантаження файлу зі списком артикулів — коли заявку формують в обліковій системі на боці дилера. Третій варіант найдорожчий: коди в дилера свої, і їх треба зіставляти з вашими, а рядки з помилками показувати одразу, а не після оформлення.
чи можна закрити ціни від сторонніх?
Так, і в оптовій торгівлі це звична річ. Варіанти три: показувати роздрібну ціну, показувати напис «ціна після входу» або не показувати нічого. Компроміс називаємо прямо: сторінка без ціни втрачає частину сенсу для пошуку, а сторінка зовсім без цін конкурує гірше за ту, де ціна є. Рішення ваше, і воно різне для різних ніш — у виміряному нами каталозі запчастин ціни відкриті, бо трафік із пошуку там частина продажу.
рахунок дилер отримає сам?
Так, і це одна з найкорисніших функцій кабінету: замовлення оформлене — рахунок доступний одразу, з ПДВ або без, залежно від статусу контрагента. Чесна межа: рахунок на сайті не робить вас постачальником для юрособи. Договір, відстрочка платежу й наявність під обсяг лишаються поза сайтом — кабінет закриває тільки перший крок, зате закриває його без черги до менеджера.
чи виводити в кабінет борг і акт звірки?
Наша рекомендація — на першому етапі ні. Стан взаєморозрахунків має сенс тільки тоді, коли обмін з обліком уже працює надійно й дані свіжі. Інакше виходить гірше, ніж було: дилер бачить цифру, не розуміє її, телефонує менеджеру, і той пояснює, чому в кабінеті одне, а в бухгалтерії інше. Ми радимо запускати кабінет на цінах, кратності, історії та рахунку, а звірку додавати другим етапом, коли обмін відпрацював кілька місяців.
звідки візьмуться персональні ціни, якщо вони в 1С?
З обміну: облікова система віддає файл або відповідає на запит, сайт розкладає ціни по контрагентах. Обмін ставиться на розклад, і про його межі краще знати заздалегідь. Перша: він не виправляє облік — якщо в 1С пересорт, сайт покаже пересорт. Друга: між вивантаженнями є вікно, і в цьому вікні ціна на сайті стара. Третя: при оновленні облікової системи чи CMS обмін доводиться доробляти, це постійна стаття витрат. Деталі — на сторінці про обмін з 1С і BAS.
скільки триває і що зсуває строк?
20–40 робочих днів від затвердження ТЗ, шість етапів. Найдовший — не програмування, а збірка цін і правил: 6–12 днів. Строк зсуває не обсяг каталогу, а кількість винятків. Класична історія: на третьому тижні з'ясовується, що для трьох старих клієнтів працюють умови, яких немає в жодному документі, і про них пам'ятає один менеджер. Саме тому розбір схеми стоїть першим етапом і робиться до договору.
Надішліть свою схему цін і перелік документів, які просить дилер.
У відповідь — розбір схеми на папері, перелік функцій кабінету з поділом на обов'язкові й другий етап, оцінка робіт по етапах. Якщо кабінет вам зараз не потрібен, скажемо це першим листом.
Прайса на сайті немає навмисно: обсяг тієї самої роботи у двох клієнтів відрізняється в рази, і цифра «від» у такому разі нічого не пояснює. Спершу безкоштовний аудит — рахуємо ваші сторінки, дублі й швидкість, — потім називаємо суму й строк і фіксуємо їх у договорі.