Насколько я понимаю, тележки сохраняются в кавычках даже для гостей. Зарегистрированные пользователи имеют идентификатор клиента, который хранится вместе с цитатой, а гости - нет, поэтому в их цитате указан нулевой идентификатор клиента, поэтому вы можете обнаружить, что в БД слишком много потерянных / неполных цитат. Единственный способ связать гостя с его корзиной - сохранить идентификатор котировки в своем сеансе.
Вы можете продлить срок, в течение которого им доступна их цитата, сохранив идентификатор цитаты непосредственно в их cookie с длительным тайм-аутом, но это приводит к очевидному нарушению безопасности; любой может изменить значение в своем cookie-файле и просмотреть чью-либо корзину.
Единственный безопасный способ - это создать таблицу гостевых токенов и связать ее с кавычками (извините, на этот раз кода нет, на низком уровне слишком много объяснений). Токен является единственной общедоступной частью и устанавливается в cookie. Токены должны быть случайными и длинными, скажем, 512-битными / 64-символьными, но не слишком длинными, потому что они включены в каждый заголовок HTTP. Каждый раз, когда создается новый сеанс, он может быть возвращающимся гостем, поэтому проверьте токен и найдите его в таблице. Возьмите идентификатор найденной цитаты и сохраните его в сеансе, тем самым воскресив старую корзину. Кавычки с идентификаторами клиентов не должны быть спасены таким образом, поэтому должны быть освобождены, тем более что клиент, вышедший из системы, не хочет, чтобы какая-либо часть его учетной записи оставалась видимой.