Писал камент, и браузер слетел, поэтому кратко:
например весь контент в блоке wrapper
Загрузка инфы об отдельном товаре должна происходить с помощью аякса в блок wrapper, заменяя прежнее содержимое. Но предварительно, перед заменой wrappera надо сохранить в кеш все содержимое и узнать насколько была проскролена страница.
Здесь обязателен хеш-тег, чтобы при нажатии на кнопку «назад» страница не перезагружалась.
Далее при нажатии на кнопку «назад», кеш обратно вставляем в блок wrapper и скролим страницу вниз.
Засыпаю, поэтому может быть немного непонятно. Чтобы понять, смотрим пример.
Пример: pastehtml не работает, поэтому вот
jsfiddle.net/7W87S/2/
или так
fiddle.jshell.net/7W87S/2/show/
Думаю чтобы не использовать хеш-теги, для хранения контента можно использовать локальное хранилище. А высоту скрола хранить в куках