etechflow / module-order-email-editor

etechflow/module-order-email-editor

Edit the customer email on a placed order, optionally sync to the linked customer account, keep an audit trail of every change. Admin-only, Hyvä-safe. Magento Open Source + Adobe Commerce compatible.

magento2-module Compatibility: Not yet tested Code Quality: Pending Tests: N/A Security: Pending proprietary
Viewing version 1.0.1. Latest version is 1.2.4. Switch to latest

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.

Changelog — ETechFlow Order Email Editor

All notable changes to this module. Adheres to Semantic Versioning.


[1.0.0] — 2026-05-19

Initial commercial release

Edit the customer email on a placed order. Fix typos, handle customer requests, keep an audit trail. Admin-only. Hyvä-safe by design.

Added

  • Edit Email button on every order detail page (admin → Sales → Orders → pick order). Opens a modal: current email shown, new email input, optional "also update linked customer account" checkbox (hidden for guest orders).
  • Email Change History grid at admin → Sales → Operations → Order Email Change History. Filterable Magento UI Component grid of every change made.
  • Atomic DB update of all the places Magento stores the order email:
    • sales_order.customer_email
    • sales_order_address.email (both billing + shipping rows)
    • sales_order_grid + sales_invoice_grid + sales_creditmemo_grid + sales_shipment_grid (via Magento's core sales_order_save_after reindex)
    • customer_entity.email (if checkbox ticked + linked customer exists)
    • quote.customer_email + quote_address.email (defensive, only if quote still exists)
  • Audit log in etechflow_email_change_history — admin id, admin name, old email, new email, customer-record-updated flag, IP, timestamp.
  • Per-installation HMAC license with bundle-key support — same as every other eTechFlow module. Unlicensed installs silently hide the Edit Email button + history menu and reject the update endpoint with 403.
  • Two ACL resources: edit_email (modal + update endpoint) and view_history (history grid). Granular per-role permissions.
  • Profiler instrumentation — wraps the update path in an ETechFlow_OEE_UpdateOrderEmail Tideways span.
  • Verify CLIbin/magento etechflow:oee:verify checks DI resolution + DB table presence.
  • Hyvä-safe — admin-only module with zero frontend assets. Hyvä themes never touch the admin.

Compatibility

  • Magento Open Source 2.4.4 – 2.4.8
  • Adobe Commerce 2.4.4 – 2.4.8
  • PHP 8.1 / 8.2 / 8.3 / 8.4
  • All Hyvä child themes
Versions
Version Stability QA Status Compatibility Released
1.2.4 stable Fail Magento 2.4.7-2.4.8 Details 2026-06-22 15:15:05
1.2.0 stable Not tested Not yet tested Details 2026-06-06 14:14:49
1.1.0 stable Not tested Not yet tested Details 2026-06-04 08:17:39
1.0.2 stable Not tested Not yet tested Details 2026-05-22 06:42:22
1.0.1 stable Not tested Not yet tested Details 2026-05-21 16:53:19

Requires 9

Package Constraint
magento/framework ^103.0||^104.0
magento/module-backend ^102.0||^103.0
magento/module-config ^101.2||^102.0
magento/module-customer ^103.0||^104.0
magento/module-quote ^101.2||^102.0
magento/module-sales ^103.0||^104.0
magento/module-store ^101.1||^102.0
magento/module-ui ^101.2||^102.0
php ~8.1.0||~8.2.0||~8.3.0||~8.4.0

Suggests 1

Package Reason
etechflow/module-next-day-eligibility Part of the eTechFlow module bundle — one bundle key activates every eTechFlow module.

No QA results yet

QA pipelines haven't run for this version. Compatibility and quality results appear here once the vendor publishes a tagged release that gets ingested.

License
proprietary
Authors

More from etechflow

View vendor
Make it pay

Turn an existing module into recurring revenue.

If you already maintain a Magento 2 module on GitHub or GitLab, listing it on Packagento takes about five minutes. We mirror your tags, handle distribution signing, and route paid licenses through Stripe Connect, so you can keep shipping the way you already do.