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.6.0

Next Day Shipping Eligibility for Magento 2

etechflow/module-next-day-eligibility

Removes next-day and express shipping methods from checkout when cart items are out of stock or flagged as backorder, keeping delivery promises accurate through an automatic stock observer.

1
Downloads
Below average
0
GitHub Stars
11d 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.6.0 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

Next Day Shipping Eligibility for Magento 2 Magento compatibility status badge

README

Loaded from GitHub

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

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

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

Scenario Without the module With the module
Customer picks "Next Day" on an out-of-stock item Order ships a week late, refund + 1-star review Next-day automatically hidden at checkout; banner explains why
Customer picks "Express" on a pre-order / backorder item Same problem โ€” supplier ETA is two weeks, customer paid ยฃ15 for next-day Express methods automatically hidden when the toggle is enabled
Drop-shipped products with zero local stock Marked out of stock, no Add to Cart button Stay eligible โ€” supplier ships direct, backorders auto-enabled
Customer asks "where is my order?" Volume support tickets Banner sets the expectation at checkout

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

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)

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

    <magento-root>/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

Open the admin and go to Stores โ†’ Configuration โ†’ eTechFlow โ†’ Next Day Eligibility.

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

General Settings โ†’ Enable Module = Yes โ†’ save.

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

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

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

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+)

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

Attribute What it does When to use
Drop-Ship Eligible Always eligible regardless of local stock โ€” supplier ships direct Products 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 checkout Bulky / hazmat / fragile / made-to-order / promotional items

Precedence 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

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

File Read 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 terms

Support

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.

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.