I'm a little confused concerning app installation work-flow?

Shopify Partner
78 3 7

Don't misunderstand, I get the installation work-flow. But what I get hung on is how the work-flow propagates and uses the App URL and the Whitelisted URLs. Maybe I'm missing something; but then again, I've read the documentation tens of times already and I've not found any satisfactory answers.

Basic rundown (aka: my understanding of the process) is this:


  1. User clicks to select app for installation, which hits the app server with the hmac for verification
  2. App URL verifies the hmac & queries the database to determine if the store already has the app installed
  3. If yes; then we load up the store's app instance and spit out the 'home' page.
  4. If no; then we take the store info that shopify passed via GET vars, build up a scope string, build out the install URL string, generate the nonce, and finally send it all back to the shop's admin/oauth/authorize? URL
  5. The merchant sees the list of requested scopes, and finally hits "install" which redirects to the installation URL we just sent it.
  6. The installation URL performs the usual HMAC verify, Generates the token, and registers the store with the app; at which point it kicks everything back over to the app's new home on the shop (this-guys-store.myshopify.com/admin/apps/new-great-app/

This is where I'm a little confused and mildly frustrated:

Is there no way to just have a direct URL for installation only? I'd assume that most people are using their entry point for the App URL: (index.html / index.php / index.html.erb / app.js / etc.) - I don't even know if anything else would work.

So, our entry point is used to initiate an installation AND as the App's home. If I click the name of the app at the top of the embedded frame, it's going to take me to my apps entry point. Basically, every time somebody want's to go to the app's entry URL, it's going to have to make sure it's not a request to install. Right?

Doesn't that seem weird and wonky to anybody else? It seems to me that there should be a dedicated URL, for the sole purpose of handling installations.

... or ... as I expressed earlier, I have totally missed something somewhere. If I am, in fact, missing something; I'd be extremely grateful to anybody who points it out to me. :)

Most people, it turns out, just aren't interested unless they have to pay for it. Go figure.