- Dropped PHP 8.3 support
- Dropped Laravel 10 & 11 support
- Added Laravel 13 support
- Changed the minimal Laravel 12 versions from 12.38 to 12.50. Minimums for 10.48, and 11.46.2 have not changed.
- Fixed the dynamic resolution of the order number generator, when the config is changed after the app has booted
- Added the
SerializesModelstrait to theBaseOrderEventandBaseOrderItemEventclasses (thus it applies to all events) - Changed the minimum Laravel version requirements to v10.48, v11.46.2 and v12.38 respectively
- Dropped PHP 8.2 Support
- Changed the minimum Laravel 10 version to v10.48
- Added Laravel 12 Support
- BC: Added the
getBuyable()method to theOrderIteminterface - Changed the
OrderandOrderIteminterfaces to extend the newSaleandSaleIteminterfaces from the contracts module - Changed the TimeHash order number generator to use uppercase by default
- Added the
extra_digitflag to the Time Hash generator that created 4+4+4 char number (eg. "77IG-13T3-5FH9") instead of 3+4+4 ones (eg. "77I-13TX-C002") - Fixed the missing float cast of the order item's price field
- PHP 8.4 deprecation notice fixes
- Added SubItem support to the order items
- Changed the minimal Address module requirement to v3.4.1
- Added
domainfield to the orders table - Added then automatic completion of
$order->domainfrom the current request to the OrderFactory - Changed
OrderItem::hasConfiguration()to return false on empty arrays as well - Added the
OrderBillpayerUpdatedevent - Added the
OrderShippingAddressUpdatedevent
- Added the follwing getters to the default Billpayer model (proxies down to the underlying address):
country_idprovince_idpostalcodecitystreet_address(fetches $billpayer->address->address) - can't useaddresssince that collides with the address() relationaddress2access_code
- Dropped PHP 8.0 & PHP 8.1 Support
- Dropped Laravel 9 Support
- Dropped Enum v3 Support
- Added PHP 8.3 Support
- Added Laravel 11 Support
- Changed minimum Laravel version to v10.43
- Changed minimal Enum requirement to v4.2
- Upgraded to Konekt Address and User modules to v3
- Added the
currencyfield to the orders table - Added Carbon 3 compatibility
- BC: The return type of the
getNumber()method of the Order interface is no longer nullable - BC: Added the
$hooksand$itemHooksparameters to theOrderFactoryinterface - BC: Changed the
OrderIteminterface into Configurable - BC: Added 7 methods to the
OrderIteminterface - BC: Added the
getLanguage(),getFulfillmentStatus()anditemsTotal()methods to theOrderinterface - BC: Added to float return type to the
total()method of theOrderinterface - BC: The
OrderStatusandFulfillmentStatusinterfaces extend theEnumInterface - Fixed possible null return type on Billpayer::getName() when is_organization is true but the company name is null
- Added the
ofUser()scope to the base Order model
- Added the
OrderProcessingStartedevent - Added the following order item events:
OrderItemShipped,OrderItemPickedUp,OrderItemsIsReadyForDelivery,OrderItemsIsReadyForPickupandOrderItemHasBeenPutOnHold - Added optional hooks (callbacks) support to order items creation in the order factory class
- Changed the visibility of the
OrderFactory::callHookmethod fromprivatetoprotected
- Fixed incorrect zone lists due to a bug in Address module v2.5.0 (bump to v2.5.1)
- Added Laravel 10 support
- Added the
processingorder status enum value - Added the
ready_for_pickupfulfillment status enum value - Added optional hooks (callbacks) support to the
OrderFactory::createFromDataArray()method - Added
intcast to OrderItem::quantity property - Added the
Order::getLanguage()method
- Fixed non-standard migration name
- Added the
FulfillmentStatusenum - Added
fulfillment_statusto orders and order items - Added
languagefield to orders - Added
ordered_atfield to orders (defaults tocreated_atunless explicitly specified) - Fixed the address creation with order factory when passing an explicit address type
- Changed the random number algo in
TimeHashgenerator frommt_randtorandom_intfor a decreased collision probability
- Added
Configurableto theOrderItemmodel (incl. implementing the interface)
- Added final PHP 8.2 support
- Changed minimum Concord version requirement to v1.12
- Added Enum 4.0 Support
- Changed minimum Laravel requirement to 9.2
- Changed minimum Konekt module requirements to:
- Address: 2.2
- Concord: 1.11
- Enum: 3.1.1
- Laravel Migration Compatibility: 1.5
- User: 2.4
- Bump module version to mainline (no change)
- Added Laravel 9 support
- Added PHP 8.1 support
- Dropped PHP 7.4 Support
- Dropped Laravel 6-8 Support
- Removed Admin from "Framework" - it is available as an optional separate package see vanilo/admin
- Minimum Laravel version is 8.22.1. See GHSA-3p32-j457-pg5x
- Alignment to rest of Vanilo 2.2 modules
- Changed internal CS ruleset from PSR-2 to PSR-12
- Added strict type checking, fixed errors it brought to surface
- Improved the Documentation
- Dropped PHP 7.3 support
2.2.0 is actually part of Vanilo 2.1 series, but because of semver... 🤷
- Added PHP 8 support
- Added
Order::findByNumber()method - Added unique index to
orders.numberfield - Changed the internal implementation of the nanoid order number generator to utilize the generic nanoid generator from the support module
- Changed CI from Travis to Github
- Only works with Vanilo 2.1+ modules
- Fixed invalid method call in
Order::open()scope (introduced with 2.1.0)
- Added
isOpenandgetOpenStatusesmethods to OrderStatus - Added the
open()scope to orders for retrieving open orders
- BC: Updated interfaces to v2
- BC: Upgrade to Enum v3
- Added nanoid order number generator
- Added Laravel 8 Support
- Dropped PHP 7.2 support
- Dropped Laravel 5 Support
- Added Laravel 7 Support
- Added PHP 7.4 support
- Dropped PHP 7.1 support
- Added Laravel 6 Support
- Version bump only, no new features
- Added the Laravel Migration Compatibility v1.0 package to properly solve the Laravel 5.8 + bigInt problem.
- Complete Laravel 5.8 compatibility (likely works with 0.4.0 & 0.5.0 as well)
- PHP 7.0 support has been dropped
- No change, version bumped for v0.5 series
- Laravel 5.7 compatible
- Tested with PHP 7.3
- Removed vanilo/address dependency
- New events:
OrderWasCancelledandOrderWasCompleted
- Adjusted to Vanilo v0.3 series
- Fixed a bug introduced with v0.2.1 that prevented from submitting an order with OrderFactory
- Custom Order and OrderItem attributes can be mass assigned (without extending the model classes)
- Laravel 5.6 compatible
- Billing Address => Billpayer
- Billpayer implemented here (temporary, should be moved in upcoming
billingmodule) - Order factory works
- Basic totals can be calculated
- Order statuses have proper labels
- Orders are soft delete
- Composer dependency fix (for subsequent modules)
- 🚀