Skip to content
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

Roadmap to remove ActiveMerchant dependency? #74

Open
brchristian opened this issue Jul 14, 2020 · 5 comments
Open

Roadmap to remove ActiveMerchant dependency? #74

brchristian opened this issue Jul 14, 2020 · 5 comments
Labels
v4.x Issues and PRs targeting the classic frontend (before v5)

Comments

@brchristian
Copy link
Contributor

It made complete sense that the old solidus_gateway extension was built on top of active_merchant, because both of them are meant to support a large number of gateways with as uniform a style as possible.

However, more recently Solidus has deprecated solidus_gateway in favor of individual extensions that support one gateway each, and hence in the case of Stripe we have the new solidus_stripe extension.

However, because it was extracted from the original solidus_gateway code, solidus_stripe is still built on active_merchant, which has a number of downsides, including:

  • Increasing the number dependencies
  • Increasing the attack surface
  • More code for developers to learn
  • Greater complexity in debugging
  • Inability to take advantage of more Stripe-specific functionality that other gateways lack

I wonder, would there be interest in this community in a PR that would remove the dependency on active_merchant in favor of directly utilizing the official stripe gem?

I'd be happy to help if this would be of interest. :)

@spaghetticode
Copy link
Member

@brchristian I think it makes sense to switch to the official Stripe gem, mostly because it has a much richer API than ActiveMerchant. For example, my feeling is that we currently can't succeed in #26 with ActiveMerchant, we need to use Stripe API from their gem.

The transition will probably take some time, as we're currently supporting functionalities (deprecated V2 behavior, V3 Elements, Payment Intents, payment request button) that need to be transposed whenever possible, keeping the impact of the change on existing stores as small as possible.

If someone else has different opinions please chime in, but I personally think that if you're interested in starting to work on the transition, you're more than welcome in doing so. Of course, let's get in touch if you need some more information, help, or coordination.

@brchristian
Copy link
Contributor Author

@spaghetticode Okay, that sounds good! I will look into it. I was inspired partly by our interest in #26.

To elaborate a little bit on my own motivations, our company is looking to implement a fairly sophisticated subscription system, including automatic renewals. The Stripe API supports autorenew, but for that to work we need stable customer accounts on the Stripe side, etc. (Hence my interest in #26.) My feeling is that basing the solidus_stripe extension on the Stripe gem would make it easier to extend the functionality in this way.

As for the transition, given that the V2 behavior is deprecated, I might look at supporting only V3 behavior to start with, and see where that takes me.

And yes, would love your help and coordination. I'll be happy to use this thread (or some other channel, if you prefer) to stay in touch once I begin to look into things.

@spaghetticode
Copy link
Member

I totally agree that this may be a good time to remove the V2 API support. After all, this has already been deprecated by Stripe.
Besides this issue and PRs on this GitHub repository, we surely can get in touch also on Solidus' slack channel if it works for you.

brchristian added a commit to brchristian/solidus_stripe that referenced this issue Aug 20, 2020
brchristian added a commit to brchristian/solidus_stripe that referenced this issue Aug 20, 2020
brchristian added a commit to brchristian/solidus_stripe that referenced this issue Oct 14, 2020
brchristian added a commit to brchristian/solidus_stripe that referenced this issue Nov 26, 2020
@Mateus-Resende
Copy link

Hey! Do we have any updates on moving away from activemerchant and using Stripe gem directly? New features such as Stripe Connect, Elements UI, and others would be more easily accessible as well.

@stale
Copy link

stale bot commented Nov 11, 2022

This issue has been automatically marked as stale because it has not had recent activity. It might be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Nov 11, 2022
@gsmendoza gsmendoza removed the stale label Nov 15, 2022
@elia elia added the v4.x Issues and PRs targeting the classic frontend (before v5) label Dec 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
v4.x Issues and PRs targeting the classic frontend (before v5)
Projects
None yet
Development

No branches or pull requests

5 participants