instead of using session.abandon, use a clear cart behavior.
on the server behaviors panel click the plus button and select eCart -> Cart Display -> Clear Cart and set the trigger to Page Load.
you may need to move the placement of the clear cart code so it is after the other processing on the page, this will clear the cart, but leave the user logged in.