Очищать корзину после оплаты или нет?
Ни разу не видел ни одного интернет-магазина, где она бы не очищалась после оформления заказа.
Если хочется хранить корзину в БД - так вам ее все равно хранить после оформления заказа. 
Сделайте таблицу, где большинство полей - NULL до момента оформления заказа (цены и проч. для отображения берется с текущих карточек). Выборка текущей корзины - по order_id = NULL. Заказ оформлен - текущая корзина опустела, товары естественным порядком перекочевали в заказ.