| Сообщение от melst | 
	| А как быть с данными которые получены асинхронно при обновлении страницы или переходе на другую? Я sessionStorage только для этого использую. | 
	
	
	| Сообщение от ivt22 | 
	| а мне как раз нужно что-то, что сохранялось бы при обновлении страницы и при переходе на другую страницу, что бы я мог таскать список товаров за пользователем | 
	
Сессия, которую можно стартовать на сервере и использовать посредством супеглобального массива $_SESSION тогда по вашему для чего?
melst,
 
session_start();
if (!isset($_SESSION['id'])) {
    $_SESSION['id'] = array();
    
}
array_push($_SESSION['id'], $id);
зачем тогда на сервере, если вы еще дублируете это на клиенте в sessionStorage?
Сессия по умолчанию живет 24 минуты, если в течении этого времени будет запрос от клиента, то смерть будет отложена на следующие 24 минуты, и т.д. Другими словами, если корзина хранится в сессии, то никуда она не пропадет при переходах между страницами, и пофигу каким образом данные для корзины получены от клиента, асинхронным запросом или нет. Только добавление товаров в корзину на сервере как изложено выше... ну в общем это не корзина. 
sessionStorage будут полезна тогда, когда у клиента будут отключены куки и идентифицировать сессию клиента не получится.
ivt22, я уже писал, что куки можно использовать, и как сессионные, и как действующие установленное время. Только в Битриксе уже есть готовое, что касается продажи, корзины и прочего что с этим связано.