PHPackages                             etechflow/module-next-day-eligibility - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. etechflow/module-next-day-eligibility

ActiveMagento2-module[Utility &amp; Helpers](/categories/utility)

etechflow/module-next-day-eligibility
=====================================

Automatically manages a Next Day Eligible attribute on products based on real-time stock and a per-product Drop-Ship override, and restricts configured next-day shipping methods at checkout when any cart item is not eligible.

v1.8.4(1mo ago)016[2 PRs](https://github.com/etechflow/module-next-day-eligibility/pulls)proprietaryPHPPHP ~8.1.0||~8.2.0||~8.3.0||~8.4.0

Since May 23Pushed 1mo agoCompare

[ Source](https://github.com/etechflow/module-next-day-eligibility)[ Packagist](https://packagist.org/packages/etechflow/module-next-day-eligibility)[ RSS](/packages/etechflow-module-next-day-eligibility/feed)WikiDiscussions main Synced 3w ago

READMEChangelogDependencies (22)Versions (17)Used By (0)

Next Day Shipping Eligibility for Magento 2
===========================================

[](#next-day-shipping-eligibility-for-magento-2)

**Comprehensive stock-aware shipping restrictions in one module.**

Two independent rules, one admin section, one license:

1. **Next-day eligibility** (auto-managed) — removes configured next-day shipping methods from checkout when any cart item is out of stock or otherwise ineligible. Eligibility is auto-maintained by a stock observer; nothing for the merchant to flip per product.
2. **Backorder express restriction** (opt-in, v1.1.0+) — removes any express methods you list when the cart contains backorder items (out of stock with backorders enabled, or partially short). Useful for merchants who explicitly flag pre-order / made-to-order products and don't want them sold with express delivery.

Both rules raise a single dismissible checkout banner with merchant-customisable wording. Both respect the Drop-Ship Eligible exemption.

Stock-aware. Drop-ship aware. Hyvä compatible. Works with Magento Open Source and Adobe Commerce.

---

What's new
----------

[](#whats-new)

The version-by-version history lives in `CHANGELOG.md`. Highlights of the most recent releases:

- **v1.4.0** — New per-product `Force Standard Shipping Only` flag. Tick it on the product edit page (under *eTechFlow Shipping*) to hard-disable next-day shipping for that product regardless of stock state. For bulky / hazmat / fragile / made-to-order items. Ships with a CLI verification command: `bin/magento etechflow:nde:verify --sku=` runs an end-to-end check that the observer + evaluator pipeline is wired correctly.
- **v1.3.0** — Module status banner at the top of admin config (shows whether the module is actually active), PDP badge visibility toggle, drop-ship grid filter, inline tooltips on every field.
- **v1.2.0** — Shipping method fields are now multi-select dropdowns auto-populated from your active shipping methods — merchants no longer need to know technical codes.
- **v1.1.0** — Absorbed the deprecated `ETechFlow_BackorderShippingRestrictor` module's features as an opt-in "Backorder Express Restriction" toggle. The bundle is now 2 modules (NDE + BackorderEtaDisplay).

---

What it solves
--------------

[](#what-it-solves)

Merchants who advertise next-day delivery hit the same problem from two directions:

ScenarioWithout the moduleWith the moduleCustomer picks "Next Day" on an out-of-stock itemOrder ships a week late, refund + 1-star reviewNext-day automatically hidden at checkout; banner explains whyCustomer picks "Express" on a pre-order / backorder itemSame problem — supplier ETA is two weeks, customer paid £15 for next-dayExpress methods automatically hidden when the toggle is enabledDrop-shipped products with zero local stockMarked out of stock, no Add to Cart buttonStay eligible — supplier ships direct, backorders auto-enabledCustomer asks "where is my order?"Volume support ticketsBanner sets the expectation at checkoutRequirements
------------

[](#requirements)

**Magento**Open Source 2.4.4+ OR Adobe Commerce 2.4.4+**PHP**8.1, 8.2, 8.3, or 8.4**Compatible themes**Luma (default) + HyväInstallation
------------

[](#installation)

### Option A — Composer (recommended)

[](#option-a--composer-recommended)

```
composer require etechflow/module-next-day-eligibility:^1.1
bin/magento module:enable ETechFlow_NextDayEligibility
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento cache:flush
```

### Option B — Manual (from zip)

[](#option-b--manual-from-zip)

1. Unzip `etechflow-module-next-day-eligibility-1.1.0.zip` into:

    ```
    /app/code/ETechFlow/NextDayEligibility/

    ```

    **The directory MUST be named `ETechFlow` (capital E, capital T, capital F) — case-sensitive on Linux servers.**
2. Enable and set up:

    ```
    bin/magento module:enable ETechFlow_NextDayEligibility
    bin/magento setup:upgrade
    bin/magento setup:di:compile
    bin/magento cache:flush
    ```
3. Verify:

    ```
    bin/magento module:status | grep NextDayEligibility
    ```

After install — quick setup
---------------------------

[](#after-install--quick-setup)

Open the admin and go to **Stores → Configuration → eTechFlow → Next Day Eligibility**.

### Step 1 — License

[](#step-1--license)

**License → License Key**: paste the key from your purchase email and save.

> **Don't have a key yet?** Dev/staging hosts are free. Any URL matching `localhost`, `*.test`, `*.local`, `staging.*`, `dev.*`, `*.magento.cloud`, ngrok tunnels, or RFC 1918 IPs runs at full features without a key. For non-standard dev domains, set **License → Production Environment = No** instead.

### Step 2 — Enable the module

[](#step-2--enable-the-module)

**General Settings → Enable Module = Yes** → save.

### Step 3 — Pick your next-day shipping methods

[](#step-3--pick-your-next-day-shipping-methods)

**General Settings → Next Day Shipping Methods** is a multi-select dropdown. The list is auto-populated from your store's currently active shipping methods (the same list shown under Stores → Configuration → Sales → Shipping Methods). Tick the methods you want removed for ineligible carts — typically just your paid next-day or express options. Hold Ctrl/Cmd to select multiple. Save.

> **⚠️ Important — keep at least one fallback method unticked.** Don't tick every option. The intended pattern is to tick only your paid express / next-day methods so a standard or free option always stays available for ineligible carts. If you accidentally select everything, a safety net returns the original rates and logs a warning to `var/log/system.log` to prevent a stuck checkout — but that's a guardrail, not a config strategy. See `docs/USER_GUIDE.md` "Configuration trap" for the typical UK setups.

That's the core feature done. Browse to a product detail page — you'll see the green "Next Day Eligible" / grey "Standard Delivery Only" badge under the price.

### Step 4 — (optional) Enable Backorder Express Restriction

[](#step-4--optional-enable-backorder-express-restriction)

If you also want to block express shipping on backorder items:

**Backorder Express Restriction**:

- Set **Restrict Express Methods on Backorder = Yes**
- **Express Methods to Restrict on Backorder** — same multi-select pattern as the next-day field above, but stored independently. Tick whichever methods should disappear when a backorder item is in the cart. Can overlap with or differ from your next-day selection.
- Leave **Skip Drop-Ship Products = Yes** (default) so drop-ship products bypass this rule.

### Step 5 — (optional) Customise the checkout banner

[](#step-5--optional-customise-the-checkout-banner)

**Checkout Notice**:

- **Show Notice at Checkout = Yes** (default)
- **Notice Style** — warning (amber), info (blue), or error (red)
- **Notice Title** — bold heading, e.g. *"Next day delivery unavailable"*
- **Notice Message** — body copy, e.g. *"One or more items in your cart is not eligible for next day delivery."*

All four fields can be overridden per store view for multi-brand setups.

### Step 6 — (optional) Hide or simplify the product-page badge

[](#step-6--optional-hide-or-simplify-the-product-page-badge)

**General Settings → Show Badge on Product Page**:

- **Both** (default) — green "Next Day Eligible" + grey "Standard Delivery Only" badges
- **Eligible only** — show the green badge, hide the grey one (recommended if you don't want to draw negative attention to ineligible products)
- **Never** — no PDP badge at all; the shipping restriction at checkout still works

Per-product overrides (v1.4.0+)
-------------------------------

[](#per-product-overrides-v140)

Two checkboxes on the product edit page (under the **eTechFlow Shipping** attribute group) let you override the auto-calculation per product:

AttributeWhat it doesWhen to use**Drop-Ship Eligible**Always eligible regardless of local stock — supplier ships directProducts fulfilled by a same-day-shipping supplier**Force Standard Shipping Only** *(new in v1.4.0)*Always ineligible regardless of stock — only standard shipping shown at checkoutBulky / hazmat / fragile / made-to-order / promotional itemsPrecedence inside the eligibility evaluator:

1. `Force Standard Shipping Only = Yes` → always ineligible (merchant override wins)
2. `Drop-Ship Eligible = Yes` → always eligible
3. Otherwise: stock check (`qty > 0 AND in stock` → eligible)

Both flags work as Magento mass-action targets — see "Tips" below.

Tips for managing the catalogue
-------------------------------

[](#tips-for-managing-the-catalogue)

**Bulk-flag drop-ship products.** In *Catalog → Products*, filter the grid (now filterable by Drop-Ship Eligible — new in v1.3.0), tick the products, and use *Actions → Update Attributes → Drop-Ship Eligible = Yes*. Magento applies it to every selected product in one click.

**Bulk-flag force-standard-only products.** Same workflow with the new attribute: filter by *Force Standard Shipping Only = No*, narrow further (e.g. by category = "Furniture" or by weight), tick all, *Actions → Update Attributes → Force Standard Shipping Only = Yes*. Useful for one-pass classification of your bulky-item or hazmat catalog.

**Bulk imports.** If you're using a CSV import or custom script to load thousands of products, set `$product->setData('_etechflow_skip_eligibility', true)` before each save to bypass the per-product observer. Then batch-evaluate after the import completes via `\ETechFlow\NextDayEligibility\Model\EligibilityEvaluator::evaluateById(...)`. See `docs/USER_GUIDE.md` "Bulk imports — the escape hatch" for the full pattern.

**Module status banner.** At the top of the NDE admin config section is a coloured banner showing whether the module is active, idle, or has a licence problem. Read it first if anything seems off — most "I configured it but nothing happens" cases are answered by that banner.

Documentation
-------------

[](#documentation)

FileRead when`README.md` (this file)First — overview + install + quick setup`docs/USER_GUIDE.md`Full reference: every admin field, every scenario, troubleshooting, known limitations`CHANGELOG.md`What changed in each version`LICENSE.txt`Licence termsSupport
-------

[](#support)

- **Email:**  — typically responds within one business day
- **Website:**

License
-------

[](#license)

Proprietary — see `LICENSE.txt`. Licensed per Magento installation, with unlimited dev/staging environments under the same business entity.

To change your production domain (e.g. site migration), email `support@etechflow.com` with your old + new domain and order number. New key issued same business day.

###  Health Score

44

—

FairBetter than 90% of packages

Maintenance92

Actively maintained with recent releases

Popularity8

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 76.9% 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 ~2 days

Total

11

Last Release

38d 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 (10 commits)")[![ahmed21-rg](https://avatars.githubusercontent.com/u/185612486?v=4)](https://github.com/ahmed21-rg "ahmed21-rg (2 commits)")[![FasihUrRahman](https://avatars.githubusercontent.com/u/129258716?v=4)](https://github.com/FasihUrRahman "FasihUrRahman (1 commits)")

---

Tags

drop-shippingecommerceetechflowhyvahyva-compatiblemagento-2magento-modulemagento2magento2-modulenext-day-shippingphpshippingstock

### Embed Badge

![Health badge](/badges/etechflow-module-next-day-eligibility/health.svg)

```
[![Health](https://phpackages.com/badges/etechflow-module-next-day-eligibility/health.svg)](https://phpackages.com/packages/etechflow-module-next-day-eligibility)
```

###  Alternatives

[mollie/magento2

Mollie Payment Module for Magento 2

1131.9M16](/packages/mollie-magento2)[buckaroo/magento2

Buckaroo Magento 2 extension

32420.3k8](/packages/buckaroo-magento2)[dotdigital/dotdigital-magento2-extension

Dotdigital for Magento 2

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

Magento2 Prometheus Exporter

68357.9k](/packages/run-as-root-magento2-prometheus-exporter)[loki/magento2-components

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

1011.8k26](/packages/loki-magento2-components)[amzn/amazon-pay-magento-2-module

Official Magento2 Plugin to integrate with Amazon Pay

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

PHPackages © 2026

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