Розробка інтернет-магазину косметики впирається не в дизайн, а у варіативність: один засіб живе у трьох об'ємах і восьми відтінках. Ми збираємо такий магазин на OpenCart — відтінки й об'єми як опції картки, сторінки брендів окремим розділом, фільтр за типом шкіри й призначенням. 31 липня 2026 року ми зняли технічні показники з трьох живих б'юті-магазинів: від 81 товарної сторінки до 5 561 позиції, перша відповідь сервера від 126,3 до 801,2 мс. Суму називаємо після аудиту прайсу — до нього це вгадування.
Показники зняті нашим виміром на живих сайтах відповідного масштабу.
після безкоштовного аудиту
Вартість
30
Гарантія
днів після підписання акта
3
Б'юті-магазинів поміряли
живі каталоги, вимір 31.07.2026
від 81 товарної сторінки до 5 561 позиції
Розкид каталогів у вибірці
126,3–801,2 мс
Перша відповідь сервера
на тому самому движку
166
Бренди як другий вхід у каталог
брендових сторінок на 3 947 товарів
271
Що знаходимо всередині
запис карти сайту на 116 унікальних адрес
28–48
Строк
робочих днів від затвердження ТЗ
Кому підходить
Ситуації, у яких ця послуга дає результат
Ситуація 1 з 4
Прайс живе в Excel, а замовлення — у дірект-повідомленнях
Менеджер щоразу пересилає файл, уточнює відтінок і адресу відділення. Магазин переносить це в чекаут: покупець сам обирає відтінок у картці й відділення Нової Пошти зі списку. Одразу про межу: інтеграція з перевізником не здешевлює доставку й не рятує від покупця, який обрав не те відділення. Вона знімає ручну роботу — і перетворюється на гроші лише тоді, коли звільнений час менеджера кудись реально перерозподілено.
Розберемо вашу ситуацію на безкоштовному аудиті
Ситуація 2 з 4
У кожного засобу є відтінки й об'єми
Саме тут вирішується, у скільки сторінок розгорнеться каталог. Один тональний крем у восьми відтінках і двох об'ємах — це шістнадцять комбінацій, і від того, заводите ви їх опціями чи окремими картками, залежить і строк імпорту, і подальша робота з дублями. Рішення ухвалюється до збірки: переробляти після верстки дорого.
Ситуація 3 з 4
Каталог росте брендами, а не категоріями
У б'юті покупець часто шукає бренд, а не тип засобу. Тому сторінки брендів мають бути окремим розділом у карті сайту й лінкуватися з карток товару. В оптовому б'юті-каталозі з нашого виміру таких сторінок 166 — на 3 947 товарів і 47 категорій.
Ситуація 4 з 4
Роздріб і салони в одному прайсі
Салон купує кратно й за своєю ціною, роздрібний покупець — штучно й за вітринною. Групи покупців OpenCart тримають обидві логіки на одному каталозі: ціна залежить від того, хто увійшов. Якщо опт у вас основний обсяг, каркас краще будувати навколо нього — це вже сусідня сторінка.
Кейси
Задачі та результат у цифрах — усі показники зняті нашим виміром
інтернет-магазин професійної косметики, каталог понад 5 тис. позицій
Задача
Звести великий асортимент професійної косметики в один каталог із навігацією за брендами й типами засобів і з умовами оплати та доставки, зрозумілими роздрібному покупцю.
Рішення
Магазин на OpenCart: каталог за брендами й типами засобів, безкоштовна доставка від визначеної суми, повна передоплата на рахунок або післяплата за умови завдатку, мікророзмітка Organization і PostalAddress.
Результат
5 561 товар у живому каталозі — рахували штатним пошуком OpenCart: 55 сторінок по 100 позицій плюс 61 на останній. TTFB 801,2 мс, повне завантаження 930,7 мс при 153,8 КБ розмітки, вимір 31.07.2026. Знайдене: sitemap.xml і товарний фід віддають HTTP 200 з порожнім тілом, на сайті немає жодного лічильника аналітики, а на сторінці доставки не названо жодного перевізника.
оптовий магазин косметики для б'юті-індустрії, каталог близько 4 тис. позицій
Задача
Дати професійним закупівельникам навігацію за брендами й категоріями — декоративна косметика, догляд за волоссям, манікюр, депіляція — і коротке оформлення замовлення.
Рішення
OpenCart із канонічною картою сайту, оголошеною в robots.txt. WayForPay, післяплата й рахунок у банку, Нова Пошта й Укрпошта. Шість типів JSON-LD на головній, дві мовні версії з hreflang і перемикачем.
Результат
Канонічна карта сайту: 3 947 товарів, 166 брендів, 47 категорій, 6 інформаційних сторінок і головна — разом 4 167 адрес. TTFB 576,8 мс при 192,4 КБ HTML, вимір 31.07.2026. Знайдене: паралельно живе стара карта сайту — 7 782 записи на 2 755 унікальних адрес, 2 454 з них повторені по три рази, і жодної адреси другої мовної версії в ній немає.
виробник натуральної косметики на продуктах бджільництва
Задача
Тримати розповідь про виробництво поруч із карткою товару й не роздувати сторінку.
Рішення
OpenCart, дві мовні версії, LiqPay і картка ПриватБанку, післяплата, доставка Новою Поштою, розмітка Store, Organization, ContactPoint і SearchAction.
Результат
Найшвидша перша відповідь у вибірці — 126,3 мс, повне завантаження 172,4 мс при 196,3 КБ HTML. Каталог невеликий: 91 листова сторінка, з них 10 інформаційних, тобто 81 товарна. Вимір 31.07.2026. Знайдене: у карті сайту 271 запис на 116 унікальних адрес, окремі товари продубльовані по 2–4 рази; аналітика зупинилась на Universal Analytics, GA4 у коді немає.
Що входить
Повний перелік робіт і того, що ви отримуєте на виході
Каталог із двома входами — за типом засобу й за брендом: покупець за «тоніком» і покупець за конкретним брендом заходять різними дверима
Відтінки й об'єми як опції однієї картки з canonical на основну адресу — одна сторінка замість десятка майже однакових
Фільтр за типом шкіри чи волосся, призначенням, брендом і об'ємом — по характеристиках товару, а не по словах в описі
Імпорт прайсу з CSV або XML із мапінгом полів і розкладом оновлення цін та залишків: менеджер не вбиває ціни руками
Оплата: LiqPay, WayForPay, Privat24, monobank, післяплата з умовою завдатку, безготівковий рахунок для салонів
Доставка: Нова Пошта з вибором відділення прямо в чекауті, Укрпошта, кур'єр, самовивіз — адресу більше не уточнюють дзвінком
Технічне SEO: ЧПУ, canonical на варіаціях, унікальні title, карта сайту без повторів
Мікророзмітка JSON-LD: Store, Organization, Product, BreadcrumbList — щоб у видачі була ціна й наявність, якщо Google вирішить їх показати
Аналітика: GTM, GA4, події перегляду картки, кошика й покупки, ідентифікатор товару в рекламні системи — інакше кампанії нема на чому оптимізувати
Передача: доступи, письмова інструкція, прохід адмінки з вашим менеджером на живому замовленні
Умови: передоплата 50%, два раунди правок на етапі дизайну, гарантійний строк 30 календарних днів
Коли ця послуга не підходить
Що не входить у роботу — щоб не було сюрпризів на здачі
Опис складу й властивостей засобів — фактуру дає бренд або ваш технолог
Фотозйомка й ретуш свотчів відтінків
Реклама, інфлюенсер-маркетинг і розсилки після запуску
Наповнення каталогу вручну понад узгоджений обсяг
Хостинг, домен, еквайринг
Як проходить робота
Прозорі етапи з погодженням на кожному кроці
Загальний строк:28–48 днів
1
Аудит прайсу й технічне завдання
3–5 робочих днів
Рахуємо варіативність: скільки позицій має відтінки, об'єми чи набори і в скільки сторінок це розгортається. Тут же розбираємо поточний сайт, якщо він є. На виході — ТЗ, за яким рахується кошторис і приймається робота.
2
Структура каталогу: типи, бренди, варіації
4–6 робочих днів
Дерево категорій, набір характеристик для фільтра, правило «опція чи окрема картка» по кожному типу товару, список фільтрових комбінацій, які відкриваємо в індекс. Погоджуємо до дизайну.
3
Дизайн
5–9 робочих днів
Головна, категорія, картка з вибором відтінку й об'єму, сторінка бренду, кошик, чекаут. Тут же фіксуємо цільову вагу сторінки: у виміряних б'юті-магазинах розмітка головної важить від 153,8 до 196,3 КБ.
4
Збірка магазину
8–13 робочих днів
Верстка теми, каталог і опції товару, кошик і чекаут, ролі в адмінці, сторінки оплати, доставки й повернення.
5
Імпорт каталогу й розкладка варіацій
5–9 робочих днів
Мапінг полів прайсу, розбір відтінків і об'ємів на атрибути, тестове заливання, звірка кількості карток двома методами, розклад оновлення цін і залишків.
6
Інтеграції, аналітика, передача
3–6 робочих днів
Оплата й доставка, GTM і GA4 з подіями кошика та покупки, JSON-LD, карта сайту без повторів, наскрізний прогін замовлення від кошика до ТТН, прохід адмінки з вашим менеджером.
Безкоштовний аудит: рахуємо, у скільки сторінок розгорнеться ваш прайс
У б'юті-каталозі найдорожче коштує не дизайн, а варіативність. Один засіб живе в трьох об'ємах і восьми відтінках — і від того, як ви це заведете, залежить і кошторис, і подальша індексація. Аудит дає цю цифру до початку робіт.
Що міряємо
Варіативність асортиментуСкільки позицій має відтінки, об'єми чи набори і скільки сторінок вони дадуть у розгорнутому вигляді. У виміряному нами магазині професійної косметики каталог налічує 5 561 позицію, в оптовому б'юті-магазині — 3 947 товарів і 166 брендів.
Навігація за брендамиЧи є окремі сторінки брендів і чи потрапляють вони в карту сайту. В оптовому б'юті-каталозі з нашої вибірки 166 брендових сторінок — це окремий і робочий вхід у каталог.
Швидкість каталогуПерша відповідь сервера й вага HTML. У магазині професійної косметики ми міряли 801,2 мс першої відповіді при 153,8 КБ розмітки — розмітка легка, а відгук повільний, і причина не в дизайні.
Карта сайту й дубліСкільки записів припадає на одну унікальну адресу. У магазині натуральної косметики ми знайшли 271 запис на 116 адрес — окремі товари продубльовані по 2–4 рази.
Оплата й правила післяплатиЩо підключено зараз і які умови завдатку. У ніші з високою часткою відмов від посилок це прямо впливає на гроші: в одному з виміряних магазинів післяплата дозволена лише із завдатком.
Аналітика й рекламаЧи живі лічильники й чи передаються події кошика. Косметика — рекламна ніша, без коректних подій оптимізувати кампанії немає на чому.
Що ви отримуєте на руки
Цифру, у скільки сторінок розгорнеться ваш прайс з урахуванням відтінків і об'ємів.
Документ по поточному сайту: адреси в карті сайту й дублі, швидкість, вага HTML, оплати й доставки.
Список знахідок, які варто закрити до запуску.
Розмову на 30–40 хвилин по документу.
Строк: 2–4 робочих дні
Чому це безкоштовно
Бо без цієї цифри вилка була б вигадкою: різниця між каталогом на дві й на шість тисяч сторінок — це різні строки імпорту, різна структура фільтрів і різна робота з дублями. Порахувати дешевше, ніж вгадувати. Документ ваш у будь-якому разі.
Що далі
Після аудиту — сума й строк по етапах із датами, договір, рахунок і акт.
Форма коротка: контакт і адреса сайту
Працюємо офіційно
Договір, акт і рахунок — на кожен проєкт, а не тільки на великий. Без документів у вас немає ні прав на роботу, ні підстави провести витрати.
Договір, акт і гарантія 30 днів
На кожен проєкт письмовий договір: обсяг, строки, сума, порядок приймання. Після здачі — акт і рахунок, а далі 30 календарних днів гарантії: помилки з нашої вини усуваємо безоплатно. Усне з дзвінка дублюємо письмово того ж дня — домовленість, якої немає в тексті, не рахується.
ФОП і безготівковий розрахунок
Виконавець — зареєстрований ФОП. Оплата на рахунок із закривними документами, які бухгалтерія проведе як витрати. Курс для гривневої оплати фіксується договором, а не з’ясовується постфактум.
Права й доступи — ваші
Код, дизайн і матеріали переходять до вас після повної оплати. Домен, хостинг, репозиторій, аналітику й рекламні кабінети оформлюємо на вас — щоб сайт не залежав від підрядника. NDA підписуємо на запит, після завершення свої доступи видаляємо самі.
Портал клієнта замість переписки
На час роботи ви отримуєте доступ до порталу: договори, рахунки, акти й стан проєкту в одному місці. Документи формуються з даних угоди, тому реквізити й суми в них не розходяться, а про оплати й дедлайни нагадує система, а не пам’ять менеджера.
Замовники з Європи
Серед робіт — проєкти для Норвегії, Болгарії та Іспанії: болгарський магазин трьома мовами з кур’єрською доставкою, іспанський з оплатою карткою й переказом, норвезький сайт клініки. Це видно в портфоліо, а не тільки в описі.
Цифри, які можна перевірити
Кожен кейс у портфоліо — з посиланням на живий сайт і технічним виміром: швидкість відповіді, вага сторінки, обсяг каталогу, знайдені дефекти. Ці цифри можна зняти самому й звірити з нашими.
Спершу аудит, потім сума
Прайсу на сайті немає навмисно: обсяг тієї самої роботи у двох клієнтів відрізняється в рази, і цифра «від» нічого не пояснює. Спершу безкоштовний розбір — рахуємо ваші сторінки, дублі й швидкість, — потім називаємо суму й строк і фіксуємо їх у договорі.
Кажемо «ні», коли не впевнені
Якщо задача не наша, строк нереальний або послуга вам просто не потрібна — скажемо це першим листом, а не після передоплати. Гарантій позицій у пошуку не даємо: їх не дає ніхто, а обіцянка без механізму — це продаж, а не робота.
NDA підписуємо на запит. Після завершення співпраці наші доступи до ваших сервісів видаляємо самі й повідомляємо про це.
Не знайшли свій випадок?
Опишіть, як це влаштовано у вас, — відповімо, чи підходить «Розробка інтернет-магазину косметики» і що це означає у вашій ситуації. Без брифу й без дзвінка: одне питання, одна відповідь.
Що впливає на вартість
Чому дві однакові на вигляд задачі рахуються по-різному — і що саме ми міряємо на аудиті
Варіативність асортиментуГоловний драйвер. Прайс на дві тисячі позицій після розгортання відтінків і об'ємів стає каталогом на кілька тисяч адрес — це інший строк імпорту, інша структура фільтрів і інша робота з дублями.
Стан прайсуОкремі колонки «бренд», «об'єм», «відтінок», «артикул» — імпорт іде автоматом. Усе одним текстовим полем на кшталт «Тон 03 бежевий, 50 мл» — розбір напівавтоматичний, і на кількох тисячах позицій це окремий рядок кошторису.
Кількість брендівКожен бренд — це сторінка, логотип, короткий текст і місце в карті сайту. Сто брендів і шістсот — різний обсяг ручної роботи, хоча в прайсі це один стовпчик.
Фото і свотчіЗнімки на однорідному фоні й свотчі відтінків економлять тижні збірки. Свотчів немає — покупець вибирає навмання, і повернень стає більше; зйомку ми при цьому не робимо, це окремий підрядник.
Роздріб плюс салониДві цінові логіки на одному каталозі — це групи покупців, окремі правила кратності й перевірка кожної комбінації на живому замовленні, а не галочка в налаштуваннях.
ТемпПрискорена черга йде з надбавкою й має сенс лише тоді, коли контент готовий на старті, а погодження вкладаються в один робочий день. Інакше швидше не стає — стає дорожче.
Технології та інтеграції
На чому будуємо і з чим це з’єднується
Стек
OpenCart 4.x — ставимо за замовчуванням, це гілка, яку розвивають
OpenCart 3.x — коли потрібен модуль без збірки під 4.x; межа: гілка доживає своє, оновлення робимо руками
PHP і MySQL — межа: варіації живуть в опціях товару, і на кількох тисячах комбінацій запити до бази доводиться кешувати окремо
nginx, HTTP/2, HTTPS + HSTS — межа: сертифікат шифрує канал і не робить магазин безпечним сам по собі
OCFilter або аналог — фільтр за характеристиками; межа: плодить комбінаторні адреси, які треба закривати канонікалами й robots
Cloudflare — межа: кеш прикриває віддачу сторінок, але не прискорює адмінку й імпорт
Інтеграції
LiqPay
WayForPay
Privat24
monobank
післяплата із завдатком
безготівковий розрахунок
Нова Пошта
Укрпошта
Google Tag Manager
GA4
Google Ads
Meta Pixel
Instagram Shopping
TikTok
eSputnik
Telegram
Свій магазин косметики проти вітрини в Instagram і торгівлі на маркетплейсі
Чим цей варіант відрізняється від «Instagram-вітрина / маркетплейс»
Instagram-вітрина / маркетплейсНаш підхід
Відтінки й об'ємиInstagram: перелік у підписі до фото. Маркетплейс: своя схема варіацій, змінити її не можнаопції в картці плюс фільтр за призначенням і типом шкіри
Хто володіє каталогомInstagram: акаунт може бути заблокований. Маркетплейс: правила майданчикафайли й база у вас, вивантаження в будь-який момент
Ціни для салонівInstagram: прайс окремим файлом. Маркетплейс: одна ціна для всіхгрупи покупців, оптова колонка відкривається після входу
Комісія з продажуInstagram: немає. Маркетплейс: комісія з кожного замовленнянемає, лише хостинг, домен і еквайринг
Звідки береться попитInstagram: ваші підписники. Маркетплейс: готовий трафік майданчикапошук, реклама і прямі заходи — і будувати цей потік доводиться самому
Що потрібно від вас
Без цього не почнемо — краще підготувати заздалегідь
1Прайс у CSV або XML із полями: бренд, назва, об'єм, відтінок, артикул, ціна, залишок. Саме він показує, у скільки сторінок розгорнеться каталог.
2Фото засобів і, якщо є, свотчі відтінків — у цій ніші свотч продає сильніше за опис.
3Список характеристик для фільтра: тип шкіри чи волосся, призначення, об'єм.
4Ваші правила післяплати й завдатку, якщо вони вже сформульовані.
5Доступи до хостингу й домена — або згоду, щоб хостинг підібрали ми.
6Одну людину з правом затвердити структуру каталогу й макети без додаткових узгоджень.
Якщо чогось із цього немає — скажіть, підкажемо, як зібрати або зробимо самі окремою задачею.
Часті питання
Те, що питають найчастіше — з конкретними відповідями
відтінки й об'єми — це окремі товари чи опції однієї картки?
Дивимось, як шукає покупець. Відтінок обирають усередині картки — робимо опції, одна адреса, canonical на неї. Конкретний відтінок шукають окремим запитом і в нього свій артикул — окрема картка, але тоді під неї треба писати окремий title й окремий текст. Чим закінчується протилежне рішення без правил, добре видно на вимірі роздрібного магазину нижньої білизни: там кожен розмір і колір заведено окремою адресою, каталог розрісся до 115 456 позицій, і з вибірки в 150 адрес карти сайту 50 віддали редирект на іншу позицію — інший розмір або інший колір. У косметиці на місці розміру стоїть відтінок, механізм той самий. Наша рекомендація: варіації всередині картки за замовчуванням, окремі сторінки — лише під запити, які ви бачите у власній статистиці.
у нас кілька сотень брендів — як їх подати?
Окремими сторінками, які лежать у карті сайту й лінкуються з карток товару. В оптовому б'юті-каталозі з нашого виміру канонічна карта тримає 3 947 товарів, 166 брендів, 47 категорій і 6 інформаційних сторінок — разом 4 167 адрес. Бренд там працює другим повноцінним входом у каталог, а не списком логотипів у підвалі. Чесна межа: присутність сторінки в карті сайту не означає ні індексації, ні трафіку. Google це прямо пише, і сторінка бренду без власного тексту й без попиту цілком може бути проіндексована й не отримати жодного візиту.
магазин буде швидким при кількох тисячах позицій?
Швидкість залежить від налаштування, а не від кількості карток. У магазині професійної косметики на 5 561 позицію розмітка головної важить 153,8 КБ — це легко, — а перша відповідь сервера 801,2 мс. Поруч, у магазині натуральної косметики, сторінка важча (196,3 КБ), а відповідь 126,3 мс. Гальмує серверна частина й запити до бази, не верстка, і лікується це без редизайну. Чого швидкість не робить: вона не робить пропозицію привабливішою. Якщо ціна вища за ринок або позиції немає в наявності, швидкий сайт просто швидше покаже покупцю причину піти.
як не отримати тисячі однакових сторінок від фільтрів?
Фільтр за типом шкіри, призначенням і об'ємом породжує комбінаторну кількість адрес: кожна пара галочок технічно є окремою сторінкою. Тому в роботу входить список комбінацій, які ми відкриваємо свідомо — зазвичай це «бренд + категорія» і «категорія + призначення», — а решта закривається канонікалом на категорію й правилом у robots. Без цього ви отримаєте тисячі майже однакових сторінок в індексі, і це погіршення, а не приріст. Окремо: на каталозі до кількох сотень позицій складна фільтрація дає мало, там сильніше працює зрозуміле дерево категорій.
нам потрібні окремі ціни для салонів — це можливо?
Так, через групи покупців: салон після входу бачить свої ціни й кратність, роздрібний покупець — звичайну вітрину. Межа тут не технічна. Рахунок на сайті не робить вас постачальником для юрособи: закупівля впирається ще й у договір, відстрочку платежу, наявність під обсяг і персонального менеджера — сайт закриває тільки перший крок. Якщо опт у вас основний обсяг, каркас треба будувати навколо нього, а не добудовувати збоку; тоді дивіться сторінку про оптовий магазин.
що робити з післяплатою й відмовами від посилок?
Це комерційна настройка, і фіксувати її треба до запуску, а не після перших невикуплених посилок. У виміряному магазині професійної косметики післяплата дозволена лише за умови завдатку, а безкоштовна доставка починається від визначеної суми замовлення. Такі правила ми виводимо і в чекаут, і на сторінку оплати, щоб менеджер не переказував їх у кожному дзвінку. Там же типова діра: у тому самому магазині на сторінці доставки не названо жодного перевізника — ні Нової Пошти, ні Укрпошти. Покупець на цьому кроці просто не розуміє, як до нього приїде посилка.
скільки часу займе розробка і що її розтягує?
28–48 робочих днів від затвердження ТЗ. Розкладка: аудит прайсу й ТЗ 3–5 днів, структура каталогу 4–6, дизайн 5–9, збірка 8–13, імпорт із розкладкою варіацій 5–9, інтеграції з тестуванням і передачею 3–6. Найдовший етап — не збірка, а імпорт. Якщо відтінки в прайсі лежать одним текстовим полем на кшталт «Тон 03 бежевий, 50 мл», їх доводиться розбирати на атрибути напівавтоматично, і на кількох тисячах позицій це тижні. Саме тому робота починається з розбору прайсу, а не з макетів.
аналітика — це ж просто лічильник, навіщо про неї окремо?
Бо в косметиці трафік майже завжди платний, а без подій кошика й покупки кампанію нема на чому оптимізувати. З трьох виміряних б'юті-магазинів в одному немає жодного лічильника взагалі, у другому стоїть Universal Analytics, який не збирає дані з липня 2023 року, і GA4 у коді немає. Чого лічильник не робить: сам по собі він нічого не покращує, він лише дає можливість побачити. Плюс блокувальники, режим згоди й обмеження браузерів на cookie — GA4 показує тенденцію, а не бухгалтерську істину, і зводити його цифри з касою треба свідомо.
Надішліть прайс — порахуємо, у скільки сторінок він розгорнеться.
У відповідь — цифра по каталогу з урахуванням відтінків і об'ємів, документ по поточному сайту й план робіт по етапах із датами. Якщо магазин вам зараз не потрібен, почуєте це першим листом.
Прайса на сайті немає навмисно: обсяг тієї самої роботи у двох клієнтів відрізняється в рази, і цифра «від» у такому разі нічого не пояснює. Спершу безкоштовний аудит — рахуємо ваші сторінки, дублі й швидкість, — потім називаємо суму й строк і фіксуємо їх у договорі.