Add CurrentShoppingCartDataSource to replace ShoppingCartDataSource and fix mapping bug for custom fields

- Client will never want to retrieve a list of carts, so it's meaningless to return a list of carts