cart->get(); $subtotal = $this->cart->subtotal(); $shippingRate = ShippingRate::forCart($subtotal); $shippingCost = $shippingRate ? $shippingRate->getCostForTotal($subtotal) : 0; $total = $subtotal + $shippingCost; return view('shop.cart.index', compact('items', 'subtotal', 'shippingRate', 'shippingCost', 'total')); } public function add(Request $request) { $request->validate(['variant_id' => 'required|exists:product_variants,id', 'qty' => 'integer|min:1']); $this->cart->add($request->variant_id, $request->integer('qty', 1)); return back()->with('success', 'Artikel zum Warenkorb hinzugefügt.'); } public function update(Request $request) { foreach ($request->input('qty', []) as $key => $qty) { $this->cart->update($key, (int) $qty); } return back()->with('success', 'Warenkorb aktualisiert.'); } public function remove(string $key) { $this->cart->remove($key); return back()->with('success', 'Artikel entfernt.'); } }