Где хранить корзину гостя в интернет-магазине?
В базе храню. Клиенты расстраиваются, когда не могут обнаружить свою корзину на другом устройстве, а заказчики расстраиваются, если не могут сделать аналитику по брошенным корзинам.
Самая грамотная по моему следующая стратегия. 
Анонимный пользователь получает в localstorage или в куку свой идентификатор который вечный. 
Дальше приложение считывает этот идентификатор, если он уже есть в базе то товары складываются в бд именно для этого пользователя, если нет то просто в локалстораге. 
После логина все уходит в бд и хранится только там.