定制 al-mamun-devops/laravel-shopping-cart 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

al-mamun-devops/laravel-shopping-cart

最新稳定版本:v1.0.0-alpha

Composer 安装命令:

composer require al-mamun-devops/laravel-shopping-cart

包简介

Lightweight shopping cart for Laravel 12 using session or filesystem (no DB)

README 文档

README

A lightweight and reusable shopping cart package for Laravel 12+, designed for developers who want to add cart functionality without needing a database. This package uses Session or File Storage for managing cart data.

🚀 Features

  • ✅ Works with Laravel 12+
  • 🧠 No database required
  • 🗃️ Storage options: Session or File system
  • 🔧 Simple API for adding, updating, removing, and clearing items
  • 💰 Automatic cart total and item count calculation
  • 📦 Easy to install and integrate into any Laravel project

📦 Installation

1. Add the package via Composer (local or from GitHub)

composer require al-mamun-devops/laravel-shopping-cart

2. Publish configuration file

php artisan vendor:publish --tag=config --provider="AlMamunDevOps\ShoppingCart\ShoppingCartServiceProvider"

This will publish config/shoppingcart.php where you can choose storage type:

return [
    'storage' => env('SHOPPINGCART_STORAGE', 'session'), // or 'file'
    'file_path' => storage_path('app/shopping_cart.json'),
];

⚙️ Configuration

You can choose between Session and File Storage:

Option Description
session Stores cart data in the Laravel session. Default option.
file Persists cart data in a JSON file under storage/app/shopping_cart.json.

Set your preferred option in the .env file:

SHOPPINGCART_STORAGE=session

🧰 Usage

Use the Cart Facade to manage cart operations:

use Cart;

// Add products
Cart::add(1, 'Laptop', 1000, 2);
Cart::add(2, 'Mouse', 300, 1);

// Update quantity
Cart::update(1, 5);

// Remove item
Cart::remove(2);

// Get all items
$items = Cart::all();

// Get total amount
$total = Cart::total();

// Get total count
$count = Cart::count();

// Clear cart
Cart::clear();

🧩 Example Controller

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Cart;

class CartController extends Controller
{
    public function index()
    {
        return response()->json(Cart::all());
    }

    public function add(Request $request)
    {
        Cart::add(
            $request->id,
            $request->name,
            $request->price,
            $request->quantity
        );

        return response()->json(['message' => 'Item added successfully']);
    }

    public function clear()
    {
        Cart::clear();
        return response()->json(['message' => 'Cart cleared']);
    }
}

🧱 Folder Structure

packages/
└── al-mamun-devops/
    └── laravel-shopping-cart/
        ├── composer.json
        ├── src/
        │   ├── ShoppingCartServiceProvider.php
        │   ├── Facades/
        │   │   └── Cart.php
        │   ├── Services/
        │   │   └── CartManager.php
        │   └── Helpers/
        │       └── StorageDriver.php
        ├── config/
        │   └── shoppingcart.php
        └── README.md

🧠 Methods Summary

Method Description
add($id, $name, $price, $quantity = 1, $attributes = []) Add an item to the cart
update($id, $quantity) Update the quantity of an item
remove($id) Remove an item from the cart
clear() Clear all items from the cart
all() Retrieve all cart items
total() Calculate total price
count() Count total number of items

🧑‍💻 Development Setup

If you are developing this package locally within a Laravel app:

  1. Place the package inside packages/al-mamun-devops/laravel-shopping-cart
  2. Add this to your main app’s composer.json:
"repositories": [
    {
        "type": "path",
        "url": "packages/al-mamun-devops/laravel-shopping-cart"
    }
]
  1. Run:
composer require al-mamun-devops/laravel-shopping-cart:dev-main
  1. Test it in your app!

🪪 License

This package is open-sourced software licensed under the MIT license.

👨‍💻 Author

Md Al Mamun
GitHub: al-mamun-devops

💡 Contributing

Pull requests are welcome! If you’d like to enhance the package (e.g. add Redis, Cookie storage, or tests), feel free to open an issue or PR.

⭐ Star the Repo

If you find this package helpful, please give it a ⭐ on GitHub to support future development!

统计信息

  • 总下载量: 1
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-10-23