-20%SALE🛒🛒🛒
  • Інтернет-магазини · OpenCart 4.x

Магазин на 10 000+ товарів: каталог, карта сайту, швидкість

Великий каталог ламається не там, де його заливають, а там, де його потім читають — покупець і краулер. 31 липня 2026 року ми зняли показники з живих магазинів: 54 302 товари й 635 категорій віддають першу відповідь за 413,8 мс; 55 321 товарна сторінка на іншому магазині — за 840,5 мс; 116 841 адреса — за 1 544,5 мс. Той самий движок, різні кеш, тема й кількість модулів. Робота тут не «зробити магазин», а тримати три речі одночасно: імпорт, який не кладе сервер, карту сайту без дублів і сторінку категорії, яка збирається швидше за секунду. Орієнтир — від 2 790 EUR і 40 робочих днів; сума залежить від того, скільки адрес у вас насправді, а це видно тільки після розбору вивантаження.

Подивитись, як це працює
Вартість
після безкоштовного аудиту
Гарантія
30 днів після підписання акта
Найбільший каталог, який ми міряли
54 302 товари і 635 категорій при TTFB 413,8 мс
після безкоштовного аудиту
Вартість
30
Гарантія

днів після підписання акта

54 302
Найбільший каталог, який ми міряли

товари і 635 категорій при TTFB 413,8 мс

індекс із 32 файлів, 110 096 адрес на дві мови
Карта сайту того ж магазину
пошук OpenCart дав 54 501–54 600 позицій, розбіжність 0,4%
Крос-перевірка каталогу
дублі адрес: 33 493 записи на 8 690 унікальних
Що ламається найчастіше
від 2 790 EUR, 40–70 робочих днів
Орієнтир
Етапи роботи

Прозорі етапи з погодженням на кожному кроці

Загальний строк:40–70 днів

  1. Аудит каталогу і вимір поточного стану

    4–6 робочих днів

    Рахуємо адреси в карті сайту, унікальні картки, дублі, знімаємо TTFB і вагу HTML. Це база, з якою потім порівнюємо результат у акті приймання.

  2. ТЗ і схема імпорту

    4–6 робочих днів

    Мапінг полів прайсу на поля OpenCart, правила категорій і атрибутів, розклад оновлення. Тут же вирішуємо, що робити з позиціями, яких немає в наявності.

  3. Прототип каталогу і фільтра

    4–7 робочих днів

    Структура категорій, набір характеристик для фільтра, поведінка пагінації. Погоджуємо до дизайну: переробляти фільтр після верстки дорого.

  4. Дизайн і верстка

    8–14 робочих днів

    Сторінка категорії, картка товару, чекаут. Цільову вагу сторінки фіксуємо в ТЗ: у вибірці розкид HTML на тому самому движку — від 103,2 до 751,2 КБ.

  5. Збірка магазину й інтеграції

    9–16 робочих днів

    Оплата, доставка, аналітика, фіди. Паралельно — індекси MySQL і кеш під фактичний обсяг каталогу.

  6. Імпорт каталогу і чистка дублів

    7–14 робочих днів

    Заливання батчами з журналом помилок, звірка кількості двома методами, збірка sitemap-індексу підкартами, canonical на дублях.

  7. Навантажувальна перевірка, передача, запуск

    4–7 робочих днів

    Повторні заміри TTFB і ваги HTML, прохід сценарію імпорту з вашим менеджером, передача доступів та інструкції.

Технології та інтеграції

На чому будуємо і з чим це з'єднується

Стек

  • OpenCart 4.x — ставимо за замовчуванням
  • OpenCart 3.x — коли потрібен модуль, якого під 4.x ще немає
  • PHP
  • MySQL
  • nginx
  • HTTP/2
  • Cloudflare
  • sitemap-індекс з підкартами по 3 000 URL
  • ocmod
  • модулі NeoSeo
  • теми chameleon, revolution, UniShop

Інтеграції

  • LiqPay
  • monobank «Покупка частинами»
  • безготівковий розрахунок з ПДВ
  • розстрочка онлайн
  • Нова Пошта
  • Meest Express
  • Rozetka Delivery
  • майданчик Rozetka
  • інтеграція з 1С (залишки і ціни)
  • Google Tag Manager
  • GA4
  • Google Ads
  • Binotel
  • eSputnik
  • Google Sign-In
Що входить

Повний перелік робіт і того, що ви отримуєте на виході

  • Аудит поточного каталогу: скільки реально карток, скільки адрес у карті сайту, скільки з них дублі
  • Консольний імпорт прайсу батчами з журналом помилок — без завантаження через адмінку
  • Мапінг полів вашого CSV або XML на поля OpenCart: артикул, ціна, залишок, категорія, атрибути
  • Розклад оновлення цін і залишків: щодня або щогодини, залежно від того, як швидко рухається склад
  • Фільтр за характеристиками з кешованим підрахунком, щоб лічильник біля значення не перераховувався на кожен клік
  • Sitemap-індекс із підкартами по 3 000 адрес: окремо товари, категорії, інформаційні сторінки
  • Чистка дублів: одна картка — одна канонічна адреса, решта закриті canonical
  • Перегляд індексів MySQL і кешу категорій під фактичний обсяг каталогу
  • Заміри TTFB і ваги HTML сторінки категорії до і після, зафіксовані в акті приймання
  • Передача: доступи, інструкція з імпорту, прохід сценарію оновлення прайсу з вашим менеджером
Коли ця послуга не підходить

Що не входить у роботу — щоб не було сюрпризів на здачі

  • Наповнення карток контентом: описи, характеристики й фото готуєте ви
  • Копірайтинг описів на тисячі позицій
  • Просування й реклама після запуску
  • Хостинг, домен, оплата CDN
  • Виправлення даних у прайсі постачальника: якщо в джерелі каша, імпорт перенесе кашу
Кому підходить

Ситуації, у яких ця послуга дає результат

Сценарій 1 із 4

Прайс постачальника на 10–60 тисяч позицій

Файл приходить щодня або щогодини, і його треба залити так, щоб сайт лишався живим. Через адмінку це не робиться: вона падає по таймауту. Потрібен консольний імпорт батчами з журналом помилок, переглянуті індекси MySQL і кеш категорій під фактичний обсяг.

Розберемо вашу ситуацію на безкоштовному аудиті
Великий каталог: OpenCart проти SaaS-конструктора і самописного рішення

Чим цей варіант відрізняється від альтернативи

Ліміт позиційобмежений залізом і кешем, не платформою: 54 302 товари віддаються за 413,8 мс
Імпорт прайсуконсольний, батчами, за розкладом, із журналом помилок
Карта сайту на 50 тисяч адресіндекс із підкартами по 3 000 адрес
Вартість входувід 2 790 EUR разово, далі хостинг
Хто чинить, коли зламалосьбудь-який PHP-розробник: код відкритий і документований

  • Договір, акт і гарантія 30 днів

    На кожен проєкт письмовий договір: обсяг, строки, сума, порядок приймання. Після здачі — акт і рахунок, а далі 30 календарних днів гарантії: помилки з нашої вини усуваємо безоплатно. Усне з дзвінка дублюємо письмово того ж дня.

  • ФОП і безготівковий розрахунок

    Виконавець — зареєстрований ФОП. Оплата на рахунок із закривними документами.

  • Права й доступи — ваші

    Код, дизайн і матеріали переходять до вас після повної оплати. Домен, хостинг, репозиторій, аналітику оформлюємо на вас.

  • Портал клієнта замість переписки

    На час роботи ви отримуєте доступ до порталу: договори, рахунки, акти й стан проєкту в одному місці.

  • Замовники з Європи

    Серед робіт — проєкти для Норвегії, Болгарії та Іспанії.

  • Цифри, які можна перевірити

    Кожен кейс у портфоліо — з посиланням на живий сайт і технічним виміром.

  • Спершу аудит, потім сума

    Прайсу на сайті немає навмисно: обсяг тієї самої роботи у двох клієнтів відрізняється в рази.

  • Кажемо «ні», коли не впевнені

    Якщо задача не наша або строк нереальний — скажемо одразу.

Не знайшли свій випадок?

Опишіть, як це влаштовано у вас, — відповімо, чи підходить «Інтернет-магазин з великим каталогом на OpenCart» і що це означає у вашій ситуації. Без брифу й без дзвінка: одне питання, одна відповідь.

Що впливає на вартість

Чому дві однакові на вигляд задачі рахуються по-різному

  • Фактичний обсяг каталогуРізниця між 10 і 50 тисячами позицій — це не множник на ціну, а інша схема імпорту: батчі, окремі індекси, кеш категорій. Тому перше, що ми робимо, — рахуємо, скільки адрес у вас реально є, двома незалежними методами.
  • Стан прайсуГотовий CSV з артикулом, ціною, залишком і атрибутами — це кілька днів мапінгу. Прайс, де всі характеристики лежать текстом в одному полі, доводиться розбирати парсером, і це окремий рядок кошторису.
  • Глибина фільтраФільтр за 5 характеристиками і фільтр за 40 — це різні запити до бази. На великому каталозі підрахунок кількості позицій у кожному значенні доводиться кешувати окремо, інакше кожен клік по фільтру збирає сторінку заново.
  • Стан поточного магазину, якщо переносимоПравки в ядрі, самописні модулі й накопичені дублі адрес збільшують обсяг. Оцінку даємо після огляду файлів і бази: за скріншотом адмінки такого не видно.
Кейси

Задачі та результат у цифрах — усі показники зняті нашим виміром

інтернет-магазин тактичного спорядження, каталог понад 50 тис. позицій

Задача
Утримати надвеликий асортимент із детальною фільтрацією за характеристиками і не втратити швидкість віддачі сторінок.
Рішення
OpenCart 3 за Cloudflare, дві мовні версії, карта сайту як індекс із 32 товарних файлів по 3 500 адрес.
Результат
54 302 товари і 635 категорій, підтверджено двома методами: індекс карти сайту дає 110 096 адрес на дві мови, перехресна перевірка пошуком OpenCart — 54 501–54 600 позицій, розбіжність 0,4%. TTFB 413,8 мс, повне завантаження HTML 511,1 мс при 421,5 КБ. Дев'ять типів JSON-LD. Вимір 31.07.2026.

магазин садової техніки та запчастин із глибокою вкладеністю категорій

Задача
Продавати техніку й запчастини до неї з фільтрами за потужністю й типом двигуна, вкладеність категорій до чотирьох рівнів.
Рішення
OpenCart 3.x, nginx, HTTP/2. Вісім способів оплати, чотири перевізники. Карта сайту розбита на підкарти по 3 000 адрес.
Результат
55 321 товарна сторінка (18 підкарт по 3 000 адрес плюс 1 321 у дев'ятнадцятій) і 3 868 категорій — 59 189 адрес разом. При такому обсязі перша відповідь сервера 840,5 мс, повне завантаження HTML 997,4 мс при 454,5 КБ. Це найповільніший TTFB серед виміряних магазинів із каталогом понад 50 тисяч позицій. Вимір 31.07.2026.

оптовий магазин нижньої білизни, каталог понад 13 тис. позицій

Задача
Дати підбір за розмірами й кольорами всередині моделі й тримати карту сайту чистою на такому обсязі.
Рішення
OpenCart, розмірні сітки й фасування, оптові ціни за рівнями, вісім способів розрахунку.
Результат
13 590 адрес у карті сайту — 13 428 сторінок товарів, 161 категорія і головна — з яких лише один дублікат, 0,007%. TTFB 289 мс при каталозі на 13 тисяч позицій. Знайдений дефект: HTML головної 751,2 КБ, найважчий документ вибірки, і робоча карта сайту лежить на нестандартній адресі. Вимір 31.07.2026.

інтернет-магазин професійного інструменту, каталог понад 6 тис. позицій

Задача
Продавати інструмент одночасно роздрібному майстру й компанії з ПДВ, каталог із фільтрами за типом інструменту.
Рішення
OpenCart, дві мовні версії, десять способів оплати, чотири способи доставки.
Результат
25 537 записів у карті сайту на 6 857 унікальних адрес — 6 486 карток товару і 361 категорія. Тобто кожен товар індексується в середньому 3,9 раза під різними шляхами категорій, а сама карта збирається 34,2 секунди. TTFB 671,2 мс при 407,8 КБ HTML. Вимір 31.07.2026.
Що потрібно від вас

Без цього не почнемо — краще підготувати заздалегідь

  1. Вивантаження прайсу в тому вигляді, у якому воно приходить від постачальника — саме воно визначає обсяг робіт з імпорту.
  2. Доступ до поточного сайту й бази, якщо магазин уже є: без нього кількість дублів адрес не порахувати.
  3. Перелік характеристик, за якими покупець має фільтрувати, з пріоритетом — фільтр за 40 полями і за 7 коштує по-різному.
  4. Доступи до хостингу: на такому каталозі важливо бачити реальні ресурси сервера до, а не після старту.
  5. Доступ до Search Console, якщо сайт уже індексується — щоб зняти базові цифри до робіт.
  6. Одну людину з правом ухвалювати рішення по структурі каталогу.

Якщо чогось із цього немає — скажіть, підкажемо, як зібрати або зробимо самі окремою задачею.

Часті питання

Те, що питають найчастіше — з конкретними відповідями

скільки товарів OpenCart витримає насправді?

Ми міряли 54 302 товари при першій відповіді 413,8 мс і 55 321 товарну сторінку при 840,5 мс. Обидва магазини живі й працюють. Обмеження тут не в кількості рядків у базі, а в тому, як зібрана сторінка категорії: скільки запитів вона робить, чи кешований підрахунок у фільтрі, скільки модулів висить на кожному завантаженні.

на якій версії OpenCart ви збираєте великий каталог?

За замовчуванням на 4.x. Сам обсяг каталогу від версії ядра майже не залежить: його тримають індекси MySQL, кеш категорій і те, як розбита карта сайту. Наш найбільший вимір — 54 302 товари при першій відповіді сервера 413,8 мс — зроблений на 3.x; магазинів такого обсягу на 4.x ми ще не міряли, тому цифру для четвірки не обіцяємо. Від версії залежить інше — модулі: у 4.x переписали систему подій, і частина українських складань (консольний імпорт прайсів, генератори sitemap-індексу, вивантаження на майданчики) поки виходить лише під 3.x. Тому список модулів під ваш каталог звіряємо на брифі: усе критичне є під 4.x — ставимо 4.x; чогось ще немає — обговорюємо 3.x на старті, щоб не впертись у це на етапі інтеграцій.

скільки це коштує і чому вилка така широка?

Наша вилка на каталог від 10 тисяч позицій — 2 790–5 220 EUR. Широка вона тому, що всередині ховаються дві різні задачі. Перша: один чистий прайс, одна мова, фільтр за сімома характеристиками — це нижня межа. Друга: кілька джерел даних із різними форматами, дві мови, глибокий фільтр і десятки тисяч накопичених дублів адрес, які треба розібрати. Куди саме потрапляє ваш проєкт, видно після розбору вивантаження.

чому 40–70 робочих днів, а не швидше?

Половина строку — це не дизайн. Аудит і вимір поточного стану 4–6 днів, ТЗ і схема імпорту 4–6, прототип каталогу й фільтра 4–7, дизайн і верстка 8–14, збірка й інтеграції 9–16, імпорт і чистка дублів 7–14, навантажувальна перевірка й передача 4–7. Найдовші етапи — збірка й імпорт, і саме їх не виходить стиснути: заливання батчами з перевіркою займає стільки, скільки займає.

як ви рахуєте, скільки в мене насправді товарів?

Двома незалежними методами й порівнюємо результат. Перший — карта сайту: рахуємо записи в кожній підкарті. Другий — штатний пошук OpenCart із порожнім запитом і лімітом 100 на сторінку. На магазині спорядження перший метод дав 54 302 товари, другий — 54 501–54 600: розбіжність 0,4%, і це нормально. Якщо методи розходяться в рази — значить, у карті сайту дублі, і це вже окремий рядок робіт.

що не так із дублями адрес і чому це коштує грошей?

Дубль — це коли та сама картка доступна за кількома шляхами категорій, і всі вони потрапляють у карту сайту. Ми фіксували 33 493 записи на 8 690 унікальних адрес у магазині садової техніки, 25 537 на 6 857 у магазині інструменту, 3 971 на 590 у магазині спецій. Краулер витрачає бюджет на перегляд одного й того самого, а частина каталогу лишається поза індексом. Розбір таких адрес — окремий етап, і він тим довший, чим більше історії накопичилось.

чому карта сайту генерується десятки секунд і чи це проблема?

Проблема. Стандартний генератор OpenCart збирає всю карту одним запитом, і на великому каталозі це 34,2 секунди — саме стільки ми зафіксували в магазині інструменту. Краулер стільки не чекає. Рішення — sitemap-індекс: окремі підкарти по 3 000 адрес на товари, категорії й інформаційні сторінки. Так зроблено в магазині спорядження: 32 файли замість одного.

а якщо каталог оновлюється щогодини?

Тоді імпорт ставиться на розклад і працює батчами у фоні, а не разовим завантаженням. Важливо розділити дві речі: повний імпорт із створенням нових карток і швидке оновлення тільки цін та залишків. Друге виконується в рази швидше й не чіпає решту полів. Розклад під вашу частоту фіксуємо в ТЗ на етапі схеми імпорту.

ви гарантуєте, що каталог зайде в індекс?

Ні, і ніхто чесний такого не пообіцяє. Швидкість і повноту сканування визначає Google. Наша зона — щоб у карті сайту не було дублів, щоб вона віддавалась швидко й підкартами, щоб сторінка категорії збиралась швидше за секунду, а canonical стояли правильно. Це те, що ми можемо поміряти до й після і показати цифрами в акті.

Надішліть вивантаження прайсу — порахуємо, скільки у вас адрес насправді.

У відповідь — кількість карток двома методами, оцінка дублів у поточній карті сайту, схема імпорту й кошторис по етапах із календарними датами.

Дивитись кейси
  • Відповідь протягом 2 годин
  • Без зобов’язань
  • Працюємо за договором

Прайса на сайті немає навмисно: обсяг тієї самої роботи у двох клієнтів відрізняється в рази, і цифра «від» у такому разі нічого не пояснює. Спершу безкоштовний аудит — рахуємо ваші сторінки, дублі й швидкість, — потім називаємо суму й строк і фіксуємо їх у договорі.