-
Notifications
You must be signed in to change notification settings - Fork 126
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Billing loop for Shopify App Review Team #420
Comments
Hi, thank you for reporting this. I'll escalate it to the reviews team to see if we can figure out what is going wrong here. |
Hey @StefanoDiLegami, could you either provide the app name or the api key that was submitted for review? Thanks |
Sure, here is the Client ID of the app I submitted for review: |
I understand this was already investigated and resolved, so I'm closing the issue. Please let me know if that's not the case. |
@paulomarg Not really, I just completed the Review without billing and aferwards enabled billing again because it works on normal stores. Check this screencast of App Review Team. |
I'm reopening the issue so we can dig into it. I tested adding this code to my await billing.require({
isTest: true,
plans: ["test"],
onFailure: async () =>
await billing.request({ isTest: true, plan: "test" }),
}); Based on the screencast, it looks like the It's worth pointing out that Could you please check whether that might be the case here? Another option might also be to increase logging if you can reproduce this scenario, by adding this to your logger: {
level: LogSeverity.Debug,
httpRequests: true,
} this would log the exact mutation that's being run, which should give you a better idea of what's going wrong. |
We are closing this issue because we did not hear back regarding additional details we needed to resolve this issue. If the issue persists and you are able to provide the missing clarification we need, feel free to respond and reopen this issue. We appreciate your understanding as we try to manage our number of open issues. |
I'm facing the same issue. My loader is like this: export async function loader({ request }) {
const { admin, billing } = await authenticate.admin(request);
const response = await admin.graphql(
`#graphql
query {
shop {
plan {
displayName
partnerDevelopment
}
}
}
`
)
const shop = await response.json()
await billing.require({
plans: [PLAN.BASIC],
// https://github.com/Shopify/shopify-api-js/blob/main/docs/reference/billing/check.md#istest
// https://shopify.dev/docs/apps/billing/purchase-adjustments/free-trials.md#set-up-free-testing
isTest: shop.data.shop.plan.partnerDevelopment,
onFailure: async () => {
return billing.request({
plan: PLAN.BASIC,
// https://github.com/Shopify/shopify-api-js/blob/main/docs/reference/billing/request.md#istest
// https://shopify.dev/docs/apps/billing/purchase-adjustments/free-trials.md#set-up-free-testing
isTest: shop.data.shop.plan.partnerDevelopment
})
}
})
return json({ apiKey: process.env.SHOPIFY_API_KEY });
} An app review specialist in Shopify Apps team tells me that an error/loop occurred in her store but the installation works fine in my development stores.
I think I configured it consistently but the issue hasn't been resolved. Environment: |
Hi @paulomarg - My eng team are also experiencing the same issue - billing working fine across dev stores but Shopify App review team stating that there is a billing loop/error present when they are reviewing. The Client ID of the app is: Our team have a hunch that it's because the Shopify App Review team are accessing the test payment gateway on what is a "production" app, which is causing a loop somewhere. Are you able to assist? The review team keep redirecting back to the API docs which we have followed to a T. |
@AlexHooperDev @is2ei Did you manage to sort it out? Having the same issue I think the |
No, but I communicated with the review team and published my app successfully.
I'm not sure if it is the right way to do that. Is there any documentation that mention it? |
No 😔 saw this also commented in another issue I can't find now and in a Shopify facebook dev group (they all were just guessing too though) |
Hey @Shopify team, would it be possible to either prioritize a fix or communicate to your review team? My app has been stuck for a month in review now because of this issue, this is a terrible experience for developers embracing your guidance and Remix SDK |
Hey folks, thank you for your feedback, and sorry for the delayed response. The team is looking into the issue, and I've reiterated the issue. Thank you for your patience while we try to resolve this! |
I was working with the teams to find a solution, and it seems like @MathiasGr was correct in that it is related to the staff stores used by the app review team - we're looking into a way to automatically handle these cases in the future, if we can. However, as per our documentation, devs should actually turn off real purchases when submitting their apps for review, which should also prevent this problem from happening. You can re-enable real purchases after the approval comes through. We've also connected with the app review team to flag that if they run into this case in the future. I apologize for not mentioning this before, but I hadn't made the connection between staff stores and how they affect billing as the root cause here. |
@paulomarg I think this should be reopened. It just happened to us in production on a shopify plus store. There was "sandbox" in the myshopify url name, but it was an actual store. I believe that somehow shopify turned something on for them that forces all recurring charges to be in test mode. using the query: {
shop {
plan {
partnerDevelopment
}
}
}
What happens is that if we use the logic This issue is not really caused by this library, more the fact that shopify lacks any API to recognize these particular stores that have this weird flag that forces the charges to be test mode. @paulomarg if you have any say in this, I believe that whatever flag is turned on on the review stores or this particular store I got in production, should turn the "partnerDevelopment" variable to true. Or maybe another separate property if this is too complex or doesn't make sense since they are not actual development stores. For now we added a whitelist in our code since this doesn't seem too common, but this is not really an ideal solution since we'll have to do support every time this happens to a new store. |
Hey @tommypepsi , thanks for that. I believe you're right - we can't fully trust |
Do we have any updates on this , @paulomarg ? Still facing this issue for remix app after the billing approval it redirects again. |
Yes... this is still a blocking issue 1 year after the initial report... crazy. And now the support team is saying there is not issue anymore while nothing has changed. |
Hey folks, I'm sorry this is still an issue. We've been working with the teams on this, and we currently have 2 recommendations to work around this issue:
|
Issue summary
After I have submitted my app to the Shopify App Store, somehow the Shopify App Review Team gets in a billing redirect loop when I have this following code:
app.jsx
shopify.server.ts
On all my different test stores, and paid stores, I don't have any issues. I think it is related to the special Shopify Staff stores.
I also have a screencast from Shopify App Review Team that shows this issue.
@shopify/shopify-app-remix
package and version: 1.0.4Expected behavior
After first approved billing, don't redirect again to billing page.
Actual behavior
It always loops again to the billing page, even after approved billing. (Only for Shopify App Review Team stores)
Steps to reproduce the problem
The text was updated successfully, but these errors were encountered: