How would I transfer an int throughout different scenes?

I’m trying to make a shop for a game I am creating. You’re able to collect coins and spend them in the shop. The number of coins that the player has in the level is saved as an int, of course, but I want to know how I would keep that same variable throughout multiple scenes. For example if the player collects 150 coins on the first level and 300 coins on the next level, the 300 coins would be added to the 150 coins, which would be saved. The shop will be a completely new scene that will be loaded up, therefore I will need some kind of way to transfer the amount of coins over to the shop scene.

Other than PlayerPrefs, another option would be to store this data in a high level manager class (perhaps a Singleton). In the OnEnable, Start or Awake, call DontDestroyOnLoad(gameObject), which will keep that game object between scenes.