We’re preparing our first public app submission and have a structural question I’d rather ask before submitting than after a rejection.
Our app reconciles a merchant’s Shopify payouts against their bank deposits. A merchant can get their data in one of two ways, and on a single account they’re mutually exclusive: connect their store over OAuth, or import payout and order exports as CSV.
The problem with supplying a connected test account is that a development store returns no payout data, and the payouts screen is the core of the product — a reviewer would land on an empty screen. So our reviewer account is deliberately not connected, and its data was imported by CSV, which populates every screen.
Two questions for anyone who’s been through review with something similar:
-
Has an unconnected test account been accepted under 4.5.5 (“full access to the app’s complete feature set”) where the account demonstrates every screen with real imported data, but doesn’t exercise the OAuth connection path?
-
If so, did documenting the constraint in the test instructions — explaining the two paths are mutually exclusive, which one the account uses, and describing the other in writing — carry it? Or did the reviewer still flag it?
Happy to hear “it got flagged” as much as “it passed” — the failure mode is the useful part.
Thanks,
Dexter — Profenor
Hey @Dexter_Rozario - thanks for laying out the situation in detail. I wasn’t able to find a directly comparable review precedent for this setup.
Nuanced cases like this are difficult to judge before the app has been reviewed. Our App Review team recommends providing as much context as possible in the submission and testing instructions. I’d explain why the OAuth and CSV paths are mutually exclusive, which path the supplied account uses, what the reviewer can test, and show both paths in the screencast. This aligns with the App Store review requirements.
That can’t guarantee the review outcome, but it gives the reviewer the information needed to assess the setup. I understand you mentioned you’d rather know the answer before submitting as opposed to after a rejection, but these types of nuanced scenarios are best addressed by the App Review team directly during the review process.
Hope this helps!
Thanks @Wes-Dev-Shopify, that’s the answer I needed, and it’s actionable.
First, a correction to my own post, because I got a detail wrong and I’d rather
fix it than leave it in a thread someone might find later.
I wrote that the reviewer account’s data “was imported by CSV.” That isn’t
accurate. The account is deliberately not connected to a store, but it is
pre-loaded with a representative sample dataset, it did not come through the CSV
import path. The two paths are still mutually exclusive, and the reason the
account is unconnected is unchanged: a development store can’t process real
transactions, and simulated ones don’t appear in payouts or reports, so a
connected reviewer account opens on an empty Payouts screen.
Second, for anyone who lands here with the same problem, I’ve since done exactly
what you described, and here is what that looked like in practice:
- The testing instructions now explain why the two paths are mutually exclusive
and that the app enforces it rather than warning about it: it refuses a CSV
upload while a store is connected, and refuses a Shopify backfill while
CSV-imported orders are present.
- They state which path the supplied account uses, and why.
- They list what the reviewer can test — every screen, populated, none gated.
- The walkthrough shows both paths in two segments: onboarding and OAuth connect
end to end, then the CSV import running and the screens filling from it. Two
segments because onboarding is a first-run event — an account that has been
onboarded can’t show it, and one that hasn’t has nothing to tour.
I’ll report back here once we’re through review with whether it carried, since
the failure mode is the useful part and there’s no precedent in this thread yet.
Dexter — Profenor