Client side shop cart refactoring