カートの中にある商品を全て削除する


商品をいっぱい入れたけど、カートの中を空にしたい!
eccube4ではデフォルトではカートを空にする機能はないので実装する必要があります。

CartController.php
declare(strict_types=1);
namespace Customize\Controller;

use Eccube\Controller\AbstractController;
use Eccube\Service\CartService;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Routing\Annotation\Route;

class CartController extends AbstractController
{
    protected $cartService;

    public function __construct(CartService $cartService)
    {
        $this->cartService = $cartService;
    }

    /**
     * カートの中にある商品を全て削除する
     * @Route("/cart/clear", name="cart_clear")
     */
    public function clear(): RedirectResponse
    {
        $this->cartService->clear();

        return $this->redirectToRoute('cart');
    }
}

後はhtml書いてあげればおk

<a href="{{ path('cart_clear') }}">カートを空にする</a>