Skip to content

Shopify App Review Feedback: The Two Items That Held Up SellRank, and How We Fixed Them

15 October 20266 min readBy , LeelaRam Technologies

Shopify's review came back with two items: a listing link to our own pricing page, and a screencast that didn't show the Google Analytics import working. What each meant, what we changed, and the bugs we found while proving the fixes.

We submitted SellRank to the Shopify App Store on 25 September 2026 and wrote up the checklist we used. On 9 October the review page in the Partner Dashboard came back with two items marked Action needed. We fixed both, resubmitted on 14 October, and SellRank was approved and published that evening.

This is what the two items were, what we changed, and the three bugs we found while recording the proof. None of it is unusual, which is why it is worth writing down.

How feedback and resubmission work

Each flagged item on the review page names the requirement, quotes the reviewer, and gives you two choices: show the resolved state, or ask a question. Showing the resolved state needs a proof of resolution, which is a URL. When every item is marked resolved, the page says Ready to resubmit, and Submit fixes on the app's App Store review page sends it back to the reviewer.

We used unlisted YouTube videos as proof: one recording of the billing flow for the first item, and the full screencast for the second.

Requirement 1.2.2 says an app with charges must implement Shopify App Pricing or the Billing API correctly, so that a merchant can accept, decline, and be asked to approve charges again after a reinstall. The reviewer's note was specific: the pricing link on our listing led to a page with our plans, and choosing a plan there asked for a name and email. Plans, they wrote, should go through Shopify pricing.

The app itself was already billing through Shopify App Pricing. The problem was the listing's optional field for a URL with more pricing information. We had pointed it at the pricing section of our own website, where each plan had a button that opened a contact form. To us that was a way to ask a question. To a reviewer it read as a second way to buy a plan, outside Shopify.

We cleared the URL from the listing. On the website, the plan buttons and forms are gone, and the pricing section now only describes the plans, with a note that they are chosen and billed inside Shopify after install.

  • Follow every path from your listing to a plan. If any of them ends somewhere a plan can be chosen or paid for outside Shopify, expect this item.
  • A website can describe your pricing. Nothing on it should look like a place to buy a plan.

2. Approval on install, and again on reinstall

With Shopify App Pricing, Shopify hosts the plan selection page. We changed SellRank to send any store without a plan straight to that page when the app opens, so a new install chooses a plan, Free included, before anything else. Leaving the page without choosing charges nothing, and the page comes back the next time the app opens.

Reinstall was harder than it looked. Shopify cancels an app's subscription when the app is uninstalled, so a reinstall has to ask for approval again. Our first version decided by asking Shopify whether the store had a subscription. In the first minutes after a reinstall, that answer could still describe the subscription that had just been cancelled, and Shopify's own plan page said it expired a week later. So SellRank opened on its free preview instead of the plan page.

Now SellRank records the uninstall itself and requires a fresh approval, whatever the lookup says. Only a plan chosen on Shopify's page clears it.

The billing recording caught one more thing. Right after a plan was approved, the home page could still show the free preview until the next load, because two parts of the page loaded at the same moment and one read the plan before the other had saved it. The home page now records the approved plan before it reads it.

3. Record the proof on the right development store

Our first attempt at the billing video used a development store from a different Partner organization. Its plan page offered only the Free plan, and listed the paid plans under Unavailable on dev stores. Shopify's documentation explains why: on a dev store in the same Partner organization as your app, you can select any App Pricing plan at no charge, while on a dev store from another organization you can select free plans, or plans the developer has configured as free to test.

We created a fresh development store inside our own organization and recorded the whole flow on it: the listing's pricing details with the URL field empty, the website's pricing section, install opening the plan page, accepting a plan, changing it, uninstalling, and reinstalling to the plan page again.

4. Requirement 4.5.3: show the Google Analytics import working

Requirement 4.5.3 asks for a screencast that demonstrates onboarding and the features described in the listing, in English or with English subtitles. Our first screencast mentioned SellRank's Google Analytics 4 import but never showed it working, and the reviewer asked for the full functionality, with the Google Analytics section shown live.

Showing it live meant real data, and the property connected to our development store had no ecommerce events at all. SellRank matches each Google Analytics item ID to a product in the store, so the events had to come from that store's own products. We added a web data stream for the dev store, a custom pixel under Customer events that sends view_item and add_to_cart with the product ID as the item ID, and browsed a few products. The events appeared in Google Analytics the same day.

The new screencast adds those steps to the full walkthrough: granting SellRank's service account Viewer access in Google Analytics, copying the property ID, connecting and importing, the imported totals, a smart sort ranked by add-to-carts from that history, publishing it, and checking the order in Shopify admin.

5. The bug review didn't catch

While preparing the screencast, we noticed SellRank's own storefront pixel had never stored a single visit. Its endpoint came from a server setting typed in by hand, and that setting held a placeholder address. Every view and add-to-cart went to an address that didn't exist. The app itself worked, because Shopify opens it from the app's configuration, not from that setting, so nothing looked wrong.

We found it by reading the pixel configuration the storefront publishes. SellRank now stamps the pixel with the address Shopify actually serves the app from, repairs it whenever that drifts, and App health names the address if the pixel is ever sending somewhere else.

What we would tell anyone resubmitting

  1. 1Read each item's quote twice. The reviewer usually tells you exactly where they clicked.
  2. 2Fix the cause, then record the proof on a store where the whole flow can run, including paid plans.
  3. 3Record install, decline, accept, change plan, uninstall and reinstall in one take. It shows the requirement, and it finds your bugs.
  4. 4For a screencast item, show every feature your listing claims, working with real data.
  5. 5Update the listing fields that changed, such as the screencast URL and testing instructions, before you click Submit fixes.
Sumit Chavda

Written by

Founder, LeelaRam Technologies

Founded LeelaRam Technologies after building and running e-commerce technology for a live jewellery brand. Builds SellRank, and writes here about Shopify, merchandising and software that keeps working.

LinkedIn Portfolio All articlesAbout the company

Common questions

What does Shopify requirement 1.2.2 cover?+

That an app with charges uses Shopify App Pricing or the Billing API correctly, so a merchant can accept or decline a charge and is asked to approve again after a reinstall. In our case, the item was raised by a listing link to a website pricing page where choosing a plan asked for a name and email.

Can my website still show my app's pricing?+

Ours does, as a description. What review flagged was a path from the listing to a page where a plan could be chosen outside Shopify, so we removed the link from the listing and the plan buttons from the page.

Why can't I choose a paid plan on my development store?+

Shopify's documentation says that on a dev store in the same Partner organization as the app, any App Pricing plan can be selected at no charge. On a dev store from another organization, only free plans, or plans the developer has configured as free to test, can be selected.

What counts as proof of resolution?+

Each flagged item asks for a URL. We used unlisted YouTube videos: a recording of the billing flow for the pricing item, and the full screencast for the screencast item.

How long did approval take after resubmitting?+

We resubmitted on 14 October 2026 and the approval email arrived that evening. That is one data point, not a promise.

Related

Put this to work on your store

SellRank orders any Shopify collection by real demand — free to try on one collection, no code.

See the product