PHPackages                             etechflow/module-order-email-editor - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Mail &amp; Notifications](/categories/mail)
4. /
5. etechflow/module-order-email-editor

ActiveMagento2-module[Mail &amp; Notifications](/categories/mail)

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.

1.0.2(2w ago)001proprietaryPHPPHP ~8.1.0||~8.2.0||~8.3.0||~8.4.0

Since May 21Pushed 2w agoCompare

[ Source](https://github.com/etechflow/module-order-email-editor)[ Packagist](https://packagist.org/packages/etechflow/module-order-email-editor)[ RSS](/packages/etechflow-module-order-email-editor/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (8)Versions (3)Used By (0)

ETechFlow\_OrderEmailEditor
===========================

[](#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
------------

[](#what-it-adds)

- **Edit Email button** on every admin order detail page (Order &amp; 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
--------

[](#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
-------------

[](#compatibility)

PlatformStatusMagento 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
------------

[](#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
---------

[](#licensing)

**Admin → Stores → Configuration → eTechFlow → Order Email Editor → License**

FieldDefaultWhat it does**Production Environment**YesYes = 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)
-----------------

[](#permissions-acl)

Three new resources appear under **System → Permissions → User Roles → Role Resources**:

- `ETechFlow_OrderEmailEditor::edit_email` — required to use the modal &amp; 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
-----

[](#usage)

1. **Admin → Sales → Orders → pick any order**
2. In the **Order &amp; 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

[](#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
----------

[](#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
----------------------------------------

[](#what-this-module-touches-in-the-database)

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

TableColumnHow`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 rowinserted with old/new email, admin info, IPUninstall
---------

[](#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
-------

[](#license)

Proprietary — see `LICENSE.txt`. Commercial licenses available at .

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance96

Actively maintained with recent releases

Popularity1

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

18d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/72d596daffc1cbadfe809b006d2fc518e5ca32cdccca9485410d282898d07ba1?d=identicon)[etechflow0](/maintainers/etechflow0)

---

Top Contributors

[![ayeshanisar786](https://avatars.githubusercontent.com/u/106437953?v=4)](https://github.com/ayeshanisar786 "ayeshanisar786 (3 commits)")

---

Tags

adminaudit-logcustomer-serviceecommerceetechflowhyvahyva-compatiblemagento-2magento-modulemagento2magento2-moduleordersphp

### Embed Badge

![Health badge](/badges/etechflow-module-order-email-editor/health.svg)

```
[![Health](https://phpackages.com/badges/etechflow-module-order-email-editor/health.svg)](https://phpackages.com/packages/etechflow-module-order-email-editor)
```

###  Alternatives

[mollie/magento2

Mollie Payment Module for Magento 2

1131.8M12](/packages/mollie-magento2)[loki/magento2-components

Core module for defining Alpine.js components with advanced AJAX features

1010.0k22](/packages/loki-magento2-components)[dotdigital/dotdigital-magento2-extension

Dotdigital for Magento 2

50390.4k20](/packages/dotdigital-dotdigital-magento2-extension)[run-as-root/magento2-prometheus-exporter

Magento2 Prometheus Exporter

68353.9k](/packages/run-as-root-magento2-prometheus-exporter)[buckaroo/magento2

Buckaroo Magento 2 extension

32414.8k7](/packages/buckaroo-magento2)[amzn/amazon-pay-magento-2-module

Official Magento2 Plugin to integrate with Amazon Pay

108521.2k1](/packages/amzn-amazon-pay-magento-2-module)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
