к юзеру прикрепляется корзина, а к корзине прикрепляются добавленные продукты, как тогда она реализуется для неавторизованного пользователя?
user_id null. у пользователя на фронте или в сессиях может храниться какой-нить уникальный ключ, например uuid. после регистрации/аутентификации ставишь user_id и если надо мержишь корзины.
Получается, при добавлении книги в корзину неавторизованным пользователем, в таблице carts создаётся новая запись с user_id = null. Непонятно, как привязать ее к пользователю. Допустим, на фронте или в сессии хранится уникальный айдишник пользователя, его, получается нужно прокидывать в дополнительное поле таблицы carts в момент создания корзины? Или прямо в primary key? И ещё проблема, эти неавторизованные корзины будут копиться, если юзер не регистрируется и не логинится. Он вошёл на сайт, набрал корзину и закрыл сайт. Потом снова открыл - новая корзина?
Если корзина на сесси, то она дропается, лучше какой-то псевдо токен сделать что-ли :/ Как вариант, но не факт что бест практик
Непонятно, что непонятно. У тебя есть уникальный ключ корзины, по нему и привязываешь user id. Где хранить - как хочешь, можешь uuid сделать, можешь доп поле. Корзины могут копиться только, если юзер теряет сессию. Закрыл - открыл сайт ничего не изменится для него, это не чистит storage и куки, если не в инкогнито. И да, забытые корзины надо будет чистить спустя время. Их так же используют для аналитики.
Спасибо, буду разбираться!
Обсуждают сегодня