Зв'язатись
  • OpenCart
  • Імпорт і експорт
  • v1.0.0

Order Archive для OpenCart — архів старих замовлень без втрати історії

Модуль для OpenCart 4, 3 і 2.3 переносить старі виконані замовлення з робочих таблиць в окремий архів. Список замовлень в адмінці й пошук стають легшими, а покупець і далі бачить усі свої замовлення в кабінеті, звіти рахують і архівні, сторінка замовлення відкривається як раніше. Будь-яка зміна архівного замовлення спершу повертає його в магазин. Без правок ядра й OCMOD.

Завантажити Free
Pro · ліцензія назавжди Чим більше сайтів, тим дешевше кожен
Сумісність
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 днів, без картки, один на сайт
Або всі 173 Pro-модулів з All Access — 4 990 ₴ / рік

Що є в Free,
а що дає Pro

Безкоштовна версія працює без обмеження в часі. Pro додає решту функцій з таблиці.

Функція Free Pro
Перенесення старих замовлень в окремі таблиці-архів кнопкою «Архівувати зараз», з прогресом і зупинкою ✔ ✔
Правила: старші за N місяців, у вибраних фінальних статусах, без змін N днів ✔ ✔
Захист: найновіше замовлення, підписки, продані сертифікати, завантаження, недавні повернення лишаються в магазині ✔ ✔
Не чіпає замовлення, з якими ще працюють модулі CatCode (ТТН у черзі, CRM-синхронізація, чек ПРРО, перевірка оплати) ✔ ✔
Кабінет покупця: архівні замовлення в списку на своїх місцях, сторінка замовлення, повернення товару, «Купити знову» ✔ ✔
Сторінка замовлення й рахунок в адмінці відкривають архівне замовлення; опція «повертати в магазин при відкритті» ✔ ✔
Будь-яка зміна архівного замовлення (статус, оплата, CRM, ПРРО-повернення) спершу повертає його в магазин ✔ ✔
Звіти продажів, куплених товарів, покупців і маркетингу рахують і архівні замовлення ✔ ✔
Під відфільтрованим списком замовлень — «ще N в архіві» з посиланням ✔ ✔
Пошук в архіві за номером, покупцем, e-mail, телефоном, датою, статусом; перегляд і друк ✔ ✔
Повернення в магазин одного, вибраних або всіх знайдених — рядок у рядок, як було ✔ ✔
Оптимізація таблиць і журнал дій ✔ ✔
Адмінка українською, російською й англійською, збірки для OpenCart 4.x, 3.x і 2.3 ✔ ✔
Архівація за розкладом: планувальник OpenCart 4 або cron хостингу з ключем — ✔
Незавершені оформлення (статус «відсутній»), старші за N днів, — в архів — ✔
Експорт архіву в CSV за фільтром, до 100 000 замовлень — ✔
Остаточне видалення архівних замовлень, старших за N місяців (вимкнено за замовчуванням) — ✔

Як це виглядає

Сторінка архівного замовлення в кабінеті покупця OpenCart
Кабінет покупця (OpenCart 4.1): архівне замовлення #4 відкривається так само, як до архівації — адреси, доставка й оплата, товари й суми, кнопки «Купити знову» і «Повернути товар».
Огляд модуля Order Archive в адмінці OpenCart 4.1: замовлення в магазині й в архіві, правила, кнопка «Архівувати зараз»
Вкладка «Огляд» (OpenCart 4.1, англійська адмінка): скільки замовлень у магазині й в архіві, розміри таблиць, правила простими словами, кнопки «Скільки піде зараз?» і «Архівувати зараз», оптимізація таблиць, остаточне видалення (Pro) і журнал дій.
Пошук в архіві замовлень OpenCart: фільтр за покупцем, список архівних замовлень, кнопки повернення
Вкладка «Архів»: пошук за номером, покупцем, e-mail, телефоном, датою й статусом. Кожне замовлення можна переглянути, надрукувати або повернути в магазин; можна повернути вибрані чи всі знайдені.

Головне про модуль

Як це виглядає для покупця

Для покупця не змінюється нічого. Він заходить у «Історію замовлень» і бачить усі свої замовлення — і нові, і трирічної давнини — в одному списку, у тому ж порядку і з тими ж сторінками.

Що отримує адмін

Пункт «Архів замовлень» у меню «Продажі» з трьома вкладками.

Тріал стартує, коли ви попросите

Свіжий інстал — безкоштовна версія, нічого не вмикається само. Кнопка «Спробувати 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 хостингу за адресою з секретним ключем, яку показує модуль.

Історія версій

v1.0.0 Поточна

Архів старих замовлень з читанням для кабінету покупця, сторінки замовлення, рахунку, звітів і модулів; автоматичне повернення при будь-якій зміні, зокрема з Multi PRRO і Returns &…

Разом з Order Archive для OpenCart купують

4 модулі одним замовленням — на 40% дешевше, ніж окремо

Набір «Старт магазину» Order Archive Nova Poshta Premium LiqPay Telegram-сповіщення і Viber/SMS покупцям Потрібно більше — усі 173 модулі в All Access за 4 990 ₴.
3 790 ₴ назавжди замість 6 260 ₴ поштучно
Купити набір →

Повний опис модуля

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: розклад, незавершені оформлення, остаточне видалення.

Як це працює — крок за кроком

  1. Встановлення. Модуль створює таблиці-архів з тією самою структурою, що й у таблиць замовлень вашого магазину (order, order_product, order_option, order_total, order_history, order_voucher; у 2.3 ще order_custom_field). Колонки, які додали інші модулі, архів підхоплює перед кожним запуском.
  2. Вибір кандидатів. Замовлення, старші за N місяців, у вибраних статусах і без змін N днів. Не потрапляють в архів ніколи: найновіше замовлення, замовлення з підпискою чи регулярним платежем, з проданим подарунковим сертифікатом, із завантаженнями (налаштування), з недавнім поверненням, повернені з архіву нещодавно, а також ті, з якими ще працює модуль CatCode: ТТН Нової Пошти в черзі, ненадіслана синхронізація KeyCRM / SalesDrive / KeepinCRM, незавершений чек ПРРО, відкрита заявка Returns & Exchanges, неперевірена оплата в Payment Status Sync.
  3. Перенесення. Кроками по 200 замовлень (налаштовується). Кожен крок — одна транзакція: рядки копіюються в архів, кількість звіряється по кожній таблиці, і лише тоді видаляються з магазину. Не зійшлося — крок відкочується повністю.
  4. Читання. Коли OpenCart через свої моделі шукає одне замовлення (кабінет, сторінка замовлення, рахунок, модулі, що читають замовлення штатно) і не знаходить його в магазині, модуль повторює той самий запит в архіві. Список у кабінеті об’єднує обидва джерела з правильним посторінковим поділом, звіти читають магазин і архів разом.
  5. Зміна. Будь-яка спроба змінити архівне замовлення через OpenCart (новий статус, редагування, номер рахунку, видалення), а також чек повернення Multi PRRO і дії із заявкою Returns & Exchanges спершу повертають його в магазин. Повернене замовлення лишається в магазині 90 днів.
  6. Повернення вручну. З вкладки «Архів» — одне, вибрані або всі знайдені; рядки повертаються такими, якими були.

Що під капотом

  • Без правок ядра й OCMOD. Лише події OpenCart: моделі замовлень у кабінеті, чекауті й адмінці, звіти, список замовлень, сторінка замовлення.
  • Архів — копія структури, не новий формат. Таблиці cc_oarch_* створюються як CREATE TABLE … LIKE, тож рядок в архіві — той самий рядок замовлення, а повернення — точна копія назад.
  • Транзакції й блокування. Кожен крок архівації чи повернення — одна транзакція InnoDB і один іменований лок бази, тож архівація за розкладом і ручне повернення не перетинаються.
  • Звіти. На час роботи моделі звіту таблиці замовлень підміняються на «магазин + архів»; на дашборді — лише за окремим перемикачем, щоб головна адмінки лишалася швидкою.
  • Що лишається на місці: транзакції й бонуси покупців, історія купонів (ліміти купонів рахують і старі замовлення), повернення, подарункові сертифікати, підписки, таблиці інших модулів.
  • Чесно про обмеження. Модулі інших розробників, які читають таблицю замовлень власним SQL, архівних замовлень не бачать — тому в архів ідуть лише давно завершені замовлення, а сторінка замовлення в адмінці за замовчуванням повертає архівне замовлення в магазин. Статус, змінений у KeyCRM для замовлення, яке вже в архіві, не застосовується, доки замовлення не повернуте. Блок «Бестселери» вітрини рахує лише замовлення магазину. Звіти, що читають і архів, працюють повільніше, ніж до архівації (вимірювання — у FAQ).

Як встановити

  1. Завантажте архів для своєї версії: cc_orderarchive.ocmod.zip (OpenCart 4.x), cc_orderarchive-oc3.ocmod.zip (3.x) або cc_orderarchive-oc2.ocmod.zip (2.3).
  2. OpenCart 4 і 3: Розширення → Встановлення розширень → «Завантажити». OpenCart 2.3: скопіюйте вміст папки upload/ з архіву в корінь магазину.
  3. Розширення → Розширення → Модулі → CatCode Order Archive → «Встановити».
  4. Відкрийте Продажі → «Архів замовлень» → «Налаштування», перевірте правила й статуси, збережіть.
  5. На вкладці «Огляд» натисніть «Скільки піде зараз?», потім «Архівувати зараз». Першу велику архівацію краще запускати в тиху годину, а після неї — «Оптимізувати таблиці».

Питання
про модуль

Не знайшли відповідь? Напишіть у Telegram — відповімо протягом робочого дня.

@catcode_support Налаштування, сумісність, активація
Покупець побачить свої старі замовлення?

Так. Список «Історія замовлень» у кабінеті показує живі й архівні замовлення разом, у тому ж порядку і з тими ж сторінками, що й до архівації. Сторінка архівного замовлення, кнопки «Повернути товар» і «Купити знову» працюють. Ми звіряли сторінки кабінету до й після архівації на 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 не повертався назад.

Не той варіант, що шукаєте?

Робимо кастомні модулі під WordPress, WooCommerce, OpenCart і Shopify. Розкажіть про задачу — підготуємо оцінку.

Замовити кастомний модуль