Где хранить данные о заказах в корзине интернет магазина до оформления заказа?

Если пользователь зарегистрировался и вошел в кабинет, то хранить в базе данных.
Если пользователь не зарегистрирован, то хранить в localStorage или в IndexedDB, просто потому что куки и сессия может быстро протухнуть, а это очень сильно разочаровывает, когда ты накидал интересных вещей в корзину, а через некоторое время открыл сайт, а в корзине пусто.
Если пользователь незарегистрированным накидал в корзину товаров, то если он зарегистрируется, то сохранить корзину в базу данных.

Не думаю, что можно дать конкретный ответ - тут многое зависит от того, какие технологие используете и на какие платформы нацелены.
К примеру, если предполагаете, что в будущем появиться мобильное приложение и/или перепишите фронт на условном react/vue/[подставить свое], то лучше хранить в базе.
Если точно знаете, что дальше сайта не уйдете - можно и в сессии.