Added caching to generatePageProducts