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

Переїзд із самописного движка на підтримувану платформу

Перенести магазин із самописного движка можна двома шляхами: забрати каталог прямо з бази або зібрати його розбором HTML вітрини, коли доступу до бази вже немає. Який із них ваш — видно після того, як ми подивимось хостинг: у самописі структура даних щоразу інша, документації не існує, автор коду недоступний. Далі робота однакова — карта відповідності адрес, 301-редиректи, збірка на OpenCart 4.x з адмінкою, у якій менеджер працює сам. Позицій не обіцяємо. Обіцяємо, що жодна стара адреса не віддасть 404.

Подивитись, як це працює
Вартість
після безкоштовного аудиту
Гарантія
30 днів після підписання акта
Звідки беремо каталог
база старого магазину або розбір HTML вітрини
після безкоштовного аудиту
Вартість
30
Гарантія

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

база старого магазину або розбір HTML вітрини
Звідки беремо каталог
сайт і домен втрачено — каталог відновлювали з архівних знімків
Найважчий випадок у практиці
8 909
Скільки адрес зібрав архів того магазину

унікальних, з них 7 565 карток товару

у виміряному магазині два методи підрахунку розійшлись на 2 810 позицій
Чому одного джерела мало
25–50
Строк переїзду

робочих днів від затвердження ТЗ

безкоштовний аудит старого магазину, 3–5 робочих днів
Перед кошторисом
Як проходить робота

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

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

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

    3–5 робочих днів

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

  2. Вивантаження каталогу й нормалізація даних

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

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

  3. Карта відповідності адрес

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

    Таблиця «стара адреса → нова» на кожну сторінку, яку знає пошук. Джерела три: карта сайту, обхід каталогу і Search Console. Тут же вирішуємо, які дублі не тягнемо за собою, а зводимо на одну канонічну адресу.

  4. Збірка магазину на OpenCart

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

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

  5. Контент, оплата, доставка, аналітика

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

    Переносимо тексти й мета-описи, які вже працюють, підключаємо оплату й перевізників, ставимо GA4 і Tag Manager, підтверджуємо права в Search Console, збираємо карту сайту без дублів.

  6. Редиректи, перемикання, спостереження

    3–4 робочих дні

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

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

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

Стек

  • OpenCart 4.x — оновлювана гілка з нормальною адмінкою. Обмеження: частина українських модулів досі виходить лише під 3.x, тому список інтеграцій проходимо до старту
  • PHP і MySQL — та сама пара, що й у більшості самописів, тому дані переносяться без конвертації типів; ціна — ті самі вимоги до версії PHP
  • Власні скрипти розбору бази або вітрини — пишуться під конкретний магазин і далі не перевикористовуються
  • nginx і HTTP/2 — редиректи живуть у map-файлі сервера, а не в коді
  • HTTPS + HSTS — без цього браузер показує попередження на формі оплати
  • Search Console — єдине місце, де видно кількість адрес в індексі
  • GA4 і Tag Manager — показують тенденцію, а не бухгалтерську істину: блокувальники й режим згоди зрізають частину подій

Інтеграції

  • LiqPay
  • WayForPay
  • Privat24
  • monobank
  • безготівковий розрахунок
  • післяплата
  • Нова Пошта
  • Укрпошта
  • Meest Express
  • Google Tag Manager
  • GA4
  • Google Ads
  • Google Search Console
  • Telegram
  • Viber
Що входить

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

  • Повна копія старого магазину до початку робіт — файли, база, дамп HTML категорій
  • Розбір бази або HTML вітрини й вивантаження каталогу в машинний формат — каталог живе у файлі, а не всередині чужого коду
  • Відновлення категорій і характеристик під фільтр: у самописі характеристики часто лежать одним текстовим полем, і його розкладають на атрибути
  • Збірка магазину на OpenCart 4.x з адмінкою, де менеджер заводить товар і міняє ціну без розробника
  • Карта відповідності адрес: правило там, де структура регулярна, поштучна таблиця там, де кожен шлях унікальний
  • 301-редиректи з усіх адрес, що були в індексі, прогнані повним списком із перевіркою кодів відповіді до перемикання
  • Перенесення текстів і мета-описів, які вже працюють: переписувати те, що приносить трафік, на переїзді не варто
  • Оплата й доставка заново: LiqPay, WayForPay, monobank, безготівковий рахунок, Нова Пошта, Укрпошта
  • Технічне SEO: ЧПУ, canonical, унікальні title, карта сайту без дублів
  • Аналітика: GA4 і Tag Manager, підтвердження прав у Search Console — щоб дивитись помилки сканування, а не гадати
  • Резервні копії за розкладом і документація по проєкту: наступний підрядник не починає з нуля
  • Умови: передоплата 50%, два раунди правок на етапі дизайну, гарантійний строк 30 календарних днів
Коли ця послуга не підходить

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

  • Відновлення втрачених даних, яких немає ні в базі, ні в архівних знімках
  • Перенесення функціоналу, який не описаний і не відтворюється зі старого коду, без окремої оцінки
  • Гарантії збереження позицій у пошуку
  • Реклама після запуску
  • Хостинг, домен, еквайринг
Кому підходить

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

Ситуація 1 з 4

Розробник зник, а магазин працює

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

Розберемо вашу ситуацію на безкоштовному аудиті
Переїзд на підтримувану платформу проти подальшої доробки самопису

Чим цей варіант відрізняється від «Лишити самопис і доробляти»

Хто може вносити змінименеджер в адмінці, розробник — лише під нестандартні задачі
Оновлення безпекивиходять регулярно, ставляться руками за розкладом
Підняття версії PHP на хостингупланова процедура з тестовим прогоном
Вартість дрібної доробкимодуль або налаштування, години
Разовий ризикє: переїзд означає зміну адрес, і його закриває карта відповідності з 301
Коли доробка чеснішене завжди виправданий: на каталозі в кілька десятків позицій дешевше завести все заново

Безкоштовний аудит старого магазину

Із самописним движком головне питання не «на що переїжджати», а «що звідти взагалі можна дістати». Аудит відповідає саме на нього: дивимося базу, структуру адрес і те, що зараз в індексі.

Що міряємо

  • Звідки брати даніЧи є доступ до бази й у якому вона стані. Якщо доступу немає, лишається розбір HTML сторінок — це працює, але довше й дорожче.
  • Структура адресНаскільки вона регулярна. У самописних магазинах шляхи часто унікальні для кожного розділу, тому редирект правилом не завжди можливий, і частину таблиці доводиться робити поштучно.
  • Обсяг каталогу й адресРахуємо по карті сайту й перехресно обходом каталогу. Якщо карти сайту немає взагалі — а це часта ситуація, — обходимо категорії з пагінацією.
  • Що в індексіСкільки адрес реально в пошуку. Без Search Console повного списку не бачить ніхто, включно з нами, тому доступ до нього — перше, про що ми просимо.
  • Технічний станВерсія PHP, HTTPS і HSTS, мобільний viewport, наявність резервних копій. Тут одразу видно, що з поточного сайту переносити не варто.
  • Швидкість до переїздуПерша відповідь, повне завантаження, вага HTML — щоб після запуску порівнювати виміри, а не відчуття.

Що ви отримуєте на руки

  • Висновок, звідки й у якому вигляді можна забрати каталог.
  • Документ із цифрами: обсяг каталогу, адреси, швидкість, вага HTML, технічний стан.
  • Оцінку кількості рядків у карті відповідності адрес і частки, яку вдасться закрити правилом.
  • Розмову на 30–40 хвилин по документу.

Строк: 3–5 робочих днів — розбір нестандартної бази довший за звичайний аудит

Чому це безкоштовно

Бо ми самі не знаємо вартості, поки не побачили базу. Назвати вилку наосліп для самописного магазину означало б закласти подвійний запас — це нечесно щодо вас і незручно нам. Аудит знімає невідомість для обох сторін.

Що далі

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

Форма коротка: контакт і адреса сайту

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

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

Працюємо офіційно

Договір, акт і рахунок — на кожен проєкт, а не тільки на великий. Без документів у вас немає ні прав на роботу, ні підстави провести витрати.

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

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

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

    Виконавець — зареєстрований ФОП. Оплата на рахунок із закривними документами, які бухгалтерія проведе як витрати. Курс для гривневої оплати фіксується договором, а не з’ясовується постфактум.

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

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

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

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

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

    Серед робіт — проєкти для Норвегії, Болгарії та Іспанії: болгарський магазин трьома мовами з кур’єрською доставкою, іспанський з оплатою карткою й переказом, норвезький сайт клініки. Це видно в портфоліо, а не тільки в описі.

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

    Кожен кейс у портфоліо — з посиланням на живий сайт і технічним виміром: швидкість відповіді, вага сторінки, обсяг каталогу, знайдені дефекти. Ці цифри можна зняти самому й звірити з нашими.

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

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

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

    Якщо задача не наша, строк нереальний або послуга вам просто не потрібна — скажемо це першим листом, а не після передоплати. Гарантій позицій у пошуку не даємо: їх не дає ніхто, а обіцянка без механізму — це продаж, а не робота.

NDA підписуємо на запит. Після завершення співпраці наші доступи до ваших сервісів видаляємо самі й повідомляємо про це.

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

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

  • Чи є доступ до базиГоловна розвилка кошторису. З базою вивантаження каталогу — це запит і скрипт нормалізації, кілька днів. Без бази лишається обхід вітрини з пагінацією й розбір HTML під конкретну верстку, а це інший порядок трудомісткості.
  • Як зберігаються характеристикиАкуратні таблиці атрибутів вивантажуються майже даром. Характеристики одним текстовим полем у довільному форматі розбираються правилами, перевіряються вибірками й доводяться руками — різниця кратна.
  • Регулярність структури адресЯкщо шляхи будуються за схемою, редирект закривається одним правилом nginx. Якщо кожен розділ писали окремо, карта відповідності стає поштучною таблицею на тисячі рядків. Тому частку під правило міряємо на аудиті.
  • Куди веде фотоУ самописі зображення часто прив'язані шляхами у файловій системі, а не ідентифікаторами. Файли доводиться звіряти з записами: частина шляхів веде в нікуди, і без перевірки це вилазить після імпорту.
  • Нестандартний функціоналПрорахунок доставки за власною формулою, ролі менеджерів, накопичувальні знижки. Кожен блок — окремий рядок: відтворити модулем, замовити доробку або відмовитись. Рішення ваше, наша частина — ціна кожного варіанта.
  • Обсяг каталогу й стан контентуТисяча позицій із заповненими описами й тридцять тисяч із назвами в різних регістрах — різні тижні роботи. Чистити каталог на переїзді дешевше: дані однаково йдуть через наші руки.
Кейси

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

роздрібний інтернет-магазин нижньої білизни з каталогом понад 110 тис. позицій

Задача
Порахувати реальний обсяг каталогу перед перенесенням: скільки сторінок везти й скільки з них відомі пошуку.
Рішення
Порахували двома незалежними методами. Карта сайту: індекс із 42 підкарт, після дедуплікації 112 646 унікальних товарних адрес. Штатний пошук CMS: 1 154 сторінки по сотні плюс 56 на останній.
Результат
115 456 товарних позицій проти 112 646 адрес у карті сайту — розбіжність 2 810 позицій, або 2,4%. Близько 2,8 тисячі товарів магазин показує покупцям, а в карті сайту їх немає. На переїзді ці позиції губляться першими. Вимір 01.08.2026.

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

Задача
Виміряти каталог там, де карта сайту не працює: /sitemap.xml віддає HTTP 200 з порожнім тілом.
Рішення
Рахували обходом каталогу штатним пошуком CMS: 55 сторінок по 100 позицій плюс 61 на останній, і зняли показники головної як точку відліку.
Результат
5 561 товар у живому каталозі, вимір 31.07.2026. TTFB 801,2 мс при 153,8 КБ HTML. Дефекти: карта сайту порожня, на головній немає жодного лічильника — ні GTM, ні gtag, ні пікселя, конверсії не міряються ніяк.

B2B-каталог запчастин до промислових швейних машин

Задача
Контрприклад: магазин, дані з якого переносяться без пригод, і що при цьому не варто везти далі.
Рішення
Перевірили карту сайту повним списком, звірили унікальні адреси, зняли швидкість і перелічили підключене.
Результат
1 992 адреси в карті сайту без жодного дубліката — 1 848 карток товару і 138 категорій. Карта відповідності тут це дві тисячі рядків, а не десятки тисяч. TTFB 388,1 мс при 120,2 КБ HTML. Не переносимо: Universal Analytics, вимкнений Google 1 липня 2023 року.
Що потрібно від вас

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

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

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

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

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

розробника немає, доступів теж — це реально перенести?

Реально, але довше й дорожче. З доступом до хостингу й бази це звичайний переїзд: запит, скрипт нормалізації, звірка кількості. Без доступу каталог збирається розбором вітрини — обходимо категорії з пагінацією й дістаємо назви, ціни, характеристики й фото зі сторінок. Ми проходили крайню версію цього сценарію на власному проєкті, де не лишилось ні хостингу, ні домену: там єдиним джерелом був вебархів, і з нього вдалося зібрати 8 909 унікальних адрес, з них 7 565 карток товару. Це працює. Але заявляти обсяг наперед у такому режимі неможливо, тому аудит для нього довший за звичайний.

чому кошторис не можна назвати одразу?

Бо самописний движок — це щоразу інша структура даних. В одному випадку товари лежать акуратними таблицями й вивантажуються за годину. В іншому характеристики зберігаються одним текстовим полем у довільному форматі, а фото прив'язані шляхами у файловій системі, частина з яких веде в нікуди. Різниця в трудомісткості між цими випадками кратна, і поки ми не подивилися базу, будь-яка цифра буде вигадкою. Наша порада проста: якщо підрядник назвав вам суму за переїзд із самопису, не бачивши бази, він або заклав подвійний запас, або доведе кошторис по ходу робіт.

як не втратити адреси, якщо в них немає логіки?

Складаємо карту відповідності з трьох джерел одразу: карта сайту, обхід каталогу і Search Console. Там, де структура регулярна, редирект робиться правилом у map-файлі nginx. Там, де кожен шлях унікальний, — поштучною таблицею, і це дорожча половина роботи, тому частку адрес під правило ми окремо міряємо ще на аудиті. Масовий редирект усього на головну не пропонуємо: це найдорожча економія в міграціях. І одразу про межу чесності — карта сайту не піднімає позиції й не гарантує індексацію; вона лише робить сторінку існуючою для пошуку.

а якщо частина товарів є на сайті, але немає в карті сайту?

Це не рідкість, а норма, і саме тому ми міряємо каталог двома методами. У магазині нижньої білизни, який ми міряли 01.08.2026, карта сайту дала 112 646 унікальних товарних адрес, а обхід каталогу штатним пошуком — 115 456 позицій. Розбіжність 2 810 позицій, тобто 2,4% каталогу магазин показує покупцям, але не показує пошуковому боту. При переїзді ці позиції губляться першими, бо їх немає в списку, за яким усі працюють.

що робити з дублями адрес, які накопичились у старому магазині?

Не везти. В архівному сліді нашого власного проєкту 6 704 унікальних товарних slug'и були доступні за 7 565 адресами — 645 позицій відкривались більш ніж з однієї категорії. На новій платформі кожна така позиція отримує одну канонічну адресу, а решта старих шляхів веде на неї 301-м. Тут є ефект, про який краще знати заздалегідь: після чистки кількість сторінок в індексі якийсь час падає. Це очікуваний хід подій, а не збій, просто виглядає він неприємно, якщо не попередити.

що ми отримаємо, крім нового магазину?

Адмінку, у якій менеджер заводить товар і міняє ціну без розробника. Оновлювану платформу. Резервні копії за розкладом і документацію по проєкту. Останнє звучить нудно і саме воно вирішує вашу початкову проблему: наступний підрядник відкриє опис структури, а не чужий код без коментарів. Швидкість теж зазвичай зростає, але тут без обіцянок — швидка сторінка прибирає технічну втрату, а не створює попит.

скільки триває переїзд і чому такий розкид?

25–50 робочих днів від затвердження ТЗ, і розкид тут більший, ніж в інших міграціях. Причина в другому етапі: вивантаження каталогу займає від чотирьох днів до трьох тижнів залежно від того, у якому вигляді лежать дані. Решта етапів рахується точніше — аудит і копія 3–5 днів, карта відповідності 3–6, збірка 8–15, контент та інтеграції 4–8, редиректи й перемикання 3–4. Точний строк називаємо після аудиту, коли база вже перед очима.

старий магазин можна вимкнути одразу після запуску?

Ні, і це наша тверда рекомендація, а не формальність. Старий сайт лишається піднятим щонайменше 30 днів після перемикання: за цей час у Search Console видно, які адреси бот ще стукає й куди вони ведуть. Якщо в карті відповідності є дірка, її видно саме там і саме тоді, а не за скаргою покупця через півроку. Вимикати старий магазин у день запуску означає позбавити себе єдиного способу перевірити роботу.

Покажіть старий магазин — почнемо з того, що з нього можна дістати

Дайте адресу сайту й доступ до хостингу, якщо він є. За 3–5 робочих днів повернемось із документом: звідки береться каталог, скільки в ньому позицій за двома методами підрахунку, скільки адрес доведеться перенаправляти і яку частку з них закриє правило.

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

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