Package Data | |
---|---|
Maintainer Username: | cyvelnet |
Maintainer Contact: | cyvelnet@gmail.com (Cyvelnet) |
Package Create Date: | 2017-05-23 |
Package Last Update: | 2022-03-02 |
Home Page: | |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-12-03 03:03:35 |
Package Statistics | |
---|---|
Total Downloads: | 92 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 3 |
Total Watchers: | 2 |
Total Forks: | 0 |
Total Open Issues: | 0 |
This project is still under development, it is far from ready for production.
Require this package with composer using the following command:
composer require cyvelnet/laravel-easycart
After updating composer, add the ServiceProvider to the providers array in config/app.php
Cyvelnet\EasyCart\EasyCartServiceProvider::class,
and register Facade
And optionally add a new line to the aliases
array:
'EasyCart' => Cyvelnet\EasyCart\Facades\EasyCart::class,
Add new product or update quantity on existing cart item
// Add product to cart
EasyCart::add($id, $name, $price, $qty);
// Add product to cart with attributes & weight
EasyCart::add($id, $name, $price, $qty, $attributes = [], $weight);
// Add multiple products
EasyCart::add([
[
'id' => '1'
'name' => 'Product 1'
'price' => '199.99'
'qty' => '1',
'attributes' => ['color' => 'red'],
'weight' => 0.5
],
[
'id' => '2'
'name' => 'Product 2'
'price' => '299.99'
'qty' => '1'
]
]);
Update cart item
An unique rowId is assigned to each cart item, use
getRowId()on cart item to retrieves rowId
*
// update qty
EasyCart::update($rowId, $qty);
// update other
EasyCart::update($rowId, [
'attributes' => ['color' => 'green'],
'qty' => 2,
'price' => 399.99
]);
Remove an item from cart
EasyCart::remove($rowId);
Get a row by rowId
EasyCart::get($rowId);
Wipe cart completely
EasyCart::destroy();
Get the total number of quantity in cart.
EasyCart::qty();
Get the cart subtotal before a condition value is being added, use EasyCart::total()
to retrieves the final price
EasyCart::subtotal();
Get the cart total with condition values calculated
EasyCart::total();
Get the cart items EasyCart::content() is an aliase to EasyCart::items()
, Cyvelnet\EasyCart\Collections\CartItemCollection
instance is return
EasyCart::items()
Get the cart total weight
EasyCart::weight()
Find a cart item by product id, a Cyvelnet\EasyCart\CartItem
instance is return
EasyCart::find($id);
Find a cart item by an array of ids, a Cyvelnet\EasyCart\Collections\CartItemCollection
instance is return
EasyCart::findByIds($ids = []);
EasyCart support condition, which is essential to ECommerces application, either provides discount or add additional prices are supported.
Adding a condition is simple, just instantiate a Cyvelnet\EasyCart\CartCondition object and you are ready to go.
// Add a 50% discount to cart
$fiftyPercentDiscount = new CartCondition($name = '$50 Off', $value = '-50') // you have to use a - (minus sign) to indicate a discount is expected
EasyCart::condition($fiftyPercentDiscount);
Sometimes you want to only give an discount to only to a selected range of products instead of apply to the whole cart, it is easy
$fiftyPercentDiscount = new CartCondition($name = '$50 Off', $value = '-50');
$fiftyPercentDiscount->onProduct([1,2,3,4]);
EasyCart::condition($fiftyPercentDiscount);
Life is not always easy, what if you need to give an discount of 20% but with a maximum up to $50 ?
$fiftyPercentDiscount = new CartCondition($name = '20% Off', $value = '-20');
$fiftyPercentDiscount->maxAt(50);
EasyCart::condition($fiftyPercentDiscount);
Remove condition by type
EasyCart::removeConditionByType($type);
Remove condition by name
EasyCart::removeConditionByName($name);
EasyCart support multiple instances, no extra configuration is needed, just point it to instance and it works the same as normal
EasyCart::instance('wishlist')->add($id, $name, $price, $qty);
EasyCart::instance('wishlist')->destroy();
Sometimes a cart expiration is needed, maybe for reservation, or other usage, this is handful in EasyCart
// create a new instances with 15 minutes expiration
EasyCart::instance('reservation', \Carbon::now()->addMinutes(15));
To verify whether a cart is expired, use EasyCart::isExpired()
// check if a cart is expired
EasyCart::instance('reservation')->isExpired();
Since you may expire a cart, you might want to make a countdown too
EasyCart::instance('reservation')->expirationTimestamp();