add caching support to CommerceProduct