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

RFC: Overhauling solidus_stripe #135

Closed
3 tasks
elia opened this issue Nov 28, 2022 · 2 comments
Closed
3 tasks

RFC: Overhauling solidus_stripe #135

elia opened this issue Nov 28, 2022 · 2 comments
Assignees
Milestone

Comments

@elia
Copy link
Member

elia commented Nov 28, 2022

Problem

The current implementation is very old:

  • It's jQuery based
  • it's solidus_frontend based
  • it's supporting 3 types of integrations + configurations with a high number of total combinations
  • no support for non-credit-card payments (e.g. ApplePay, etc)

Proposal

We want to overhaul the extension and at the same time drop support for the legacy frontend, moving to a more scaffolding based installation (vs. view/controller inheritance).

Ruled-out approaches

  • We considered updating the existing extension to work with SSF first, and then cleaning it up, but we concluded that the effort would have increased
  • We considered cleaning up the extension before adding to SSF support, and then switching to the Payment Element, but that too would have needed more effort
  • We considered starting with Stripe Checkout, but that would have disrupted the current setup too much (maybe can be a feature added in the future)*

Plan

  • Start from scratch using the current extension only as a reference and cherry pick code (vs copying everything and then cleaning up)
  • We want to start from the Payment Element which comes with support for multiple payment methods, while still working well in the classic step-based checkout featured in SSF (vs. switching to the fully external Stripe Checkout)
  • The new implementation will be tested with the approach featured in Setup compatibility with the starter frontend solidus_paypal_commerce_platform#166 with a full-fledged dummy-app

*Stripe Checkout is an extremely optimized checkout solution and we might want to add support to it in the future. Since it includes a lot of new required functionality (webhooks, possibly syncing Product and other information with Stripe) we considered this out of scope for the overhaul.

@elia
Copy link
Member Author

elia commented Nov 29, 2022

In case external payments will need additional support from routes (e.g. ApplePay/GooglePay allowing to change the address) that will be dealt with in further versions.

@elia
Copy link
Member Author

elia commented Nov 29, 2022

After a live discussion on this with a few core-team members from @nebulab no objections were raised, closing and proceeding to create more detailed issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants