A developer’s Shopify app was rejected for three main issues:
1. Missing setup instructions: The app performs fulfillment operations (retrieving orders, marking as fulfilled, adding tracking) without requiring merchant configuration. Reviewers want in-app instructions even though no merchant action is needed.
2. Lack of interactive UI: After OAuth, the app must provide functionality merchants can interact with. A landing page explaining the app’s purpose is recommended, even for automated fulfillment apps.
3. Embedded app redirect failure: The app redirects to a non-embedded version instead of staying within Shopify’s admin interface.
Resolution: The third issue was solved by initializing App Bridge on the /shopify/callback page to properly redirect back to Shopify Admin. Two implementation options exist:
Server-side redirect using query parameters (base64 decode the host parameter)
Client-side redirect via App Bridge after rendering a blank callback page
The developer must also enable embedded app settings in the Partner Dashboard. The conversation confirms App Bridge works regardless of the framework (Node.js/Express) used.
Summarized with AI on November 18.
AI used: claude-sonnet-4-5-20250929.
hi,
I have submitted an app on the Shopify but its rejected,
I need assistance about rejection points.
Detailed instructions on how to install and set up your app must be included within your app’s user interface. The ability for merchants to make any required changes for your app to function must be available after installation.
in our case its pretty straight forward, we just get fulfillment from Shopify and after the process, we mark as fulfilled and set tracking against it on Shopify that it, we don’t want or require to give any functionality/ability to the merchants. so I want your assistance in it.
The app must have an app user interface with functionality that merchants can interact with when redirected after OAuth. Currently, there is no functionality I can interact within your app’s user interface unless I login to the client portal. Please see this screenshot for additional details
At this point, I need to clarification. in my understanding that how to interact if anyone how is not our merchants or client.
so for this point requires, if he is not our client then in app user interface shows steps on how to become a client.
I think this is also similar to this. is it?
Upon installing the app, I am being redirected to a non-embedded version. When accessing the app from the installed apps list, the app is redirecting to the embedded version. This occurs when an initial OAuth request redirect fails to escape the iframe. Refer to our Shopify App Bridge documentation. Please see this screen recording for additional details.
Would you be able to send couple screenshots of your app?
we don’t want or require to give any functionality/ability to the merchants
It would be better to have a landing page explaining what this app does so that it is less confused to merchants (in case they forget after installing the app for a while).
At this point, I need to clarification. in my understanding that how to interact if anyone how is not our merchants or client.
This 2nd point is kind of related to the 1st point above. A simple landing page would help.
Upon installing the app, I am being redirected to a non-embedded version. When accessing the app from the installed apps list, the app is redirecting to the embedded version
As I understand, your app mainly uses Admin API. It doesn’t use any App Bridge functionalities as other normal embedded apps which usually require some kind of interaction with the merchants. In this case, if you want your app to be redirected properly as an embedded app, you should initialize App Bridge. Follow instruction here https://help.shopify.com/en/api/embedded-apps/app-bridge/initialization.
Hi @sajan8093 , there are two options at the callback page.
Option 1: perform server-side redirect to shopify by using information in the query params. This can be done manually by doing base64 decode of the host in query param to get the actual domain or if you use Shopify template libraries, it should be done for you.
Option 2: perform client-side redirect via App Bridge. For this option, you just need to render a blank page for the callback url, then initialize App Bridge. App Bridge will know which domain to redirect back to Shopify.