Laravel eCommerce describes online shop, marketplace and B2B eCommerce solutions based on the Laravel PHP framework. They can be standalone applications, headless API microservices or packages that can be installed in any Laravel application to add eCommerce features to existing setups.
Laravel is the most popular PHP framework and that for good reasons:
- Easy to customize and use
- Really great community
- Fast and scalable
These reasons make Laravel a perfect choice for building online shops and eCommerce applications. For our favorite PHP framework, e-commere packages for different purposes exist. Here's a list of the top Laravel eCommerce packages in their category:
- Aimeos (eCommerce framework, headless API & shop system)
- Bagisto (shop system)
- GetCandy (API only)
- LaravelShoppingcart (shopping cart)
What packages is best may depend on your own requirements, so let’s have a look which suits best for each case.
Aimeos
Aimeos is the most liked eCommerce framework for Laravel and is build for being as extensible as the Laravel PHP framework itself and integrates into existing Laravel 6/7/8 applications. It’s feature rich and you can adapt everything to your needs regardless of what your requirements are.
Homepage: https://aimeos.org/Laravel
Supports: Laravel 6.x LTS, 7.x, 8.x
Positive:
- Supports all current Laravel versions
- Multi channel, multi vendor and multi inventory support
- Has multi-tenant SaaS support including custom domains
- Ultra fast render times of 20ms and response times of 100ms
- Has virtual, configurable and custom products incl. bundles
- Sell every product as subscription with recurring payment
- Supports discount rules and vouchers
- 100+ payment gateways via Omnipay PHP library
- JSON REST API build on the jsonapi.org standard
- Extension to build own market places available
- Great documentation available
Negative:
- Learning curve due to its huge feature set and extensible architecture
Bagisto
Bagisto is a stand-alone application that can't be integrated into already existing Laravel applications. It primarily targets small business and the middle east area with native RTL (right-to-left) support.
Homepage: https://bagisto.com
Supports: Laravel 7.x
Positive:
- Has configurable, group, bundle and virtual products
- Has multi channel and multi inventory support
- Supports discount rules
- JSON REST API build on jsonapi.org standard
- Extension to build own market places available
- Lots of videos from the company about Bagisto
Negative:
- Not suitable for existing Laravel applications
- No real multi-currency support (fixed conversion only)
- Almost all available payment integrations must be paid for
- ~100 tables incl. fixed structures that are hard to extend
- Requires ElasticSearch or Algolia for fast search
- CMS features are too simple for real use
- Limited documentation
GetCandy
GetCandy is a headless API package that offers a REST API only. There's also an admin package for managing products, customers and orders. No front-end is included because that you need to build on your own.
Homepage: https://getcandy.io
Supports: Laravel 5.7
Positive:
- Progressive web applications (PWA) backend
- Should scale because it requires ElasticSearch as storage (no MySQL)
Negative:
- Unsupported and outdated Laravel version
- No front-end as example available
- Very limited feature set
- Payment integrations are not available
- Slow development (weeks and months between commits)
- Limited documentation
- Still in alpha stage
- Future is uncertain at the moment
LaravelShoppingcart (shopping cart)
A shopping cart package is small, easy to use and contains a limited features. The LaravelShoppingcart package consists of a cart/whishlist only and need to be integrated into an existing Laravel 5 application. You have to implement products and checkout yourself.
Homepage: https://github.com/Hardevine/LaravelShoppingcart
Supports: 5.x, 6.x, 7.x and 8.x
Positive:
- Only package that supports all Laravel versions since Laravel 5
- Easy to learn and relative easy to integrate
- If you already have products, it adds the cart features
Negative:
- Feature set is very limited
- A checkout process isn't available
- Won't scale to higher volumes
- No example template is included
- Github account contains lots of unresolved issues
- No support for Laravel 5.8 and later
Conclusion
Aimeos is the top eCommerce framework for Laravel if you need a highly customizable solution that is able to scale. Bagisto offers a simple shop system based on Laravel if you start from a green field. LaravelShoppingcart is a good choice for a few products you need a cart for while GetCandy is promising if you want a PWA frontend only and build that on your own.
Let’s discuss your own experiences :-)
Top comments (5)
Could you please update your content regarding Bagisto? It does have multi language and multi currency support. Custom attributes anyone can make and its free, what is non-free, you might be referring to marketplace add-on. Bagisto can easily scale horizontally to higher volumes provided centralisation of DB, images on S3 and session on Reddis. There are enhancement on Github not unresolved issues.
As you've use the exact same wording as Sanjara at medium.com/@laravel_ecommerce/best..., I respond with the same reply and BTW: You should update your article (dev.to/pathaksaurav/top-3-best-lar...) yourself because it's extremely biased towards Bagisto, which you are working for.
Bagisto has made some design decisions like allowing only one language per channel/domain and offering prices for multiple currency only by a fixed conversion rate. That's no real multi language/currency support where you can add texts in several languages to products for each domain and use independent prices like 0.99 USD and 0.79 EUR. Instead, you wil get 0.99 USD and 0,82 EUR.
Also, you can throw a lot of hardware at Bagisto using AWS but searching for products won't scale well for higher product volumes. You should try with 100k products yourself if you don't believe me.
I've changed the statement about the unresolved issues because it's now better than a few months ago. Nevertheless, a lot of enhancements smell like bugs.
For the custom attributes I think you are right.
There is nothing biased in the article. All it is presented is with the laravel eCommerce packages with what features are available, just for informative purpose. But since you are highlighting postive and negative in yours so its important to present with correct facts since many read your article and also make decisions.
For sure I am from Bagisto and there is nothing wrong in representing that, but since package keep evolving rather being stagnant, I recommend you to test the package now.
You bias by presentation because there are no images for AvoRed and Aimeos making them less relevant. Also, by using 1./2./3. you are implying Bagisto is better then the others but that's intended for sure as you are the marketing manager for Bagisto.
Had a look at current 1.2.0 again and I've updated the multi-language statement because there seems to be multi-language support even if it feels a bit like it's implemented as separate linked products.
The multi-language support in bagisto is by the language you create and associate with channels. You can create any number of language and provide a description of the product in that language.