r-a-f / ecommerce-realization-days
Library for calculating and displaying order realization (e.g. shipping) dates in e-commerce systems.
v1.0.0
2025-04-03 10:23 UTC
Requires
- php: >=8.2 <8.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.75
- infection/infection: ^0.29.14
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^11
README
Description
Ecommerce Realization Days is a PHP library for calculating and formatting order fulfillment (e.g. shipping) dates in e-commerce systems.
It supports:
- golden hour logic (cutoff time for same-day shipping)
- fixed days off (e.g. holidays)
- weekly days off (e.g. weekends)
- templates with html tags allowed
Installation
Install via Composer:
composer require r-a-f/ecommerce-realization-days
β Example (basic)
use RealizationDays\RealizationDays; $config = new RealizationDays(); $config->setGoldenHour(14); $config->setRealizationDays(3); $config->setDateDaysOff(['2025-05-01', '2025-05-03']); $config->setDateWeekOff([6, 7]); // Saturday and Sunday $context = $config->calc(); echo $context->date->format('Y-m-d');
π― Formatting and display
You can use RealizationDaysFormatter
to generate customer-friendly messages like:
"Order today β ships by Friday"
"Order now β ships until 14:00 today"
π§ͺ Example:
use RealizationDays\RealizationDaysFormatter; // Format output $formatter = new RealizationDaysFormatter($context); // Set weekdays and templates $formatter->setTranslation( ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'], [ 'BEFORE_TODAY' => 'Order today β ships before %DATE_OR_WEEKDAY%', 'BEFORE_TOMORROW' => 'Order today β ships tomorrow!', 'BEFORE_NEXT_DAYS' => 'Order today β ships by %DATE_OR_WEEKDAY%', 'AFTER_TODAY' => 'Order now β ships until %GOLDEN_HOUR% today', 'AFTER_TOMORROW' => 'Order now β ships the day after tomorrow', 'AFTER_NEXT_DAYS' => 'Order now β ships by %DATE_OR_WEEKDAY%', ] ); echo $formatter->format('d-m-Y'); // e.g. "Order today β ships by 20-04-2025"
π€ Author
RafaΕ Pawlukiewicz π pawlukiewicz.com