Can someone recommend a strategy for (safely) migrating a few existing partner stores to using my new order fulfillment app?
Currently: There are a few shopify stores that I have setup with api connections to my backend, using the older Admin / custom app, where the store owner setup the app, the scope list (at my direction), etc. This has been working fine so far.
Now, I have a new public store app that’s nearly ready to deploy. It uses the newer oauth flow model, with refresh tokens etc.
However, based on my experience so far, when I uninstall my app in a dev store, the items that WERE assigned to the new fulfillment location will need to be assigned back/to a different location. That can only happen if there are no “committed” inventory. I have been bypassing this on my dev store by just cancelling the order etc.
Also, when I install the app, there is a custom fulfillment location that gets created along with the fulfillment service (via graphql mutation). This fulfillment location is then needed to have those same items re-assigned back to it. Then fulfillment orders can be created/sent etc.
Question:
Give that I have a few old stores that have integrated to my backend with the old way (store admin panel), what is a “clean/safe” way to move these stores off that setup and onto using the new app?
Hey @Randal_B, for your current older app, are those fulfillments tied to a fulfillment service, or are they merchant managed locations?
One thing you can test is to see if it works to keep both apps active. You can move the non committed inventory to the the new location and then once all orders are fulfilled you’ll be able to remove the old app.
Another option to test is if your older app is a fulfillment service, instead of cancelling the order, you could reject the fulfillment and then the merchant can choose your new location to fulfill it.
The older (admin created) app has a fulfillment service, which I had setup via the admin api.
Well, I think I have a bit of an issue. I have built 3 separate apps that basically setup the api integrations with my backend environments - same backend, just different integration endpoints per environment (dev/test/prod). My app is part of an integration that has a webhook endpoint and an order update job. Both have been updated (but not promoted to our production environment yet). In hindsight I should have started this new effort as a completely different stack and set of endpoints. Now, I think I will have to “get everyone out”, install the app (once fully approved) on these two existing clients. The problem now is that I have a “chicken and egg” situation lol. I cant install the app until its fully approved and i cant get approved until its deployed to my live environment (prod).
So at this point, I am going to have to get those two clients off the old (admin) app, promote the new app, get it fully approved, then get the clients setup.
Actually, now that I think through it a bit, the older admin-created apps, since they simply make webhook calls and then my order update job makes admin api calls using their existing api token, they should still work. Maybe I can mock up a sample payload from one of these clients and test that way. If so, I could migrate them over one at a time.
Hey @Randal_B, that plan sounds like it could work well. Great idea to mock it up and test to be sure.