localStorage (js)
В локальное хранилище собираются ID-шники набранных позиций и по AJAX вычисляется сумма в корзине, и постоянно отображается пользователю при выборе товаров (обычно, где-то в углу экрана).
После захода в корзину (при оформлении) весь список позиций корзины пересчитывается снова на сервере (AJAX) для актуализации итоговой суммы, зависящей от многих факторов (наличия, изменения цены, доставки, налогов и т.д.).
А вот после нажатия "Оформить": ещё раз всё просчитывается уже НА СЕРВЕРЕ (PHP) и создаётся сам заказ с оповещением на e-mail и т.д.