Crinsane / LaravelShoppingcart

A simple shopping cart implementation for Laravel
MIT License
3.67k stars 1.73k forks source link

change item quantity with priced addon #663

Open Malebestia opened 2 years ago

Malebestia commented 2 years ago

if, in the cart, I change the quantity of an item that has an addon, the single price is not updated correctly because the price of the addon is not considered in the calculation. Have you already thought about it?

I suggest these changes: in CartiItem.php:

`public function __get($attribute) {
    //......
    if ('totalPriceAddons' == $attribute) {
        if (! $this->options->has('addons')) {
            return 0;
        }
    //.....
    if ('total' === $attribute) {
        return $this->qty * ($this->priceTax + $this->totalPriceAddons);
    }
}`

in Cart.php:

`public function total($decimals = null, $decimalPoint = null, $thousandSeperator = null) {
    $content = $this->getContent();
    $total = $content->reduce(function ($total, CartItem $cartItem) {
        //return $total + ($cartItem->qty * $cartItem->priceTax);
        return $total + ($cartItem->total);
    }, 0);
    return $this->numberFormat($total, $decimals, $decimalPoint, $thousandSeperator);
}`