Google Indexing API for Magento 2
€46.52
Netto: €46.52
Estimated Delivery Date is a Magento 2 module that shows the customer the estimated shipping and delivery date before the order is placed. The information appears on the product page, in the cart, in email communication, and in the admin panel for the order.
The solution helps turn delivery uncertainty into a clear purchase promise. The customer sees when the store plans to ship the product and when delivery can be expected, while the store team gets tools to keep this information up to date after the purchase as well.
Customers of online stores increasingly make purchase decisions not only based on price, but also based on fulfillment time. A lack of clear delivery information leads to cart abandonment, customer service inquiries, and unnecessary tension after purchase.
The module addresses the most important buyer needs:
As a result, the customer does not need to look for information in the terms and conditions, FAQ, or contact customer service to confirm the estimated delivery date.
The module supports sales and order handling at several stages of the purchase journey. On the product page, it strengthens the buying decision; in the cart, it reduces uncertainty before completing the transaction; and after purchase, it helps maintain consistent communication with the customer.
Key benefits for the store:
Estimated Delivery Date calculates the estimated date based on processing time, transit time, cut-off time, holidays, weekends, rules, and settings assigned directly to the product. The module can display either a single date or a date range, depending on the configuration and calculation result.
The administrator can manage messages globally for a store view and override them at the product level when needed. This makes it possible to handle both ready-to-ship products and made-to-order assortments, products requiring longer processing, or goods with a non-standard transit time.
On the product page, the module displays a message with the estimated delivery date. The information can be based on global settings, rules, or attributes of a specific product. For products whose date should not be displayed, the message can be disabled directly in the product data.
In the cart, the module displays the estimated date for the order. This means the customer sees delivery information even at the final stage before proceeding to checkout.
The module supports a widget that counts down to the same-day shipping cut-off time. It can inform the customer how much time is left to place the order so the store can still ship it today.
The widget can work as an inline element next to the delivery message or as a fixed element attached to a selected corner of the screen. After the cut-off time passes, it can be hidden or replaced with an after cut-off message.
The algorithm takes into account non-working days defined in the configuration and holidays saved in the module. As a result, the estimated date is not based only on simply adding a number of calendar days.
Supported are:
The administrator can import holidays and non-working days from a CSV file. This makes it easier to prepare the delivery calendar before holiday seasons, long weekends, or warehouse shutdowns.
The import supports single days, date ranges, and recurring dates. Records can be narrowed down, among other things, to a store view, country, region, shipping method, or MSI source.
The module includes a rules table that can define processing time, transit time, customer message, confidence level, and priority. Rules can be linked to a product, category, store view, or shipping method.
This allows the store to differentiate dates for selected product groups or shipping methods without changing the global configuration.
The module adds a product attribute group called Estimated Delivery Date. From the product edit screen, the administrator can set individual processing time, transit time, a custom message, a confidence level for the date, or completely disable date presentation for a given product.
This is useful for made-to-order products, heavy products, non-standard products, personalized products, or items available under a different logistics model than the rest of the catalog.
After the order is placed, the module saves the calculated date as a snapshot on the order and order items. This means that a later change in configuration, calendar, or product attributes does not change the historical information saved with the order.
The snapshot includes, among other things, the estimated shipping date, estimated delivery date, customer message, code of the rule used, confidence level, and calculation time.
In the order view, the administrator sees an Estimated Delivery Date section. They can manually change the shipping date, delivery date, and customer message, provide a reason for the delay, and send the customer a message with an apology and the new date.
The module saves a change history, allowing the store team to check the previous and new date, the reason for the change, and whether the email was sent.
The module adds a block with the estimated delivery to order, invoice, and shipment emails. It can also send a separate email after the order is paid and a message after a manual change of the delivery date.
Communication after the date change may include the previous date, the new date, a default apology message, and the reason for the delay entered by the administrator.
The module provides REST endpoints for retrieving estimates for a product, customer cart, guest cart, and order. This makes it possible to use estimated delivery data in frontend integrations, external systems, or mobile applications.
The date can be visible in the following places:
The module works especially well in stores where fulfillment time depends on product availability, warehouse operations, shipping method, or the holiday calendar.
Example use cases:
Estimated Delivery Date organizes delivery date communication in Magento 2. It combines date calculation, customer-facing messages, product-level configuration, holiday handling, order snapshots, emails, and API in a single module.
For the customer, this means greater transparency before purchase. For the store, it means fewer questions, better expectation management, and more professional communication after the order is placed.
This document describes installation of the Estimated Delivery Date module, configuration in the Magento 2 admin panel, and management of the attributes added to the product. Field descriptions are based on the current implementation of the module.
The package is intended for installation via Composer.
Example installation from a VCS repository:
composer config repositories.kowal.estimated.delivery.date vcs https://github.com/kowalco/estimated-delivery-datecomposer require kowal/module-estimated-delivery-datebin/magento module:enable Kowal_EstimatedDeliveryDatebin/magento setup:upgradebin/magento cache:flushAfter production deployment, you should run the standard compilation and static asset deployment process used in the Magento project:
bin/magento setup:di:compilebin/magento setup:static-content:deploybin/magento cache:flushModule configuration is available in the admin panel:
Stores > Configuration > Sales > Estimated Delivery DateSettings are available at the default, website, and store view levels, according to the Magento configuration mechanism.
Enables or disables the module for the given configuration scope. When the field is disabled, frontend messages should not be displayed.
Default value: Yes.
The time zone used for date calculation and cut-off time. If the field is left empty, the module uses the store time zone configured in Magento.
Example value:
Europe/WarsawUse case: useful when the store operates in multiple store views or when the warehouse handling shipments works in a different time zone than the store default configuration.
Fallback message used as emergency text when the store wants to show general information instead of a specific date.
Default value:
We will confirm the delivery date after the order is placed.The date format used when rendering messages for the customer. The field uses the ICU pattern supported by Magento date formatting.
Default value:
EEEE, d MMMMExample output:
Monday, 18 MayMinimum number of business days needed to process the order before shipping.
Default value: 1.
Use case: defines the earliest possible shipping date.
Maximum number of business days needed to process the order.
Default value: 1.
Use case: allows you to create a shipping date range when processing may take longer than the minimum time.
Minimum number of business days in transit from shipping to delivery.
Default value: 1.
Use case: defines the earliest possible delivery date after shipping.
Maximum number of business days in transit.
Default value: 2.
Use case: allows you to show a delivery range, for example when the carrier usually delivers in 1-2 business days.
The cut-off time for same-day shipping. The value should be entered in the HH:MM format.
Default value:
14:00If the current time is later than the cut-off, the module moves the start of the calculation to the next business day.
List of weekdays treated as non-working. Values should be provided as comma-separated ISO numbers:
1 - Monday,2 - Tuesday,3 - Wednesday,4 - Thursday,5 - Friday,6 - Saturday,7 - Sunday.Default value:
6,7Use case: by default, skips Saturdays and Sundays when counting business days.
Additional safety buffer added to transit time.
Default value: 0.
Use case: useful during periods of increased order volume, unstable carrier performance, or for products that require a more cautious delivery promise.
Enables display of the estimated date on the product page.
Default value: Yes.
Enables display of the estimated date in the cart.
Default value: Yes.
Enables the Estimated Delivery Date section in the order view in the admin panel.
Default value: Yes.
Enables the cut-off countdown widget on the product page.
Default value: Yes.
Enables the cut-off widget in the cart.
Default value: No.
Defines how the cut-off widget is displayed.
Available values:
Inline - the widget is displayed where the block is embedded,Fixed - the widget is attached to a selected corner of the screen,Inline + Fixed - the widget works at the same time as both an inline and fixed element.Default value: Inline.
Defines the position of the fixed widget.
Available values:
Bottom Right - bottom right corner,Bottom Left - bottom left corner,Top Right - top right corner,Top Left - top left corner.Default value: Bottom Right.
Defines the device types on which the fixed widget should be visible.
Available values:
Desktop,Mobile,Desktop + Mobile.Default value: Desktop + Mobile.
Defines the widget behavior after the cut-off time has passed.
Available values:
Hide Widget - the widget will be hidden,Show After Cut-off Message - the widget will show an after cut-off message.Default value: Show After Cut-off Message.
Messages support simple variables in the {{nazwa_zmiennej}} format.
Available variables for delivery messages:
{{ship_date}},{{ship_date_from}},{{ship_date_to}},{{delivery_date}},{{delivery_date_from}},{{delivery_date_to}}.Available variables for cut-off messages:
{{cutoff_time}},{{cutoff_countdown}}.Message template used when the calculation returns a delivery date range.
Default value:
Estimated delivery: {{delivery_date_from}} - {{delivery_date_to}}Message template used when the earliest and latest delivery dates are the same.
Default value:
Estimated delivery: {{delivery_date}}Message displayed before the cut-off time is reached.
Default value:
Order within {{cutoff_countdown}} and we will ship it today.Message displayed after the cut-off time has passed if the After Cut-off Behavior field is set to show a message.
Default value:
Today shipping window is already closed. We will ship on the next business day.Enables a separate email sent after the order is paid.
Default value: No.
Use case: allows you to confirm to the customer that the payment has been accepted and the order has entered fulfillment.
Email template sent after payment.
Default value:
estimated_delivery_date_emails_payment_templateSender of the post-payment message. The field uses email identities configured in Magento.
Default value:
salesAllows sending the customer a message after a manual change of the delivery date in the admin panel.
Default value: Yes.
Email template sent after the delivery date is changed.
Default value:
estimated_delivery_date_emails_date_change_templateSender of the delivery date change message.
Default value:
salesDefault apology text used in the delivery date change message.
Default value:
We apologize, the fulfillment date of your order has changed.Requires providing a delay reason when manually changing the date in the order view.
Default value: No.
Use case: enforces better operational discipline and makes it easier to explain date changes later.
Automatically sends a message to the customer after a manual change of the delivery date.
Default value: No.
If the field is disabled, the administrator can decide to send the message by selecting the checkbox in the order view.
The module adds an Estimated Delivery Date attribute group to the product. The attributes are optional and have store view scope. If they are not filled in, the module uses rules or global configuration.
Product attributes take precedence over rules calculated for the product. This allows you to quickly override the date for a specific SKU without changing global settings.
The attributes are available in the Magento admin panel:
Catalog > Products > Edit Product > Estimated Delivery DateIf the group is not visible in a given attribute set, you should check the product attribute set configuration in Magento.
Attribute code:
edd_processing_days_minMinimum number of business days needed to process a specific product.
Use case: a ready-to-ship product can have a value of 0, while a product sourced from a supplier may have a value such as 3.
Attribute code:
edd_processing_days_maxMaximum number of business days needed to process a specific product.
Use case: if processing time varies, you can set for example a minimum of 2 and a maximum of 5 so that the message shows a safer range.
Attribute code:
edd_transport_days_minMinimum number of business days in transit for a specific product.
Use case: for products shipped with a different carrier or from a different warehouse.
Attribute code:
edd_transport_days_maxMaximum number of business days in transit for a specific product.
Use case: for oversized, palletized, or specially handled logistics products.
Attribute code:
edd_static_textCustom customer message displayed instead of the message from the global configuration.
Examples:
Made-to-order product. We will confirm the delivery date after purchase.Estimated delivery: {{delivery_date_from}} - {{delivery_date_to}}The attribute can use the same date variables that are available in global delivery messages.
Attribute code:
edd_confidenceConfidence level of the date saved with the delivery promise.
Recommended values:
guaranteed - guaranteed date,likely - likely date,estimated - estimated date,unknown - no reliable estimate.The current implementation saves this value in the calculation result and snapshots. It can be used by templates, integrations, or further message personalization.
Attribute code:
edd_disableDisables display of the estimated delivery for a specific product on the product page and also disables the cut-off widget for it.
Use case: unavailable products, products requiring an individual delivery quote, services, pre-order products, or goods for which the store does not want to make a delivery promise.
For most products, the attributes can be left empty and the global configuration can be used. It is worth filling them in only when a specific product genuinely differs from the standard logistics process.
Example approach:
Disable Estimated Delivery Date or set an explanatory message.After changing product attributes, you should refresh the Magento cache if the store uses full page cache or additional theme cache mechanisms.
The import is available in the admin panel:
Sales > Estimated Delivery Date > Import HolidaysThe CSV file must contain the columns:
code,name,typeOptional columns:
date_from,date_to,month,day,country,region,postcode_pattern,shipping_method,source_code,store_id,scope,is_activeSupported types in the type column:
single - single date, requires date_from,range - date range, requires date_from and date_to,recurring - recurring date, requires month and day.Description of selected import fields:
code - unique code of the holiday or non-working day,name - name visible in the admin area,type - entry type: single day, range, or recurring date,date_from - start date in YYYY-MM-DD format,date_to - end date in YYYY-MM-DD format,month - month for a recurring entry,day - day of the month for a recurring entry,country - country code,region - region,postcode_pattern - postal code pattern,shipping_method - shipping method,source_code - MSI source code,store_id - store view ID,scope - application scope, default shipping_delivery,is_active - entry activity status.Example:
code,name,type,date_from,date_to,month,day,country,store_id,is_activechristmas_2026,Christmas Break,range,2026-12-24,2026-12-26,,,,,1new_year,New Year,recurring,,,1,1,,,1The Estimated Delivery Date section is available in the order view if the Show in Admin Order field is enabled.
The administrator can edit:
If email after a date change is enabled, the administrator can select sending a message with an apology and the new date. The module saves change history with the previous and new date, the reason, and information about whether the email was sent.
The module provides the endpoints:
GET /rest/V1/estimated-delivery/product/:skuGET /rest/V1/estimated-delivery/cart/:cartIdGET /rest/V1/estimated-delivery/guest-cart/:cartIdGET /rest/V1/estimated-delivery/order/:orderIdThe API returns, among other things, the shipping date, delivery date, message, confidence level, rule code, calculation date, and data source. For an order, the module returns the saved snapshot if it exists.