Added initial cart functionality and tests