Lifetime updates included on all plans — No subscriptions, no hidden fees.    Browse Extensions →

Archive & Delete order for Magento 2

A comprehensive order lifecycle management extension — giving store administrators full control to delete, archive, soft-delete, protect, and audit orders with complete confidence and zero data loss.

Automate order cleanup with 5 configurable cron jobs, protect critical orders from accidental deletion, and get a full audit trail of every admin action — all in one extension.

  • Single & bulk order deletion with complete cleanup across 11+ database tables
  • Soft Delete (Trash) with 30-day recovery window + Order Archive with restore
  • Order protection rules — by status, age, total value, or manual lock
  • REST API (14+ endpoints), GraphQL mutations & 5 CLI commands
  • Cron automation — auto-archive, auto-delete, trash & log cleanup
  • Granular ACL (13+ nodes), full audit logging, auto JSON backup before deletion
11+
Core Features
14+
REST Endpoints
5
Cron Jobs
13+
ACL Permissions

License Price — One-Time Payment

$10.00

Lifetime updates · No subscriptions

Secure Lifetime Updates Priority Support

Everything You Need
to Manage Orders

A complete order management toolkit — delete, archive, protect, and automate with full confidence.

Single & Bulk Order Deletion

Delete individual orders from the order view, or mass-delete hundreds at once. All related data — invoices, shipments, credit memos — is removed completely and cleanly.

Order Archiving

Move old orders to a dedicated archive for long-term storage. Archived orders are removed from the main grid, reducing clutter while remaining searchable and restorable.

Soft Delete (Trash)

Send orders to trash before permanent deletion. Configure retention periods — orders auto-purge after your set number of days, giving you a safety net against accidents.

Order Protection

Protect orders by status, age, order total, or a whitelist of specific order IDs. Prevent accidental deletion of orders that are still active or above a defined value threshold.

Cron Automation

Configure auto-archive and auto-delete schedules to run automatically. Dry-run mode lets you preview what would be affected before any real changes are made.

Full Activity Logging

Every operation is logged with admin user, IP address, timestamps, and order details. Provides a complete audit trail for compliance and accountability.

REST API & GraphQL

Full API support for external integrations. Delete, archive, restore orders programmatically. Includes GraphQL mutations and queries for headless Magento architectures.

CLI Commands

Server-side command-line interface for running operations without the admin UI. Ideal for bulk operations, scheduled tasks, and automated deployment pipelines.

ACL Permissions

Granular role-based access control. Assign different permissions per admin role — view only, delete single, bulk delete, archive, restore, configuration — with full flexibility.

Security Controls

Optional password confirmation, two-step confirmation for bulk operations, and max-delete limits. 13+ granular ACL resource nodes.

Auto Backup

Full JSON snapshot of every order before deletion — all related records included — for manual recovery. Configurable retention period.

CSV Import for Bulk Actions

Upload a CSV with order IDs to delete or archive in bulk. Supports multiple header formats with smart column auto-detection.

Order Deletion

Permanently remove orders and every piece of related data from your database — individually or in bulk.

Complete data cleanup,
zero orphaned records

When an order is deleted, the extension removes every associated record automatically — across 11+ related tables. No orphaned data, no broken references, no manual cleanup needed.

  • Delete a single order from the order view page with one click
  • Mass-delete multiple orders from the orders grid in one action
  • Configurable confirmation dialog prevents accidental deletion
  • Customisable delete button label to match your workflow
  • Shows detailed success/error counts after bulk operations
  • Optional maximum delete limit prevents runaway bulk actions
  • Delete by filters — date range, status, store view, order total
  • Import CSV with order IDs for programmatic bulk deletion
Data Removed on Deletion
Order Items & Quantities
sales_order_item
Invoices & Invoice Items
sales_invoice_*
Shipments & Tracking
sales_shipment_*
Credit Memos
sales_creditmemo_*
Payment & Transactions
sales_order_payment
Tax Records & Addresses
sales_order_tax
Order Grid Entry & Quote
sales_order_grid

Order Archiving

Move old orders out of the main grid while keeping every data point intact — with the ability to restore them at any time.

Archive Grid — Column Reference
Archive ID
Internal
Order # / Customer Email
Reference
Grand Total & Currency
Financial
Order Status & Store View
Meta
Archived At & Archive Reason
Audit
Archived By (Admin User)
Audit
Actions: Restore / Delete
Actions

Clean grid, preserved data,
instant restore

Archiving gives you the best of both worlds — a lean, fast-loading orders grid for day-to-day operations, while all historical order data remains safely stored and fully searchable in the Archive grid.

  • Archive single orders from the order view page
  • Mass archive multiple orders from the orders grid
  • Dedicated Archived Orders grid under the Sales menu
  • Filter archived orders by order #, date range, status, customer
  • Export the full archive to CSV for reporting
  • Restore any archived order back to the main grid instantly
  • Permanently delete from archive when no longer needed
  • Archive reason field captures why each order was archived

Soft Delete / Trash

A safety net before permanent deletion — orders go to Trash first, recoverable within the configured window.

Delete with confidence,
recover when needed

When Soft Delete is enabled, clicking "Delete Order" moves the order to Trash instead of permanently removing it. Orders remain recoverable until the retention period expires or an admin empties it manually.

  • Configurable trash retention period (default: 30 days)
  • Dedicated Trash grid under Sales menu
  • Restore individual orders back to the main grid from trash
  • Permanently delete individual orders directly from trash
  • Empty Trash button removes all expired items at once
  • Auto-empty via daily cron when retention period expires
  • All trash actions fully logged in the activity trail
  • ACL-controlled: separate permissions for trash view, restore, empty
Order Lifecycle with Soft Delete Enabled
Admin clicks "Delete Order"
Trigger
Order moved to Trash (not deleted)
Safe
Within retention period → Restore possible
Recovery
Retention expires → Cron auto-purges
Scheduled
Permanent deletion + full data cleanup
Final

Order Protection

A multi-layered protection system to prevent accidental deletion of orders that matter most.

Protection Rule Types
Status Protection
e.g. processing
Age Protection
≤ 7 days old
Total Protection
> $500
Whitelist by Order ID
Comma-separated
Manual Lock (one-click)
Admin button
Override (ACL permission)
protection_override

Multiple protection layers,
one consistent shield

Define which orders are off-limits for deletion — by status, age, value, or individual ID — and optionally lock them manually. Protection rules are enforced consistently in the UI, REST API, GraphQL, and CLI.

  • Protect by order status — e.g. block deletion of "processing" orders
  • Protect by age — prevent deletion of orders newer than N days
  • Protect by order total — safeguard high-value orders above a threshold
  • Whitelist specific order IDs that can never be deleted
  • Manual protect/unprotect button directly on the order view page
  • Protected orders bypass restrictions with ACL override permission
  • All protect/unprotect actions logged with admin and timestamp

Cron-Based Automation Engine

Five background jobs run on configurable schedules to keep your store clean — entirely hands-free.

Auto Archive

Automatically archives orders older than the configured threshold, by status and date

Auto Delete

Permanently deletes orders matching age and status criteria. Dry-run mode available for safe preview

Empty Trash

Cleans expired trash items that have passed the configured retention period

Clean Logs

Prunes activity log entries older than the configured retention period

Clean Backups

Rotates backup JSON files, removing those older than backup retention days

Flexible Scheduling

Set auto-archive to daily and auto-delete to weekly, or any custom cron expression. Each job configured independently.

Dry Run Mode

Auto-delete defaults to dry-run — logs what would be deleted without actually removing anything. Perfect for verifying rules before enabling.

Manual CLI Trigger

Run any cron group manually via bin/magento cron:run --group=arrowtwist_deleteorder for immediate execution.

Security Controls & Permissions

Granular role-based access control plus multiple confirmation layers to prevent unauthorized or accidental bulk operations.

Granular permissions,
layered confirmation

The extension ships with a full ACL permission tree — 13+ individual resource nodes — so you can assign precise capabilities per admin role. Security settings add friction to destructive operations.

  • 13+ ACL resource nodes across delete, archive, trash, logs, config
  • Separate permissions for single delete vs. bulk delete vs. delete-all
  • Optional password confirmation before every delete or archive action
  • Two-step confirmation modal for bulk operations
  • Configurable max delete limit per operation (default: 100)
  • Protection override permission for privileged administrators only
  • All permissions enforced equally in admin UI, REST API, and GraphQL
ACL Permission Tree
delete_single
Delete
delete_bulk / delete_all
Delete
archive_view / archive_create
Archive
archive_restore / archive_delete
Archive
trash_view / trash_restore / trash_empty
Trash
logs / config / protection_override
Admin

Activity Logging, Audit Trail & Auto Backup

Every action is recorded with full context. Every deletion is preceded by a complete JSON backup snapshot.

Complete accountability
for every action

The activity log captures every delete, archive, restore, protect, and unprotect operation with rich contextual data — enabling post-event review, compliance audits, and dispute resolution.

  • Logs: delete, archive, restore, protect, unprotect, trash, restore-from-trash
  • Records admin username and user ID for every action
  • Optionally captures admin IP address per action
  • Stores user agent, referer URL, and operation source
  • Configurable retention period (default: 365 days)
  • Dedicated Activity Logs grid with full filtering & CSV export
  • Filter by action type, order number, admin user, date range
  • Automatic log cleanup via cron when retention expires
Logged Action Types
delete / delete_permanent
Hard & Soft
delete_permanent_trash
Permanent
archive
Archive
restore / restore_from_archive / restore_from_trash
Restore
protect / unprotect
Protection

REST API, GraphQL & CLI

Full programmatic access — integrate with ERPs, automate via scripts, or build custom workflows around the extension.

REST API — 14+ Endpoints

Full CRUD coverage for all extension entities. Standard Magento token-based authentication with ACL-mapped resource access.

GraphQL — Queries & Mutations

Full GraphQL schema with paginated queries and mutations for all operations. Ideal for headless storefronts and React/Vue frontends.

CLI Commands

Five Magento console commands for server-side scripting, DevOps pipelines, and scheduled maintenance — with rich option flags.

Delete by Filters & Import for Deletion

Two powerful bulk-operation tools for processing large volumes of orders without selecting them one by one.

Delete by Filters

Navigate to Sales → Delete & Archive Orders → Delete by Filters and target orders by criteria — no individual selection required.
  • Filter by order date range (from / to)
  • Filter by one or more order statuses
  • Filter by store view
  • Filter by grand total range (min / max)
  • Filter by customer email (partial match)
  • Preview matching order count before executing
  • Sample table shows first 10 matching orders
  • Execute button disabled when zero orders match
  • Choose Delete (to Trash) or Archive action
  • Option to automatically skip protected orders

Import for Deletion

Navigate to Sales → Delete & Archive Orders → Import for Deletion and upload a CSV of order increment IDs to process in bulk.
  • Accepts CSV files with various header formats:increment_id,order_id,order #
  • Additional columns in the CSV are safely ignored
  • Duplicate IDs in the file are processed only once
  • Leading/trailing whitespace in IDs trimmed automatically
  • Choose Delete or Archive action for all uploaded IDs
  • Skip Protected option to avoid errors on protected orders
  • Results summary: total, success, not found, protected, errors
  • All import actions logged with "Import for Deletion" source tag

Email Notifications

Keep designated administrators informed whenever orders are deleted or archived — with configurable recipients, custom templates, and error alerts.

Operation Alerts

Send automatic email notifications when orders are deleted, archived, or restored — keeping your team in the loop without manual updates.

Multiple Recipients

Configure a comma-separated list of recipient email addresses. Different stakeholders — operations, compliance, management — can all be notified simultaneously.

Error Notifications

When enabled, failed delete or archive operations trigger an immediate alert email — so issues are spotted and resolved quickly before they cause data problems.

Custom Email Template

Select from Magento's standard transactional email templates or create a fully custom one with your own branding and content via the Magento Email Templates system.

Optional / Disabled by Default

Email notifications are disabled by default to avoid noise on stores that don't need them. Enable only when required — configurable per store scope.

Works with Cron Automation

Notifications also fire for auto-archive and auto-delete cron operations — so even background jobs can alert you when large batches of orders are processed overnight.

Customer Reviews

KO
Max delete limit protects against runaway scripts
The configurable max delete limit (default 100 per operation) is a smart guard. If an API call or script tries to delete more than the limit, it gets blocked. Saved us from a bug in our own automation script once.
AB
Great for multi-store setups
We run three Magento stores from one admin. The extension works correctly with store scope — you can configure different archive rules per store. Exactly what we needed for our different regional stores.
EM
No performance impact on production
Ran before/after benchmarks on our store. The extension adds negligible overhead to normal operations — it only does heavy lifting when you explicitly trigger a delete or archive. No background polling or slow observer chains.
CD
Restored archived orders without any data loss
We needed to pull back a 6-month-old archived order for a customer dispute. Restored in seconds with all items, addresses, and payment records intact. The archive truly preserves everything cleanly.
AK
Password requirement adds security layer
For our high-security admin environment, the option to require a password before deletion is excellent. Only senior administrators know the delete password. Adds a meaningful layer of protection against unauthorized data loss.
MR
Trash retention period is configurable
Setting a 30-day trash retention means soft-deleted orders are recoverable for a month before permanent removal. This gave our customer service team a safety net for disputes that come in weeks later.
DK
Email notifications keep the team informed
We configured email notifications so the team gets alerted whenever bulk operations run. The email template is professional and includes the count of affected orders. Helpful for transparency in a larger team.
RS
Seamless uninstallation too
We tested the extension thoroughly before deciding to go live. The uninstall process was just as clean as the install — no orphaned tables or broken configs left behind. Shows professional craftsmanship.
AH
Auto-delete automation is powerful
For our B2B portal, we generate thousands of quote-only orders that never convert. The auto-delete cron removes them after 30 days automatically. We customized the status filter to target only pending_payment orders. Works exactly as described.
IS
Two-step confirmation prevents mistakes
With two-step confirmation enabled, admins have to confirm twice before a bulk delete goes through. Slightly slower but much safer in a multi-admin environment. Highly recommend enabling it.

Items 11 to 20 of 36 total

Write Your Own Review
You're reviewing: Archive & Delete order for Magento 2
Your Rating:
loader
Loading...

You submitted your review for moderation.

Faqs
Can I restore a permanently deleted order?

Permanently deleted orders cannot be restored from the UI. However, enabling the Auto Backup feature creates a full JSON snapshot of every order before deletion — which can be used for manual data recovery. For safer deletion workflows, use the Soft Delete (Trash) feature, which retains orders in a recoverable trash bin for a configurable number of days.

Does deleting an order affect inventory or customer records?

No. The extension removes order transaction data only (order, invoices, shipments, credit memos, payments, tax, etc.). It does not modify product inventory levels, catalog data, or customer account records. Stock restoration, if needed, must be done separately through Magento's native features.

Is there a limit to how many orders I can delete at once?

By default, the maximum orders per bulk operation is 100 (configurable). For very large datasets — thousands of orders — use the CLI commands or the Delete by Filters feature with batch processing enabled, which processes orders in batches without hitting UI timeouts.

Does it work with Adobe Commerce (EE) and Magento Cloud?

Yes. The extension is fully compatible with Magento Open Source (CE), Adobe Commerce (EE), and Magento Cloud. Select the appropriate edition during purchase. The extension follows all Magento cloud deployment best practices and works with ECE tools.

How do I prevent specific orders from ever being deleted?

Use any combination of the five protection mechanisms: protect by order status (e.g. "processing"), by age (e.g. orders within last 7 days), by order total (e.g. orders above $500), by whitelist (specific order IDs), or via the manual protect button on the order view page. Protected orders are blocked in all contexts — UI, API, CLI, and cron.

Can I use the extension with a headless/PWA Magento storefront?

Absolutely. The extension ships with a full GraphQL schema (queries and mutations) alongside the REST API, making it compatible with headless Magento architectures, PWA Studio frontends, and any GraphQL-capable admin tools or ERP integrations.

Why is this better than manually deleting database records?

Manual database deletion is risky: it's easy to miss related tables, break Magento's referential integrity, skip firing observer events, or leave orphaned records. This extension handles all 11+ related database tables, fires proper Magento events (so third-party extensions can respond), enforces protection rules, creates audit logs, and provides UI/API/CLI access — all safely without any risk of data inconsistency.