A maneira ideal e boa de usar o carrinho é mantê-lo em sessão, a classe carrinho do codeigniter está fazendo a mesma coisa, e quando o usuário dá o pedido, use esses dados, coloque esse pedido no banco de dados e faça outras coisas como gateway de pagamento, envio. use o usuário para manter seu pedido na próxima sessão, como se o usuário adicionar algum produto no carrinho e ele sair antes de fazer o pedido e ele for um usuário registrado, você poderá salvar seu carrinho todas as vezes no banco de dados, para que, se ele for embora sem colocar ordem, você pode mostrar a ele seus pedidos na próxima vez que ele logar.
Você pode armazenar os dados do carrinho dos usuários no banco de dados usando
$this->cart->contents();
método do carrinho class.use assim $cartContentString = serialize($this->cart->contents());
você receberá uma string de conteúdo do carrinho, você pode salvar essa string no banco de dados e depois usá-la como
$cartArray = unserialize($cartContentString);