1. Хранить на сервере можно по-разному, в базе данных, сессии(временные файлы на диске), любой другой драйвер хранения.
2. Надо определиться как долго будут храниться товары в корзине. Лучше хранить сессии в базе(в laravel есть такой
драйвер) и корзину тоже, соответственно они будут между собой в отношении. Получается некие таблицы, для временных хранений.
Тут как и в localStorage данные привязываются к уст-ву и клиенту(браузер), может произойти несколько сессий.
Данные у вас временные, можно их просто подчищать, через cron например.