Skip to content

Order Manager

Order Manager turns Magento’s order screens into a proper operations desk. It adds an enhanced orders grid (with purchased-items, carrier and tracking columns), threaded order notes, status workflows with a complete audit history, bulk actions (status / delete / un-cancel), a drill-down analytics dashboard, and a configurable Xero accounting CSV export — all behind granular permissions, and all available headless through GraphQL.

Enhanced orders grid

Magento

Open Source 2.4.9 GA (and later 2.4.x).

PHP

Tested on 8.4 and 8.5.

Headless

Every feature has a GraphQL query/mutation (admin-token gated).

Permissions

Eight granular ACL resources — grant each capability separately.

Sales → Order Manager → Manage Orders is a faster orders grid with extra columns that normally need a click-through to find:

  • Purchased Items — product names, SKUs and quantities inline.
  • Carrier and Tracking Number — shipment tracking at a glance.
  • Base and purchased Grand Total, bill-to / ship-to names, and a one-click View.

Quick actions, inline edit and the default page size are all configurable.

Threaded, typed notes against any order — kept separate from Magento’s status-comment stream.

FieldMeaning
Typegeneral, internal, or customer.
Visible to customerWhether the note shows on the customer’s side.
Notify customerEmail the customer when the note is added.
AuthorCaptured automatically from the admin user.

Configure under Note Settings: allow customer notes, require a note on status change, and the default “notify customer” choice.

Move orders through a controlled lifecycle with a full, queryable history.

  1. Define valid transitions. The engine enforces a sane status graph — e.g. pendingprocessing / holded / canceled, processingcomplete / holded / canceled, completeclosed. Invalid jumps are rejected with a clear message.

  2. Transition an order (manually, in bulk, via the API, or automatically) — the change is written to a dedicated status-history table with the old/new status & state, the trigger type (manual / bulk / auto / workflow / api), who triggered it, and an optional comment.

  3. Automate. Define workflow rules (from-status → to-status with conditions like payment received or all items shipped), mark them auto-execute, and a cron job processes eligible orders every 15 minutes.

ActionWhat it doesPermission
Bulk status updateChange status on many orders at once (with optional comment + customer notification).bulk_actions
Bulk deletePermanently delete orders and all related records.delete
Un-cancelRevert canceled orders back to pending (restores item quantities).bulk_actions
Delete by criteriaDelete every order matching a date range / customer group / status.delete

Delete orders by criteria

Sales → Order Manager → Order Analytics is a drill-down dashboard over your order data:

Order analytics dashboard

  • Headline KPIs — total orders, revenue, average order value, new customers.
  • Order trends over time, status breakdown, and orders by hour of day.
  • Top customers, top products, top countries, payment-method split.
  • Refunds & cancellations totals.

A nightly cron also rolls each day’s figures into a daily-analytics table for fast headless reporting.

Generate a Xero Sales Invoice CSV in the exact column order Xero’s import expects, with every field mapped from Magento via configuration.

Export orders to Xero

  1. Enable and map fields under Configuration → Xero Export Settings (contact name source, invoice prefix, date format, due-date offset, account codes, tax type, tracking categories, branding theme…).
  2. Go to Export Orders to Xero, choose a date range / status, and Download Xero CSV — or select orders in the grid and use the bulk Export to Xero action.

Each order expands into product, shipping and discount line items, each with its own account code, so the import maps cleanly onto your Xero chart of accounts.

Every capability is exposed over GraphQL and gated to admin tokens — a storefront customer can never reach these.

{ orderNotes(order_id: 1) { note_id note_type comment created_by_name created_at } }
{ orderStatusHistory(order_id: 1) {
old_status new_status trigger_type triggered_by created_at } }
{ orderAnalytics(from_date: "2026-01-01", to_date: "2026-12-31") {
summary { total_orders total_revenue average_order_value }
daily { date order_count total_revenue } } }
{ orderWorkflowRules(is_active: true) { rule_id name from_status to_status auto_execute } }

Stores → Configuration → AgenticEcom · Sales, Customers & Marketing → OrderManager (the screens live under Sales → Order Manager: Manage Orders, Order Analytics, Delete Orders).

OrderManager configuration

GroupKey settings
GeneralEnable module, bulk actions, status workflows, order notes.
Order DeletionShow a delete button on the order-view page + its label.
Grid SettingsDefault page size, quick actions, inline edit.
Workflow SettingsEnable auto-transitions; notify on status change.
Note SettingsAllow customer notes, require note on status change, default notify-customer.
Xero Export SettingsFull field-by-field mapping to the Xero Sales Invoice CSV (contact, invoice, dates, line items, account codes, tax type, tracking categories, branding).
What exactly gets removed when I delete an order?

The order and all of its related records — invoices, shipments, credit memos, payment, addresses, items, both the native and custom status history, the order-grid row, and the originating quote — all in one transaction. It’s permanent, which is why it sits behind its own Delete Orders permission.

Can I stop staff jumping an order straight to “complete”?

Yes — enable Status Workflows. The engine only allows valid transitions (e.g. you can’t go pendingclosed), and every change is recorded with who/what/when in the status-history table.

How do auto-transitions decide what to advance?

Workflow rules carry conditions — payment received, all items shipped, or grand-total comparisons. A cron job runs every 15 minutes, finds orders in the rule’s from-status that meet the conditions, and transitions them, logging each as a workflow change.

Is the Xero export really Xero-ready?

Yes — it emits the exact Xero Sales Invoice CSV columns in order, with product, shipping and discount lines split onto their own account codes, dates in your chosen format, and a configurable due-date offset. Map it once and every export is import-ready.

Is it secure?

Each capability has its own ACL resource (orders, notes, workflows, analytics, bulk actions, delete, un-cancel, Xero export), so you grant exactly what each role needs. Every GraphQL resolver requires an admin token. Order deletion registers Magento’s secure area and runs in a transaction. Verified clean on PHP 8.4 and 8.5.