shop cart and shipping refactoring