The Home for Magento 2 Excellence

Quality-tested Magento 2 modules. Explore. Evaluate. Elevate. #magento2

1064 Modules
570 Ready
490 Need Help
๐Ÿ† Leaderboard
Actively Maintained v1.0.1

Order Email Editor for Magento 2

etechflow/module-order-email-editor

Adds an admin button to change the customer email address on a placed order, optionally updating the linked customer account, and keeps a full audit trail of every change.

0
Downloads
0
GitHub Stars
12d ago
Last Release
0
Open Issues
Build Issues
0/3 checks passed

Build Tests

Composer Install
โ€“ DI Compile
โ€“ Templates

Code Quality

CS Coding Standard
โ€“ PHPStan

Tested on Magento 2.4.9

Recent Test History

Each release is tested against the latest Magento version at that time.

v1.0.1 on Magento 2.4.9
Jun 1, 2026

Looking for Contributors

Composer installation fails. Your contribution could help the entire Magento community!

Contribute

Share This Module's Status

Order Email Editor for Magento 2 Magento compatibility status badge

README

Loaded from GitHub

ETechFlow_OrderEmailEditor

Edit the customer email address on a placed Magento order. Fix typos, handle customer-service requests, keep a complete audit trail of every change. Admin-only. Hyvรค-safe by design.

Commercial eTechFlow module. Per-domain HMAC license or eTechFlow bundle key activates the module on your production host. Dev / staging / *.magento.cloud / localhost etc. auto-detect and bypass licensing.

What it adds

  • Edit Email button on every admin order detail page (Order & Account Information panel)
  • A modal: current email shown, new email input, "also update the linked customer account" checkbox
  • Email Change History grid at Sales โ†’ Operations โ†’ Order Email Change History โ€” every change with admin user, IP, timestamp
  • Atomic DB update of every place Magento stores the email (order, addresses, all 4 grid tables, optional customer record, defensive quote sync)

Features

Edit misspelled email on a placed order โœ“
Update billing + shipping address rows on the order โœ“
Auto-reindex Magento's order/invoice/shipment/creditmemo grid tables โœ“
Optionally update the linked customer_entity.email โœ“ (disabled for guest orders)
Defensive quote-table sync if the original quote still exists โœ“
Full audit log with admin user, IP, timestamp โœ“
Standard Magento ACL โ€” granular per-role permissions โœ“
Per-domain HMAC licensing + bundle key support โœ“
Tideways span instrumentation (ETechFlow_OEE_UpdateOrderEmail) โœ“
Verify CLI (etechflow:oee:verify) โœ“
No frontend dependencies (admin-only module) โœ“

Compatibility

Platform Status
Magento Open Source 2.4.4 โ€“ 2.4.8 โœ“
Adobe Commerce 2.4.4 โ€“ 2.4.8 โœ“
Hyvรค themes (any version) โœ“ (admin-only โ€” Hyvรค re-skins the storefront only)
PHP 8.1 / 8.2 / 8.3 / 8.4 โœ“
MySQL 8 / MariaDB 10.6+ โœ“

Installation

# Option A โ€” Composer
composer require etechflow/module-order-email-editor:^1.0
bin/magento module:enable ETechFlow_OrderEmailEditor
bin/magento setup:upgrade
bin/magento setup:di:compile      # production mode only
bin/magento setup:static-content:deploy -f en_GB  # production mode only
bin/magento cache:flush

# Option B โ€” Manual drop-in
cp -r ETechFlow/OrderEmailEditor app/code/ETechFlow/OrderEmailEditor
bin/magento module:enable ETechFlow_OrderEmailEditor
bin/magento setup:upgrade
bin/magento setup:di:compile      # production mode only
bin/magento cache:flush

The setup:upgrade step creates one new database table: etechflow_email_change_history.

Licensing

Admin โ†’ Stores โ†’ Configuration โ†’ eTechFlow โ†’ Order Email Editor โ†’ License

Field Default What it does
Production Environment Yes Yes = check the license key against the current domain. No = run at full features without a key (use on dev/staging on non-standard domains).
License Key (empty) Paste the per-domain key from your purchase email.

If you bought the eTechFlow bundle, enter the bundle key under any module's License section โ€” it activates all eTechFlow modules at once.

Permissions (ACL)

Three new resources appear under System โ†’ Permissions โ†’ User Roles โ†’ Role Resources:

  • ETechFlow_OrderEmailEditor::edit_email โ€” required to use the modal & POST to the update endpoint
  • ETechFlow_OrderEmailEditor::view_history โ€” required to view the history grid
  • ETechFlow_OrderEmailEditor::config โ€” required to view the admin config section

By default all three are granted to Administrators. Assign granularly to limited roles as needed.

Usage

  1. Admin โ†’ Sales โ†’ Orders โ†’ pick any order
  2. In the Order & Account Information panel you'll see an Edit Email button under the existing email
  3. Click it. A modal opens with:
    • Current email shown for confirmation
    • New email input
    • "Also update the linked customer account" checkbox (hidden for guest orders)
  4. Submit. The modal returns a success message, the email on the page updates inline, and a new row is written to etechflow_email_change_history

Viewing change history

Admin โ†’ Sales โ†’ Operations โ†’ Order Email Change History (or the URL /admin/order_email_editor/history/index)

Standard Magento UI Component grid with filterable columns: increment ID, old email, new email, admin who changed it, customer-record-updated flag, IP, timestamp.

Smoke test

After installing, confirm the module is healthy:

bin/magento etechflow:oee:verify

Should print โœ… ALL CHECKS PASSED. v1.0.0 verified.

What this module touches in the database

When the Change Email button is clicked, the module updates these tables in a single transaction:

Table Column How
sales_order customer_email via OrderRepository::save()
sales_order_address email (both billing + shipping rows) via OrderRepository::save()
sales_order_grid customer_email auto (Magento's sales_order_save_after observer reindexes)
sales_invoice_grid customer_email auto, same observer
sales_creditmemo_grid customer_email auto, same observer
sales_shipment_grid customer_email auto, same observer
customer_entity email only if checkbox is on AND sales_order.customer_id is set
quote + quote_address customer_email / email defensive โ€” only if the original quote row still exists
etechflow_email_change_history new row inserted with old/new email, admin info, IP

Uninstall

bin/magento module:disable ETechFlow_OrderEmailEditor
# Optionally drop the history table:
mysql -e "DROP TABLE IF EXISTS etechflow_email_change_history" $DB
# If installed via Composer:
composer remove etechflow/module-order-email-editor
rm -rf app/code/ETechFlow/OrderEmailEditor   # if installed manually
bin/magento setup:upgrade
bin/magento cache:flush

License

Proprietary โ€” see LICENSE.txt. Commercial licenses available at https://etechflow.com.

This content is fetched directly from the module's GitHub repository. We are not the authors of this content and take no responsibility for its accuracy, completeness, or any consequences arising from its use.