Git Product home page Git Product logo

laravel-cart's Introduction

Laravel Cart

Run tests Build Status Total Downloads Latest Stable Version License

Laravel Cart is a package used to create and manage carts (such as shopping, recently viewed, compared items...) in Laravel application.

Features

  • Session based system.
  • Support multiple cart instances.
  • Classification of commercial and non-commercial carts.
  • Grouping the carts.
  • Quickly insert items with your own item models.
  • Taxation on the cart level (with built-in taxing system).
  • Applying actions on the cart and item level (such as discount, service charge, shipping cost...).
  • Exporting details as Laravel Collection.
  • Allows storage of extended information.
  • Control of firing events.

Versions and compatibility

Currently, the Laravel Cart has three branches that are compatible with the following versions of Laravel:

Branch Tag releases Laravel version
v1.0 1.* 4.x only
v2.0 2.* 5.x only
v3.0 3.* 5.x or above

Currently, versions v1.0 and v2.0 are no longer supported. Version v3.0 was created with more advanced features, and has a completely different way of working from the old version.

Important note (*)

Version 3.0 has a different structure and working method from previous versions. Therefore, if you have used previous versions and do not want to change or want to learn new ways of working, I recommend that you do not install this version. Staying with the old version, it doesn't give you any new features, but gives you safety.

On the contrary, if you choose version 3.0 to work, you will own particularly useful features that previous versions did not have. It is important that you read the documentation carefully to work properly.

Documentation

You can find documentation for version v3.0 here. Documentations for older versions, please see the respective branches.

Testing

The package has been tested through over 120 test cases with GitHub Actions from PHP version 7.1 (Laravel 5.8) to 8.2 (Laravel 10.x). Detailed information about test cases please see here.

License

MIT © Jackie Do

laravel-cart's People

Contributors

andershagbard avatar jackiedo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

laravel-cart's Issues

Initialize cart with an json array of data from a database

Hi, is it possible to initialize a cart with an json array of data from a database?
Example: a cart was created by a client and an json array of cart details was inserted into the database with the order, then the admin needs to reinitialize the cart to change the order items

Add Items to same session name

I'm trying to add items to the same session name but it gets only the last item added.
I need to add many products to the same session 'shopping':
here's the basic code following the docs:

public function addToCart(Request $request, Product $product, Cart $cart)
    {
        $this->cart = $cart->name('shopping');
        $this->cart->addItem([
            'id' =>$product->uuid,
            'title' => $product->title,
            'quantity' =>   1,
            'price' => $product->price,
        ]);
        dd( $this->cart->getName(), $this->cart->getItems());
    }

Results:

image

Apply taxes after discounts

How do I apply taxes after discounts?
If a product costs €1000, with a 20% discount in the cart, the final price is €800, taxes should be applied to this amount.
Am I doing something wrong? The cart now calculates tax on the full price

how i can get hashItem related to specific model to destroy it ?

in case i have model id how i can get hashItem related to this model to destory it

public function destroy(Template $template,Cart $cart): JsonResponse
{
      if ($template->hasInCart('soni-designer')) {
          // here i want to remove item from cart i dont have any hash but i have associative model $template
      }
      return $this->responseJson([
          'success' => true,
          'cart' => $cart->name('soni-designer')->getDetails(withActions: false, withTaxes: false),
      ]);
}

Cart Session Lifetime

Hello,

Is there any way to set cart session lifetime to specific hours?
For example i would like to set the cart a lifetime of 2 hours.

Thanks and regards.

Can't save the cart status

    public function index(Request $request, Cart $cart): View
    {
        $cart->addItem([
            'id' => 200,
            'title' => 'chan',
            'quantity' => 10,
            'amount' => 200
        ]);
        dd($cart->getItems());
    }

I got

array:1 [▼ // app/Http/Controllers/Web/ShopController.php:21
  "item_78381c3fb821cb4ab7abdde82a308930" => Jackiedo\Cart\Item {#418 ▶}
]

if I comment the set item code like:

    public function index(Request $request, Cart $cart): View
    {
//        $cart->addItem([
//            'id' => 200,
//            'title' => 'chan',
//            'quantity' => 10,
//            'amount' => 200
//        ]);
        dd($cart->getItems());
    }

I got:

[] // app/Http/Controllers/Web/ShopController.php:21

Shouldn't it keep in sessions?

Laravel: 9.45.1
Cart: 3.0

When calling a cart from another controller, an empty basket comes out

When calling a cart from another controller, an empty basket comes out (most likely a new one).
Created a cart like this $cart->newInstance('shopping-cart')->useForCommercial(true)->useBuiltinTax(true);
Now I'm trying to get this cart in the checkout controller like $cart->name('shopping-cart') but I'm getting an empty cart. How to be in such a situation? Help me please.

Serialize unserialize

Helo,
Is is possible to serialize/unserialize cart from database ??

I have in my app function to write to db $this->cart->getDetails()->toArray(), but don't know how to restore this ?

/facade/cart

why did you write a facade on the basket, if you didn’t write it down phpDoc,
For exaple check that class \Illuminate\Support\Facades\Cache
it turns out that autocomplete will work and everything will be cool, otherwise I don’t even understand where these methods come from, I had to go to your service provider and see what your facade refers to

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.