Vanilo 4 is not yet final, the list of features below may change!
Vanilo 4.0 will be released shortly after the Laravel 11 release, which is officially Q1 2024, some sources claim that it is February 6th, 2024.
We also expect that Laravel 11 will come out in February 2024, which means Vanilo 4 is expected to be released in February 2024 too.
Vanilo 4 is a major version and will contain breaking changes.
Vanilo 4 was originally scheduled for 2023, but we ended up adding Laravel 10 support and tons of features to the Vanilo 3.x series.
Basically, the life span of Vanilo 3 has been extended, and most of the Vanilo 4 features were added to v3.5 , v3.6 and v3.7 but without any breaking changes.
The last v3 release (as of writing) is 3.8.2, which supports Laravel 9-10 and PHP 8.0 - 8.3 versions.
On the 24th May, 2023 (right after releasing v3.8.0) the work on Vanilo 4 has started.
Our Saas offering, Vanilo Cloud has been running on Vanilo 4 since June 2023, which means that Vanilo 4 is battle tested and production ready from the beginning.
Vanilo 4 will support Laravel 11, and most probably Laravel 10. Why "most probably"? Because Laravel 11 is not yet final, and we can't yet tell if there will be any breaking changes in Laravel 11 that would heavily affect Vanilo.
Especially the upcoming $casts -> casts()
changes of Eloquent models can cause surprises if Laravel decides to
drop the old way (based on the $casts
property) of defining attribute casts.
So far, Vanilo 4 dev versions work well with Laravel 11 dev versions.
If we'll have to decide whether Vanilo 4 should be compatible Laravel 10 or with Laravel 11, and there will be no easy way to support both, then we'll opt for Laravel 11 and drop Laravel 10 support.
But, our aim is Vanilo 4 to support both Laravel 10 and 11 if possible.
V4 contains quite several breaking changes, and the discarding of deprecated features.
First of all, Vanilo 4 is PHP 8.2+ and Laravel 10+ only.
Most of the breaking changes are related to the interfaces. Argument and return types have been added where it was missing, and new methods have been added.
The Framework
namespace aliases for Vanilo v2 compatibility have been deleted.
The minimum Enum version is now v4.1.
The list of all breaking changes will be added to the upcoming upgrade guide of Vanilo 4.
currency
fieldpayment_method_id
can now be explicitly saved for the order (earlier, it could be obtained via $order->payments->first()->payment_method_id
)Channelable
behavior to Foundation Product, MasterProduct, PaymentMethod, ShippingMethod and Taxonomy classeswithImages
, withChannels
methodsStockable
interface, and it is implemented by the Product
and MasterProductVariant
modelsisZoneRestricted()
& isNotZoneRestricted()
helper methods to the ShippingMethod
class