Здравствуйте. Я не очень знаком с opencart, но чисто логически судя по тому что вы пытаетесь достать товары в контроллере успешной оплаты, то у вас это вряд ли получится, так как по идее корзина уже должна быть очищена.
Немного погуглив я нашёл такие вещи как:
$this->session->data['order_id']
- последний заказ пользователя я так понимаю из которого мы можем сделать вот такое:
$this->load->model('account/order');
$order_id = $this->session->data['order_id'];
$products = $this->model_account_order->getOrderProducts($order_id);
Плюс по тому же гуглу я вижу что там в какой то версии в checkout/success.php есть
$this->cart->clear();
Если вы делаете после этого, тогда я думаю всё понятно. Если получится запихните ваш код до этой строчки, либо попробуйте использовать то что я в самом начале описал.
Повторюсь что я в общем то не знаком с opencart и мои найденные решения могут вам не помочь из за просто не той версии cms, но я пытался =)