All Apps have a registration flow, private, custom, unlisted or public. Nothing changes there. You have to do oAuth to register a store in your App. It makes sense that if a store does not have your App installed, that the first thing that happens is oAuth. That allows the Shop to know about your App wanting to be installed, to allow the merchant to approve that install, and finally, to give your App the much needed token to access the store as needed.
Maybe if you point out more details on just what your hangup is, someone could steer your closer to your goal.