solidusio / solidus

🛒 Solidus, the open-source eCommerce framework for industry trailblazers.
https://solidus.io
Other
4.98k stars 1.29k forks source link

Remove ActiveMerchant dependency from Solidus #1912

Closed jordan-brough closed 2 years ago

jordan-brough commented 7 years ago

I don't see a reason to require ActiveMerchant in Solidus and it seems like it would make other billing integrations easier if we provide our own classes for errors/responses/etc.

tvdeyen commented 7 years ago

💯✖️👍

jhawthorn commented 7 years ago

One of the few things preventing this is our use of ActiveMerchant::Billing::Response. We can probably introduce our own class, which quacks the same way (duplicate the interface it has with duck-typing)

Dkendal commented 7 years ago

I'm going to take a stab at this

Dkendal commented 7 years ago

As far as I can see this requires:

Not sure yet what ActiveMerchant::Billing::Base is used for, I can only find assignments to it, never anything reading from it, including, or extending the module.

mamhoff commented 7 years ago

If it isn't used and you can remove it from core without anything breaking, remove it.

Dkendal commented 7 years ago

https://github.com/solidusio/solidus/compare/master...Dkendal:feature/remove-active-merchant?expand=1

Current branch.

Dkendal commented 7 years ago

@mamhoff any thoughts on how to rectify the interface with solidus_gateway?

All results that come back from gateway are handled in core/app/models/spree/payment/processing.rb, I was thinking of checking the type of the result and presenting a deprecation notice if it's an ActiveMerchant::Billing::Response.

Thoughts?

Dkendal commented 7 years ago

1935