Move cart session handling to component