I want to give feedback on how app review handles small findings, using my own submission as the example.
I submitted before 19 July. There were issues in the earlier passes, and I fixed each one and resubmitted the same day. The most recent pass came back with a single finding:
4.2.1. Provide accurate and complete pricing information. Ensure your pricing information includes all pricing options such as, free trial time and charge details. Your app listing pricing section includes a “Scale” Plan, but this is not displayed on your app UI plan page nor the linked external pricing page.
That plan is real and the listing described it accurately. It is a custom plan for stores above the published tiers, priced by formula from the store’s own catalogue size. It exists in the app and it is set out on the pricing page. The reason the reviewer could not see it is that it is only offered to stores that qualify for it, and a review test store does not, which is deliberate. Showing a large store price to a small store would be the actual pricing accuracy problem.
The quickest way to close the finding was to take the plan off the listing. That took seconds. It changed nothing about the app, nothing about the code, and nothing about what any merchant is charged.
For that, the submission goes back into the queue to wait roughly two weeks for a new reviewer.
There is a real gap underneath this one, and it is worth saying plainly. The listing pricing section has no way to express a plan priced by formula. The only choices are a fixed price that would be wrong for most of the stores it applies to, or leaving it out and describing it in the app and on the pricing page instead. I picked the first, a reviewer flagged it, and I have now picked the second. Either way the listing is a worse description of what the app charges than the pricing page is, and that is a limitation of the form rather than a decision anyone made.
I am not disputing that the reviewer saw what they described. What I am disputing is that it costs another fortnight to resolve.
Three things make this worse than it needs to be.
-
Findings arrive one at a time. Each pass surfaces a new item rather than the full list, so an app can go through several rounds and still be told there is one more thing. At no point can you tell how many rounds are left.
-
The cost of a finding does not scale with its size. A security problem and one line in a listing field carry exactly the same penalty, which is another full cycle.
-
Nothing about the queue reflects that this is a resubmission. The next pass starts from scratch with a new reviewer who has no context on the previous ones.
What I would like considered, in the order I would value it:
A conditional approval state. When the only outstanding finding is listing level, or otherwise cannot affect a merchant using the app, approve it with the fix required inside a set window and verify it then. There is no risk being managed by making it a blocker. The change is in a field Shopify controls and can check in seconds.
A consolidated findings list on the first pass. Give the whole list at once, even if some items are minor. Serial delivery turns one review into four.
A short lane for resubmissions where the previous pass produced a single non functional finding, so the wait is measured in days rather than weeks.
A way to describe usage based or formula priced plans in the listing pricing section, so apps that do not have a flat price for every store are not forced to choose between an inaccurate number and an omission.
The reviewers themselves have been fine and the findings have been fair. The problem is the process around them. A rejection currently costs about the same amount of my time whether the fix takes two weeks of engineering or one click, and that is the part worth changing.
I would rather spend the next fortnight shipping for the merchants already using the app than waiting to be told the one click worked.