girover / cart
shopping cart package for laravel
Requires
- php: ^8.0
- illuminate/contracts: ^8.0|^9.0
- spatie/laravel-package-tools: ^1.4.3
Requires (Dev)
- brianium/paratest: ^6.2
- nunomaduro/collision: ^5.3
- orchestra/testbench: ^6.15
- phpunit/phpunit: ^9.3
- spatie/laravel-ray: ^1.23
- vimeo/psalm: ^4.8
This package is auto-updated.
Last update: 2024-10-22 00:12:12 UTC
README
Content
- Introduction
- Prerequisites
- Installation
- Configuration
- Usage
- Testing
- Changelog
- Contributing
- Security Vulnerabilities
- Credits
- License
Introduction
girover/cart is a package for e-commerce websites to deal with shopping car.
Prerequisites
- Laravel 8+
- PHP 8+
- Mysql 5.7+
Installation
You can add the package via composer:
composer require girover/cart
Before installing the package you should configure your database.
Then you can install the package by running Artisan command
php artisan cart:install
this command will take care of the following tasks:
- Publishing Config file
config\cart.php
to the config folder of your Laravel application. - Publishing migration files to folder
Database\migrations
in your application. - Migrate the published migrations.
Configuration
girover/cart
offers two ways to use the cart in your application.
- Authenticated User using database driver for storing cart data.
- Session driver to store cart data in session.
To specify which way you should use, you can add a driver to config/cart.php
file
return [ 'driver' => 'database', //'driver' => 'session', ]
When setting driver to database
, the cart data will be stored in database table carts
. And users should be authenticated to access cart functionality.
When setting driver to session
, no database is used and data will be stored in session.
In addition no authenticated users are required to access cart functionality.
In database cart your User
model must use trait Girover\Cart\Concerns\HasCart
.
Usage
To start using the cart, you can use the global helper function shopping_cart
.
So you can this function to add items, remove, increase quantities or decrease.
// CartController shopping_cart()->add(['id'=>'1', 'name'=>'Iphone 13', 'price'=>1000], 'id');
Notice that the second argument takes an attribute's name to make sure that items are associated with a specific key, which makes it easier for counting and processing items.
If you choose name
for example, so every time you add new item with name Iphone 13
to the cart then only quantity and total price of this item will be changed.
You can also pass a model as first parameter to the cart's add
method.
use App\Models\Product; $product = Product::find(1); shopping_cart()->add($product, $product->id);
To increase quantity of specific item in the cart, you can use the method increaseItemQuantity($key)
$product = Product::find(1); shopping_cart()->increaseItemQuantity($product->id);