Что такое заказ? Это набор некоторых параметров и свойств + корзина.
Набор товаров берется из корзины, а вот сумма заказа хранится отдельно, как и прочие свойства.
Из этого логика такая:
Нужно при создании заказа, проверить есть ли у этого клиент заказ со статусом новый.
Если есть, взять из него состав корзины, получить товары и их количества оттутда. Добавить все эти товары в нужном количестве в текущую корзину.
Взять значения свойств из существующего заказа и создать новый заказ заполнив свойства из того что уже был, подцепив к нему текущую корзину, а тот заказ что был - удалить.