Я в своё время сохранял именно корзину на момент оформления заказа. Прошла оплата, зафиксировал данные (цена, количество, наименование, номер заказа, доставка и прочее).
Если реляционная БД, то переносил данные в отдельные 2 таблицы (первая информацию о заказе хранит, а вторая хранит позиции из корзины). Потом перешёл на MongoDB и это одна запись в коллекции.
Почему так — иногда дизайн (как вид, так и поведение) меняется, надо переделывать, и в данном случае проще просто отрендерить страницу. Например для письма, для вывода на экран, для API и для печати.