Розробка інтернет-магазину книг упирається в дані, а не в макет: одну й ту саму книгу треба знайти чотирма шляхами — за автором, за серією, за видавництвом і за темою. Робимо такий магазин на OpenCart: атрибути винесені в поля, сторінки авторів і серій живуть окремими адресами, прайси постачальників зводяться за ISBN. Пошук шукає за прізвищем і за частиною назви, а не за точним входженням. Суму називаємо після безкоштовного аудиту ваших прайсів — до нього це була б здогадка.
Показники зняті нашим виміром на живих сайтах відповідного масштабу.
після безкоштовного аудиту
Вартість
30
Гарантія
днів після підписання акта
чотири: автор, серія, видавництво, тема
Шляхів до однієї книги
ISBN; без нього частину позицій зводять руками
Ключ зведення прайсів
25–50
Строк
робочих днів від затвердження ТЗ
3,9
Дублювання адрес, яке ми міряли
адреси на один товар у магазині інструменту
554 КБ
Сторінка категорії зі 100 товарами
HTML у виміряному магазині
після безкоштовного аудиту даних, 3–5 робочих днів
Ціна
передоплата 50%, 2 раунди правок, гарантія 30 днів
Умови
Кому підходить
Ситуації, у яких ця послуга дає результат
Ситуація 1 з 4
Книгарня працює офлайн, а замовлення приходять у Direct
Продавець фотографує обкладинку, уточнює наявність по телефону й переписує адресу відділення в блокнот. Магазин переносить цю роботу в чекаут: покупець бачить, що книга є, обирає відділення й платить. Менеджер отримує замовлення, а не переписку з трьох повідомлень.
Розберемо вашу ситуацію на безкоштовному аудиті
Ситуація 2 з 4
Ви видавництво і продаєте свій каталог поруч із чужим
Власні видання ви знаєте до сторінки, а от книги партнерів приходять прайсами різного вигляду. Тут виграє не дизайн, а зведення: спільний ключ ISBN, розкладка атрибутів по полях і правило, що робити з позицією, якої немає в жодному з джерел повністю.
Ситуація 3 з 4
Магазин уже є, але покупець не знаходить книгу
Типова картина: назва, автор і видавництво лежать одним текстом в описі, тому фільтра немає з чого зібрати, а пошук працює за точним входженням і мовчить на будь-якій помилці. Це задача про модель даних і пошук, і вона вирішується без переробки дизайну.
Ситуація 4 з 4
Нішева книгарня: дитяча, фахова або іноземними мовами
Тут покупець приходить із дуже вузьким запитом — вік дитини, спеціальність, мова оригіналу, рівень володіння. Такі запити закриваються не категоріями, а атрибутами й посадковими сторінками під фільтр, і закладати їх треба в структуру, а не дописувати потім.
Що входить
Повний перелік робіт і того, що ви отримуєте на виході
Каталог за темою й віковою аудиторією з фільтром за мовою, палітуркою, видавництвом і роком — покупець сам звужує тисячі назв до десятка
Сторінки авторів і серій окремими адресами з переліком позицій — саме за прізвищем книгу шукають найчастіше
Сторінки видавництв із логотипом і повним переліком книг — окремий вхід для тих, хто збирає за видавцем
Картка з ISBN, сторінками, форматом, мовою оригіналу й перекладачем як полями — з полів збирається фільтр, з опису не збирається нічого
Внутрішній пошук за автором, назвою й частиною слова з підказками під час набору
Перевидання й палітурки однією карткою з вибором варіанта і canonical на основну адресу — щоб версії книги не конкурували між собою
Імпорт прайсів за ISBN із розкладкою атрибутів по полях — новинки заводяться самі, наявність оновлюється за розкладом
Обкладинки: окремі розміри під список і під картку, сучасні формати, відкладене завантаження
Блоки «цього ж автора» і «з цієї серії» в картці — головний шлях до другої позиції в кошику
Оплата й доставка: картка онлайн, післяплата, Нова Пошта, Укрпошта, самовивіз
Що не входить у роботу — щоб не було сюрпризів на здачі
Написання анотацій і редакторських рецензій
Права на використання описів і обкладинок від видавництв
Продаж електронних книг із захистом від копіювання
Реклама після запуску
Хостинг, домен, еквайринг
Безкоштовний аудит книжкового каталогу
Книгарня живе на чужих даних: описи, обкладинки й наявність приходять від видавництв і дистриб'юторів. Аудит дивиться, у якому вони стані й скільки роботи треба, щоб із них зібрався каталог, у якому книгу можна знайти.
Що міряємо
Джерела даних і їхній форматСкільки постачальників, у якому вигляді вони віддають прайс, чи є ISBN і чи він єдиний ключ. Від цієї відповіді залежить, буде наповнення автоматичним чи ручним.
Повнота атрибутівЧи є автор, видавництво, серія, мова, рік, палітурка й кількість сторінок окремими полями. Без цього фільтр не збереться, а сторінки авторів і серій нема з чого будувати.
Дублі й перевиданняСкільки позицій — це та сама книга в іншій палітурці. У виміряному нами магазині інструменту кожен товар лежав у карті сайту в середньому 3,9 раза під різними шляхами категорій.
ОбкладинкиЧи є зображення до кожної позиції, у якій вони роздільності й скільки важать. Обкладинка — єдине зображення книги, і саме вона робить сторінку категорії важкою.
Стан пошукуЧи знаходить внутрішній пошук книгу за прізвищем автора, частиною назви й помилкою в написанні. Заразом перевіряємо, чи віддає він повну видачу — нею ми міряємо розмір каталогу.
Швидкість каталогуПерша відповідь сервера й вага сторінки категорії. Для орієнтира: у виміряному нами магазині категорія зі 100 товарами важила 554 КБ самого лише HTML.
Що ви отримуєте на руки
Документ по даних: перелік джерел, повнота атрибутів, оцінка дублів і перевидань.
Схему майбутнього каталогу: розділи, серії, сторінки авторів і видавництв.
Оцінку робіт з наповнення: скільки позицій підуть автоматично, скільки доведеться дозаводити руками.
Розмову на 30–40 хвилин по документу.
Строк: 3–5 робочих днів
Чому це безкоштовно
Бо в книгах промахуються не на верстці, а на даних: прайс постачальника виявляється без ISBN або без авторів, і половина каталогу після імпорту не фільтрується. Побачити це можна лише на реальних файлах, а не з переліку побажань.
Що далі
Після аудиту — сума й строк по етапах із датами, договір, рахунок, акт. Працюємо і з ринком України, і з замовниками з ЄС.
Форма коротка: контакт і адреса сайту
Працюємо офіційно
Договір, акт і рахунок — на кожен проєкт, а не тільки на великий. Без документів у вас немає ні прав на роботу, ні підстави провести витрати.
Договір, акт і гарантія 30 днів
На кожен проєкт письмовий договір: обсяг, строки, сума, порядок приймання. Після здачі — акт і рахунок, а далі 30 календарних днів гарантії: помилки з нашої вини усуваємо безоплатно. Усне з дзвінка дублюємо письмово того ж дня — домовленість, якої немає в тексті, не рахується.
ФОП і безготівковий розрахунок
Виконавець — зареєстрований ФОП. Оплата на рахунок із закривними документами, які бухгалтерія проведе як витрати. Курс для гривневої оплати фіксується договором, а не з’ясовується постфактум.
Права й доступи — ваші
Код, дизайн і матеріали переходять до вас після повної оплати. Домен, хостинг, репозиторій, аналітику й рекламні кабінети оформлюємо на вас — щоб сайт не залежав від підрядника. NDA підписуємо на запит, після завершення свої доступи видаляємо самі.
Портал клієнта замість переписки
На час роботи ви отримуєте доступ до порталу: договори, рахунки, акти й стан проєкту в одному місці. Документи формуються з даних угоди, тому реквізити й суми в них не розходяться, а про оплати й дедлайни нагадує система, а не пам’ять менеджера.
Замовники з Європи
Серед робіт — проєкти для Норвегії, Болгарії та Іспанії: болгарський магазин трьома мовами з кур’єрською доставкою, іспанський з оплатою карткою й переказом, норвезький сайт клініки. Це видно в портфоліо, а не тільки в описі.
Цифри, які можна перевірити
Кожен кейс у портфоліо — з посиланням на живий сайт і технічним виміром: швидкість відповіді, вага сторінки, обсяг каталогу, знайдені дефекти. Ці цифри можна зняти самому й звірити з нашими.
Спершу аудит, потім сума
Прайсу на сайті немає навмисно: обсяг тієї самої роботи у двох клієнтів відрізняється в рази, і цифра «від» нічого не пояснює. Спершу безкоштовний розбір — рахуємо ваші сторінки, дублі й швидкість, — потім називаємо суму й строк і фіксуємо їх у договорі.
Кажемо «ні», коли не впевнені
Якщо задача не наша, строк нереальний або послуга вам просто не потрібна — скажемо це першим листом, а не після передоплати. Гарантій позицій у пошуку не даємо: їх не дає ніхто, а обіцянка без механізму — це продаж, а не робота.
NDA підписуємо на запит. Після завершення співпраці наші доступи до ваших сервісів видаляємо самі й повідомляємо про це.
Що впливає на вартість
Чому дві однакові на вигляд задачі рахуються по-різному — і що саме ми міряємо на аудиті
Скільки джерел даних і чи є в них ISBNОдин прайс із ISBN — це мапінг полів і розклад оновлення. Чотири джерела, де ISBN заповнений вибірково, — це ще й правила зіставлення за назвою й автором і ручне доведення хвоста, який не зійшовся.
Повнота атрибутівЯкщо автор, видавництво, серія й палітурка вже лежать окремими колонками, фільтр збирається за день. Якщо все це одним абзацом в описі — його доводиться розбирати парсером і перевіряти вибірково руками.
Частка перевидань і варіантівПравило «одна книга — одна картка з вибором палітурки» дешеве, поки варіантів два. Коли їх п'ять і в частини різні перекладачі, з'являється окрема робота: вирішити, де межа між варіантом і самостійним виданням.
Скільки авторів, серій і видавництвКожна з цих сутностей — окрема посадкова сторінка з описом і перелінковкою. Двісті авторів і двадцять серій збираються генератором; п'ять тисяч авторів вимагають шаблону, який не перетвориться на п'ять тисяч порожніх сторінок.
Звідки беруться обкладинкиГотові зображення в машинному вигляді — це підготовка розмірів і формат. Обкладинки, які треба тягнути посилання за посиланням або сканувати, стають окремим рядком кошторису й окремим строком.
ПошукШтатний пошук платформи входить у роботу. Повнотекстовий із морфологією, нечітким зіставленням і підказками — окрема доробка з індексом, і в книгарні вона окупається швидше, ніж будь-де ще.
Як проходить робота
Прозорі етапи з погодженням на кожному кроці
Загальний строк:25–50 днів
1
Аудит даних і технічне завдання
3–6 робочих днів
Дивимося прайси в тому вигляді, як ви їх отримуєте, і фіксуємо модель книги: що є полем, що атрибутом, що варіантом. З цього документа рахується кошторис і приймається робота.
2
Структура каталогу й посадкові сутності
3–5 робочих днів
Дерево розділів, набір атрибутів для фільтра, перелік сторінок авторів, серій і видавництв, правило canonical для варіантів видання. Погоджуємо до дизайну — переробляти структуру після верстки дорого.
3
Дизайн
5–9 робочих днів
Головна, категорія, картка книги, сторінка автора, кошик, чекаут. Тут же фіксуємо цільову вагу сторінки категорії: обкладинки роблять її найважчою на сайті.
4
Збірка магазину
6–11 робочих днів
Верстка теми, каталог і фільтр, картка з полями видання, кошик і чекаут, ролі в адмінці, сторінки оплати, доставки й повернення.
5
Зведення прайсів і наповнення
4–10 робочих днів
Мапінг полів кожного джерела, зіставлення за ISBN, тестове заливання, звірка кількості карток двома методами, список позицій, які не зійшлися й підуть руками.
6
Пошук, оплата, доставка, аналітика
2–5 робочих днів
Індекс повнотекстового пошуку з морфологією й підказками, платіжні модулі, перевізники, GTM і GA4 з подіями кошика, JSON-LD Book і Product, карта сайту.
7
Тестування, передача, запуск
2–4 робочих дні
Наскрізний прогін замовлення від пошуку до ТТН, перевірка пошуку на помилках у назвах, заміри першої відповіді й ваги категорії, прохід адмінки з вашим менеджером.
Не знайшли свій випадок?
Опишіть, як це влаштовано у вас, — відповімо, чи підходить «Розробка інтернет-магазину книг» і що це означає у вашій ситуації. Без брифу й без дзвінка: одне питання, одна відповідь.
Технології та інтеграції
На чому будуємо і з чим це з’єднується
Стек
OpenCart 4.x — ставимо за замовчуванням; частина українських модулів досі виходить лише під 3.x
OpenCart 3.x — коли потрібен модуль без збірки під 4.x; гілку розвивають менше
PHP, MySQL — на каталозі від кількох тисяч назв індекси доводиться переглядати руками
nginx, HTTP/2, HTTPS — швидкість прибирає технічну втрату, попиту на книгу не додає
OCFilter — без canonical і robots фільтри плодять тисячі майже однакових адрес
Повнотекстовий пошук з морфологією — працює лише на охайно заведених назвах
WebP і відкладене завантаження — ваги вихідної обкладинки від постачальника не міняють
Інтеграції
LiqPay
WayForPay
monobank
післяплата
Нова Пошта
Укрпошта
самовивіз
імпорт прайсів постачальників
XML-фід на маркетплейси
Google Tag Manager
GA4
Google Merchant Center
Meta Pixel
Instagram
Свій книжковий магазин проти майданчика й конструктора
Чим цей варіант відрізняється від «Маркетплейс / SaaS-конструктор»
Маркетплейс / SaaS-конструкторНаш підхід
Сторінка автора як посадковамаркетплейс: фільтр усередині чужої видачі. Конструктор: залежить від тарифу, часто немаєокрема адреса з описом, переліком видань і перелінковкою
Зведення кількох прайсів за ISBNмаркетплейс: свої вимоги до картки. Конструктор: імпорт є, зведення джерел зазвичай немаєправила зіставлення ваші, хвіст видно поіменно
Перевидання й палітуркинайчастіше окремі картки, які конкурують між собоюодна картка з варіантами, canonical на основну адресу
Комісія з продажумаркетплейс: відсоток із кожного замовлення. Конструктор: абонплата, росте з каталогомнемає, тільки хостинг і еквайринг
Контакт із покупцеммаркетплейс: покупець належить майданчикубаза, розсилка й історія замовлень ваші
Кейси
Задачі та результат у цифрах — усі показники зняті нашим виміром
інтернет-магазин професійного інструменту, каталог понад 6 тис. SKU
Задача
Продавати інструмент і роздрібному майстру, і компанії з ПДВ: каталог із фільтрами за типом, детальні картки й чекаут, що закриває поширені в Україні способи розрахунку.
Рішення
OpenCart, тема OCT Showcase, nginx. Дві мовні версії, десять способів оплати — від LiqPay і monobank до розстрочки й безготівки з ПДВ. JSON-LD OnlineStore з ContactPoint, PostalAddress і SearchAction.
Результат
6 486 сторінок товарів і 361 категорія. Вимір 31.07.2026: перша відповідь 671,2 мс при 407,8 КБ HTML. Знайдений дефект, заради якого кейс стоїть саме тут: карта сайту містить 25 537 записів на 6 857 унікальних адрес — кожен товар присутній у середньому 3,9 раза під різними шляхами категорій, а сама карта генерується 34,2 секунди. У книгарні це той самий сюжет: книга лежить і в автора, і в серії, і у видавництві.
магазин систем автоматичного поливу з каталогом на 300 позицій
Задача
Зібрати дрібну технічну номенклатуру, де позиції відрізняються лише діаметром і типом різьби, так, щоб покупець дійшов до потрібної деталі.
Рішення
OpenCart 3 на nginx з HTTP/2 і brotli. Каталог розгорнутий на 4 рівні вкладеності, OCFilter у категоріях, відкладене завантаження зображень, canonical на всіх типах сторінок.
Результат
Вимір 01.08.2026: 300 товарів у 40 категоріях — цифра зійшлася двома незалежними методами з розбіжністю 0%. Перша відповідь 235 мс за медіаною п'яти замірів, головна важить 143,6 КБ HTML і 22,5 КБ у brotli. Цифра, яка стосується книг напряму: сторінка категорії зі 100 товарами важить 554 КБ — майже вчетверо більше за головну, і це сама лише розмітка, без зображень.
інтернет-магазин професійної косметики, каталог понад 5 тис. SKU
Задача
Тримати каталог на кілька тисяч позицій, який поповнюється постійно.
Рішення
OpenCart, одна мовна версія, microdata Organization і PostalAddress, штатний пошук платформи.
Результат
5 561 товар — порахували штатним пошуком OpenCart, 55 сторінок по 100 плюс 61. Тобто пошук віддає повну видачу, і ним можна міряти каталог; там, де він мовчить, розмір ми чесно позначаємо як невиміряний. Перша відповідь 801,2 мс при легких 153,8 КБ HTML — повільна саме серверна частина. Вимір 31.07.2026. Знайдені дефекти: /sitemap.xml віддає 200 з тілом у нуль байт, лічильників на головній немає жодного.
Що потрібно від вас
Без цього не почнемо — краще підготувати заздалегідь
1Прайси постачальників у тому вигляді, як ви їх отримуєте — не переформатовані «щоб було зручніше».
2Перелік видавництв, з якими працюєте, і умови по наявності.
3Рішення, як показувати перевидання: однією карткою з варіантами чи окремими.
4Правило націнки й політику знижок на передзамовлення й новинки.
5Доступи до хостингу й домена або згоду підібрати хостинг за вас.
6Одну людину з правом затвердити структуру каталогу й макети.
Якщо чогось із цього немає — скажіть, підкажемо, як зібрати або зробимо самі окремою задачею.
Часті питання
Те, що питають найчастіше — з конкретними відповідями
у нас та сама книга у твердій і м'якій палітурці — це два товари?
Зазвичай одна картка з вибором палітурки: назва, автор і анотація однакові, різняться формат і ціна. Окремі картки виправдані там, де видання відрізняється змістом — інший переклад, доповнене видання, інші ілюстрації. У решті випадків другий товар створює дубль, який конкурує сам із собою. Ми міряли, як це виглядає у великому каталозі: у магазині інструменту 25 537 записів у карті сайту вели лише на 6 857 адрес.
чи можна автоматично тягнути каталог від постачальника?
Так, якщо в прайсі є ISBN — він працює як єдиний ключ між джерелами. Тоді нова позиція заводиться сама, а наявність і ціна оновлюються за розкладом. Якщо ISBN немає або він заповнений вибірково, зіставляти доводиться за назвою й автором, і хвіст усе одно піде руками. Чесна межа: обмін не виправляє облік. Якщо в прайсі постачальника наявність неточна, сайт швидко й акуратно покаже неточні дані.
навіщо окремі сторінки авторів і серій?
Бо за прізвищем автора книгу шукають частіше, ніж за темою, і сторінка автора відповідає на цей запит краще, ніж категорія. Другий ефект — перелінковка: з картки одного видання читач переходить на решту книг того ж автора, а це і глибина перегляду, і другий товар у кошику. Межа теж є: сторінка автора, у якого одна книга й немає опису, нічого не дає — такі сутності ми не плодимо.
як зробити, щоб пошук знаходив книгу з помилкою в назві?
Повнотекстовим пошуком із морфологією й нечітким зіставленням, а не пошуком за точним входженням, який стоїть у платформі з коробки. Плюс підказки під час набору — вони закривають більшість помилок ще до відправлення запиту. Чого пошук не зробить: він допомагає тому, хто вже знає назву або автора. Покупцеві, який ще обирає, працюють категорії й фільтр, і будувати треба обидва шляхи.
обкладинок тисячі, сторінка категорії гальмує — що робити?
Готувати окремі розміри під список і під картку, віддавати сучасні формати й відкладати завантаження всього нижче першого екрана. Порядок цифр: у магазині поливу, який ми міряли 01.08.2026, головна важить 143,6 КБ HTML, а категорія зі 100 товарами — 554 КБ. Це сама розмітка, без зображень. Тому по 100 позицій на сторінці в книгарні тримати зазвичай не варто.
як продавати передзамовлення на новинки?
Окремим станом позиції з датою виходу й попередженням у кошику, що замовлення поїде після цієї дати. Змішувати передзамовлення з наявними книгами в одному замовленні не варто: або весь кошик чекає найпізнішої позиції, або замовлення треба ділити. Правило вибираємо до розробки — воно міняє чекаут, і переробляти його потім дорожче, ніж домовитися на брифі.
а електронні книги й аудіо?
Це інша задача, і на цій сторінці її немає. Продаж файлу — це доставка посиланням, ліцензування й захист від копіювання, а не склад і перевізник. Технічно поставити продаж файлу в OpenCart можна, домовленості з правовласником про формат і захист — ні. Якщо електронні видання у вас основний напрям, кажіть про це на першій же розмові: змінюється не модуль, а весь склад робіт.
скільки триває розробка?
25–50 робочих днів від затвердження ТЗ, сім етапів. Основний час іде не на верстку, а на дані: розкладку атрибутів по полях, зведення джерел за ISBN, збірку сторінок авторів і серій. Якщо прайси приходять у машинному вигляді з повними атрибутами, строк по нижній межі. Якщо джерел чотири й ISBN у них вибірковий — по верхній, і найдовшим етапом буде зведення.
чому на сторінці немає ціни?
Бо в книгах вартість визначають дані, а не кількість екранів. Магазин на 2 000 назв від одного постачальника й магазин на 20 000 назв від чотирьох виглядають однаково, а роботи в них різні. Назвати вилку до того, як ми побачили ваші прайси, — це або перестрахуватися вгору, або пообіцяти суму, яку потім доведеться переглядати. Тому спершу безкоштовний аудит на 3–5 днів, потім сума й строк по етапах.
Надішліть прайси постачальників у тому вигляді, як вони до вас приходять.
У відповідь — документ по даних: що є атрибутом, що піде в каталог автоматично, що доведеться зводити руками, і скільки з цього виходить сторінок. Після нього називаємо суму й строк по етапах. Якщо магазин вам зараз не потрібен, почуєте це першим же листом.
Прайса на сайті немає навмисно: обсяг тієї самої роботи у двох клієнтів відрізняється в рази, і цифра «від» у такому разі нічого не пояснює. Спершу безкоштовний аудит — рахуємо ваші сторінки, дублі й швидкість, — потім називаємо суму й строк і фіксуємо їх у договорі.