For discussing the development and integration of subscription-enabled shops using Shopify's Subscription APIs.
We are working with a merchant to move their existing subscriptions from a subscription app using Shopify's checkout to our app.
I would like to know if we can use existing customer payment methods for contracts we create / migrate in our app. Are there any better ways to migrate subscription contracts from one app to the other?
Thank ya!
Chris
Chris:
Interesting question. I don't know if anyone has asked this before. Unfortunately, I'm relatively new to this area, and most of the folks on my team are gone for the day. I'll try to get an answer for you tomorrow (Thursday) Pacific Time.
I assume you've seen this guide (although I believe you're asking for a different migration, perhaps it has some clues): https://shopify.dev/apps/subscriptions/migrate/contracts.
To learn more visit the Shopify Help Center or the Community Blog.
Thanks Larry. You're correct, that tutorial discusses migrating payment information and creating payment methods, while I'm hoping to use existing payment methods for new contracts.
Did u ever figure out how to do this??
At the moment there isn't a way to move existing payment contracts from one subscription app to another. It is on our roadmap, but we don't have any dates for when it might be available.
To learn more visit the Shopify Help Center or the Community Blog.
Hey Larry, thanks for getting back. I believe the question is, after u call customerPaymentMethodRemoteCreditCardCreate, and u didn't get the customer payment method ID in the response. How can we retrieve it after? Right now there doesn't seem to be a way as the customer's paymentMethods do not return anything, nor does calling customerPaymentMethodRemoteCreditCardCreate again.
If you know the customer, you can query their `paymentMethods` on the `customer` query. Does that help?
To learn more visit the Shopify Help Center or the Community Blog.
I'm not sure if the original question was ever answered here but yes, you can use the existing payment methods.
It is true that you can't fetch subscription contacts from another app but the paint methods are re-usable
Hi @LarryReid ,
Following up on this. We're trying to help out a merchant who's having a bad experience with a membership app, and not having any luck getting the payment method IDs from that app provider.
Is there a way to query a customer for all of their existing payment methods? When I try this, I get a null response, while I can see that they have a credit card on file for the active membership.
Also, can you confirm that if I have a customer's payment method ID, I can use it to create a subscription contract even if my app wasn't responsible for creating that payment method?
If this isn't possible, then Shopify is essentially saying that merchants can't leave an app because their payment information is being held hostage.
Thanks
Chris
Hey Chris - this is definitely possible. Otherwise migrations would be very difficult like you mention.
I can't say for sure why you're getting `null` for payment methods on customers with payment methods. I haven't seen that issue. Make sure you're requesting correct scopes for your app, maybe? (required: `read_customer_payment_methods` and `read_customers`)
I think you've already seen this, but just in case, here's where you'll find the payment methods:
https://shopify.dev/api/admin-graphql/2022-07/objects/Customer#connection-customer-paymentmethods
Also, can you confirm that if I have a customer's payment method ID, I can use it to create a subscription contract even if my app wasn't responsible for creating that payment method?
I can confirm this