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.
Build Tests
Code Quality
Tested on Magento 2.4.9
Recent Test History
Each release is tested against the latest Magento version at that time.
Top Contributors
View LeaderboardLooking for Contributors
Composer installation fails. Your contribution could help the entire Magento community!
Share This Module's Status
README
Loaded from GitHubETechFlow_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 endpointETechFlow_OrderEmailEditor::view_historyโ required to view the history gridETechFlow_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
- Admin โ Sales โ Orders โ pick any order
- In the Order & Account Information panel you'll see an Edit Email button under the existing email
- 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)
- 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.