darryldecode / laravelshoppingcart

Shopping Cart Implementation for Laravel Framework
1.34k stars 438 forks source link

Session key is required. #300

Open nandomardi23 opened 3 years ago

nandomardi23 commented 3 years ago

how to fix it <?php

namespace App\Http\Livewire\Cart;

// use session; use App\Models\Carts; use Livewire\Component; use App\Models\Products; use Darryldecode\Cart\Cart; use Darryldecode\Cart\CartCondition; // use Darryldecode\Cart\Exceptions\InvalidConditionException;

class Index extends Component { public $tax = '0%';

public function render()
{

    $products = Products::all();

    $condition = new CartCondition([
        'name' => 'pajak',
        'type' => 'tax',
        'target' => 'total',
        'value' => $this->tax,
        'order' => 1
    ]);

    \Cart::session(Auth()->id())->condition($condition);
    $items = \Cart::session(Auth()->id())->getContent()->sortBy(function ($cart) {
        return $cart->attributes->get('added_at');
    });

    if (\Cart::isEmpty()) {
        $cartData = [];
    } else {
        foreach ($items as $item) {
            $cart[] = [
                'rowId' => $item->id,
                'name' => $item->name,
                'qty' => $item->quantity,
                'pricesingle' => $item->price,
                'pricetotal' => $item->getPriceSum(),
            ];
        }
        $cartData = collect($cart);
    }
    $sub_total = \Cart::session(Auth()->id())->getSubtotal();
    $total = \Cart::session(Auth()->id())->getTotal();

    $newCondition = \Cart::session(Auth()->id())->getCondition('pajak');
    $pajak = $newCondition->getCalculatedValue($sub_total);

    $summary = [
        'sub_total' => $sub_total,
        'pajak' => $pajak,
        'total' => $total
    ];

    return view('livewire.cart.index', [
        'products' => $products,
        'carts' => $cartData,
        'summary' => $summary
    ])
        ->extends('layouts.admin')
        ->section('content');
}

}