
Order Archive для OpenCart — архів старих замовлень без втрати історії
Модуль для OpenCart 4, 3 і 2.3 переносить старі виконані замовлення з робочих таблиць в окремий архів. Список замовлень в адмінці й пошук стають легшими, а покупець і далі бачить усі свої замовлення в кабінеті, звіти рахують і архівні, сторінка замовлення відкривається як раніше. Будь-яка зміна архівного замовлення спершу повертає його в магазин. Без правок ядра й OCMOD.
- Сумісність
- OpenCart 4.0.2 – 4.1.x (перевірено на 4.1.0.3 і 4.0.2.3, зокрема з DB_DRIVER=pdo) · OpenCart 3.0.x (перевірено на 3.0.5.0) · OpenCart 2.3.0.2 (PHP 7.0) · працює поруч із модулями CatCode: Нова Пошта Premium, Multi PRRO, KeyCRM / SalesDrive / KeepinCRM Sync, Returns & Exchanges, One Page Checkout, Payment Status Sync · MariaDB 10.11
- Версія
-
v1.0.0 (OpenCart 4)
v1.0.0 (OpenCart 3.x)
v1.0.0 (OpenCart 2.3) - Ліцензія
- один сайт, назавжди
- Тріал
- 7 днів, без картки, один на сайт
Що є в Free,
а що дає Pro
Безкоштовна версія працює без обмеження в часі. Pro додає решту функцій з таблиці.
Як це виглядає
Головне про модуль
Як це виглядає для покупця
Для покупця не змінюється нічого. Він заходить у «Історію замовлень» і бачить усі свої замовлення — і нові, і трирічної давнини — в одному списку, у тому ж порядку і з тими ж сторінками.
Що отримує адмін
Пункт «Архів замовлень» у меню «Продажі» з трьома вкладками.

Тріал стартує, коли ви попросите
Свіжий інстал — безкоштовна версія, нічого не вмикається само. Кнопка «Спробувати Pro 7 днів» → e-mail → ключ одразу у вікні і листом.

Один ключ — один сайт
Переносите магазин — відв’яжіть ліцензію на старому домені й активуйте на новому самі. Для студій — ключі на 5, 25 сайтів або без обмежень.
Технічні вимоги
OpenCart 4.0.2 – 4.1.x (перевірено на 4.1.0.3 і 4.0.2.3, з драйвером бази mysqli і pdo), 3.0.x (перевірено на 3.0.5.0) або 2.3.0.2.
PHP — той, що потрібен вашій версії OpenCart: збірку для 2.3 перевірено на PHP 7.0, решту — на PHP 8.1–8.3. Розширення cURL — для ліцензії Pro.
База: перевірено на MariaDB 10.11 з таблицями InnoDB.
Розклад (Pro): у OpenCart 4 — штатний планувальник (Розширення → Cron Jobs) або cron хостингу; у 3.x і 2.3 — cron хостингу за адресою з секретним ключем, яку показує модуль.
Історія версій
Архів старих замовлень з читанням для кабінету покупця, сторінки замовлення, рахунку, звітів і модулів; автоматичне повернення при будь-якій зміні, зокрема з Multi PRRO і Returns &…
Разом з Order Archive для OpenCart купують
4 модулі одним замовленням — на 40% дешевше, ніж окремо


Nova Poshta Premium — модуль Нова Пошта для OpenCart 2.3, 3.x і 4.x

LiqPay — оплата карткою для OpenCart 2.3, 3.x і 4.x

Telegram-сповіщення і Viber/SMS покупцям для OpenCart
Повний опис модуля
Order Archive для OpenCart — модуль для магазинів, у яких за роки назбиралися десятки тисяч замовлень. Штатний OpenCart тримає всі замовлення в одних таблицях: кожен відкритий список, пошук, фільтр і лічильник у шапці адмінки щоразу проходить і по свіжих замовленнях, і по тих, що виконані три роки тому. Видаляти старі замовлення не можна: покупці відкривають їх у кабінеті, бухгалтерії потрібні звіти, а поверненням і CRM — історія.
Модуль переносить старі виконані замовлення в окремі таблиці-архів і робить так, щоб OpenCart цього «не помітив»: покупець і далі бачить усі свої замовлення в кабінеті, сторінка замовлення й рахунок в адмінці відкриваються, звіти рахують і архівні. А будь-яка зміна архівного замовлення — новий статус, колбек оплати, статус із CRM — спершу повертає його в магазин. Ядро OpenCart, шаблони й OCMOD-патчі модуль не чіпає.
Магазин на WooCommerce? Для нього є окремий плагін Order Archive для WooCommerce з тим самим підходом: старі замовлення в стиснений архів, звіти й підсумки покупців без змін, пошук і відновлення одним кліком.
Як це виглядає для покупця
Для покупця не змінюється нічого. Він заходить у «Історію замовлень» і бачить усі свої замовлення — і нові, і трирічної давнини — в одному списку, у тому ж порядку і з тими ж сторінками. Відкриває старе замовлення — бачить товари, суми, адреси, історію статусів. Кнопка «Купити знову» кладе товар у кошик, «Повернути товар» відкриває форму повернення, заповнену даними замовлення.
Оформлення нових замовлень архів не зачіпає: штатний чекаут і One Page Checkout працюють як завжди, номери нових замовлень ідуть далі після архівних.
Що отримує адмін
Пункт «Архів замовлень» у меню «Продажі» з трьома вкладками.
Огляд
Скільки замовлень у магазині й в архіві, розміри таблиць, найстаріше замовлення в магазині. Правила записані звичайною мовою («Замовлення, оформлені понад 24 міс. тому, у статусах Complete, Canceled, без змін 90 днів»). Кнопка «Скільки піде зараз?» рахує кандидатів, «Архівувати зараз» переносить їх кроками з прогресом — запуск можна зупинити будь-коли. Нижче — «Оптимізувати таблиці» (повертає звільнене місце на диск після першої великої архівації) і журнал: що, коли і хто архівував чи повертав.
Архів
Пошук за номером, покупцем, e-mail, телефоном, датою і статусом. Архівне замовлення можна переглянути й надрукувати, не повертаючи його. «Повернути» переносить одне замовлення в магазин, «Повернути вибрані» і «Повернути всі знайдені» — групу. У Pro тут же — експорт знайденого в CSV.
Штатний список замовлень
Список Продажі → Замовлення лишається таким, як був, і показує лише замовлення магазину — тому він і швидкий. Коли ви фільтруєте список (за покупцем, номером, e-mail, статусом), під ним з’являється рядок «В архіві ще N замовлень за цим фільтром.» з посиланням на них.
Налаштування
- Правила: вік замовлення в місяцях (за замовчуванням 24), статуси, які можна архівувати (за замовчуванням — «завершені» статуси магазину), скільки днів замовлення не змінювалося (90), розмір кроку.
- Захист: лишати в магазині замовлення із завантаженнями; не архівувати замовлення з поверненням, зміненим за останні N днів (180); скільки днів повернене замовлення лишається в магазині (90).
- Сумісність: кабінет покупця, сторінка замовлення в адмінці, звіти, рядок під списком замовлень, «повертати в магазин при відкритті», лічильники дашборду — кожен шар вмикається окремо.
- Pro: розклад, незавершені оформлення, остаточне видалення.
Як це працює — крок за кроком
- Встановлення. Модуль створює таблиці-архів з тією самою структурою, що й у таблиць замовлень вашого магазину (
order,order_product,order_option,order_total,order_history,order_voucher; у 2.3 щеorder_custom_field). Колонки, які додали інші модулі, архів підхоплює перед кожним запуском. - Вибір кандидатів. Замовлення, старші за N місяців, у вибраних статусах і без змін N днів. Не потрапляють в архів ніколи: найновіше замовлення, замовлення з підпискою чи регулярним платежем, з проданим подарунковим сертифікатом, із завантаженнями (налаштування), з недавнім поверненням, повернені з архіву нещодавно, а також ті, з якими ще працює модуль CatCode: ТТН Нової Пошти в черзі, ненадіслана синхронізація KeyCRM / SalesDrive / KeepinCRM, незавершений чек ПРРО, відкрита заявка Returns & Exchanges, неперевірена оплата в Payment Status Sync.
- Перенесення. Кроками по 200 замовлень (налаштовується). Кожен крок — одна транзакція: рядки копіюються в архів, кількість звіряється по кожній таблиці, і лише тоді видаляються з магазину. Не зійшлося — крок відкочується повністю.
- Читання. Коли OpenCart через свої моделі шукає одне замовлення (кабінет, сторінка замовлення, рахунок, модулі, що читають замовлення штатно) і не знаходить його в магазині, модуль повторює той самий запит в архіві. Список у кабінеті об’єднує обидва джерела з правильним посторінковим поділом, звіти читають магазин і архів разом.
- Зміна. Будь-яка спроба змінити архівне замовлення через OpenCart (новий статус, редагування, номер рахунку, видалення), а також чек повернення Multi PRRO і дії із заявкою Returns & Exchanges спершу повертають його в магазин. Повернене замовлення лишається в магазині 90 днів.
- Повернення вручну. З вкладки «Архів» — одне, вибрані або всі знайдені; рядки повертаються такими, якими були.
Що під капотом
- Без правок ядра й OCMOD. Лише події OpenCart: моделі замовлень у кабінеті, чекауті й адмінці, звіти, список замовлень, сторінка замовлення.
- Архів — копія структури, не новий формат. Таблиці
cc_oarch_*створюються якCREATE TABLE … LIKE, тож рядок в архіві — той самий рядок замовлення, а повернення — точна копія назад. - Транзакції й блокування. Кожен крок архівації чи повернення — одна транзакція InnoDB і один іменований лок бази, тож архівація за розкладом і ручне повернення не перетинаються.
- Звіти. На час роботи моделі звіту таблиці замовлень підміняються на «магазин + архів»; на дашборді — лише за окремим перемикачем, щоб головна адмінки лишалася швидкою.
- Що лишається на місці: транзакції й бонуси покупців, історія купонів (ліміти купонів рахують і старі замовлення), повернення, подарункові сертифікати, підписки, таблиці інших модулів.
- Чесно про обмеження. Модулі інших розробників, які читають таблицю замовлень власним SQL, архівних замовлень не бачать — тому в архів ідуть лише давно завершені замовлення, а сторінка замовлення в адмінці за замовчуванням повертає архівне замовлення в магазин. Статус, змінений у KeyCRM для замовлення, яке вже в архіві, не застосовується, доки замовлення не повернуте. Блок «Бестселери» вітрини рахує лише замовлення магазину. Звіти, що читають і архів, працюють повільніше, ніж до архівації (вимірювання — у FAQ).
Як встановити
- Завантажте архів для своєї версії:
cc_orderarchive.ocmod.zip(OpenCart 4.x),cc_orderarchive-oc3.ocmod.zip(3.x) абоcc_orderarchive-oc2.ocmod.zip(2.3). - OpenCart 4 і 3: Розширення → Встановлення розширень → «Завантажити». OpenCart 2.3: скопіюйте вміст папки
upload/з архіву в корінь магазину. - Розширення → Розширення → Модулі → CatCode Order Archive → «Встановити».
- Відкрийте Продажі → «Архів замовлень» → «Налаштування», перевірте правила й статуси, збережіть.
- На вкладці «Огляд» натисніть «Скільки піде зараз?», потім «Архівувати зараз». Першу велику архівацію краще запускати в тиху годину, а після неї — «Оптимізувати таблиці».
Питання
про модуль
Не знайшли відповідь? Напишіть у Telegram — відповімо протягом робочого дня.
Покупець побачить свої старі замовлення?
Так. Список «Історія замовлень» у кабінеті показує живі й архівні замовлення разом, у тому ж порядку і з тими ж сторінками, що й до архівації. Сторінка архівного замовлення, кнопки «Повернути товар» і «Купити знову» працюють. Ми звіряли сторінки кабінету до й після архівації на 4.1, 4.0.2, 3.0 і 2.3 — вони однакові.
Що станеться, якщо архівне замовлення зміниться?
Модуль спершу повертає його в таблиці магазину, а вже потім OpenCart робить зміну. Так працює для нового статусу з адмінки, колбеку платіжки, статусу з CRM, чека повернення в Multi PRRO, повернення коштів у Returns & Exchanges. Історія не губиться: старі рядки й новий — разом у живому замовленні. Повернене замовлення лишається в магазині 90 днів (налаштовується), щоб наступний запуск не забрав його одразу.
Чи можна повернути все назад?
Так, у будь-який момент: одне замовлення, вибрані або всі знайдені фільтром. Повернення переносить рядки точно такими, якими вони були, — ми звіряли контрольні суми всіх таблиць замовлень до архівації й після повного повернення.
Звіти не «просядуть»?
Звіти «Продажі» і «Куплені товари» читають магазин і архів разом — цифри ті самі, що й до архівації. Ціна цього — швидкість самого звіту: він щоразу читає і магазин, і архів, тож на 60 000 замовлень «Продажі» будувались 1,7 с замість 0,3 с, «Куплені товари» — 2,8 с замість 0,25 с. Якщо архівні періоди у звітах не потрібні, вимкніть «Звіти враховують архівні замовлення». Лічильники на головній сторінці адмінки за замовчуванням рахують лише замовлення в магазині (так дашборд лишається швидким); якщо потрібні повні цифри — увімкніть «Дашборд рахує архівні замовлення».
А якщо модуль іншого розробника читає таблицю замовлень напряму?
Такий модуль бачитиме лише замовлення в магазині. Тому архівуються тільки старі завершені замовлення (за замовчуванням — понад 24 місяці, без змін 90 днів), а сторінка замовлення в адмінці за замовчуванням повертає архівне замовлення в магазин, щойно ви його відкриваєте. Модулі CatCode ми перевірили разом з архівом.
Що з поверненнями товару?
Штатні повернення OpenCart лишаються на місці. Замовлення, по якому повернення змінювалось за останні 180 днів, не архівується. Відкриті заявки Returns & Exchanges CatCode теж тримають замовлення в магазині.
Що буде, якщо видалити модуль?
Архівні таблиці лишаються — у них ваші замовлення. Але без модуля OpenCart їх не бачить. Тому перед видаленням натисніть «Повернути всі знайдені» в розділі «Архів». Повторне встановлення модуля знову знаходить архів.
Скільки часу займає перша архівація?
Залежить від сервера. На локальному стенді (MariaDB 10.11, PHP 8.3) 60 001 згенероване замовлення: 29 150 підпало під правила й перейшло в архів за 6,9 с, повне повернення — 4,4 с, запуск за розкладом — 6,5 с. На хостингу буде повільніше, але кожен крок обмежений у часі, тож запит не впаде з тайм-аутом, а прогрес показує, скільки вже перенесено. Кожен крок — одна транзакція, тож перерваний запуск нічого не ламає: просто натисніть ще раз.
Чи можна видаляти старі замовлення назавжди?
Так, у Pro, і лише ті, що вже в архіві й старші за вказаний вік (від 12 місяців, за замовчуванням 84). Це не можна скасувати, тож спершу зробіть експорт у CSV. За замовчуванням вимкнено.
Як модуль поводиться з One Page Checkout і новими замовленнями?
Нових замовлень архів не торкається: вони оформлюються як завжди, номери йдуть далі після архівних. Найновіше замовлення ніколи не архівується, щоб лічильник номерів у MySQL не повертався назад.
Поки що жодного відгуку. Будьте першим.
Поки питань немає. Запитай — ми відповімо протягом 24 годин.
Не той варіант, що шукаєте?
Робимо кастомні модулі під WordPress, WooCommerce, OpenCart і Shopify. Розкажіть про задачу — підготуємо оцінку.
Замовити кастомний модуль
Купівля модуля
—
