Могу предположить, что вы добавляете товар в корзину при помощи ajax-запроса в JS, и сразу после совершения такого запроса переадресовываете пользователя на страницу корзины.
Если я не ошибаюсь в предположении, то я не рекомендовал бы использовать таймаут, т.к. при использовании таймаута 1) вы не можете быть уверены в том, что скрипт, вызываемый ajax-запросом, выполнится за отведенное на таймаут время, соответственно все равно будут возможны ситуации, когда товар еще не добавился, а переадресация уже произошла; и 2) если скрипт выполнится за меньшее количество времени, чем отведено под таймаут, пользователь все равно будет оставаться на текущей странице, ожидая окончания таймаута, что не выглядит хорошим решением с точки зрения user experience.
В таком случае наилучшим решением было бы совершать перенаправление на страницу корзины не сразу и даже не по таймауту, а в коллбэке ajax-запроса (при его успешном выполнении само собой). Этот вариант будет оптимальнее варианта с таймаутом, позволит перенаправлять на страницу только тогда, когда товар добавлен в корзину, плюс (при должной доработке) позволит обработать ситуации, когда товар не был добавлен в корзину из-за ошибки (отобразить ошибку пользователю, и т.п.).
Если же я не прав, и JS и ajax не используются для обработки нажатия на кнопку submit, то вам и переадресация тогда не должна быть нужной, т.к. сабмит формы подразумевает переход на url, указанный в атрибуте action формы, и переадресацией в данном случае должен заниматься серверный скрипт, обрабатывающий данные формы.