I recently redid the architecture for shop items. They now use Scriptable Objects to populate their fields (Title, Price, Prefab, etc.) and the Shop populates itself with objects as they are added to the game. This means less upkeep and better organization!
I have also added changing environments, which load asynchronously every few levels.
And starting on special abilities that have a cooldown and are unlocked by level.