Commit Graph

2850 Commits

Author SHA1 Message Date
Filipe
750411fd15 Merge pull request #8592 from openfoodfoundation/gateway-redirects
Refactor payment gateway redirects handling
2021-12-23 21:35:45 +00:00
Filipe
20c0195584 Merge pull request #8017 from cillian/hide-variants-with-no-stock
When creating backoffice orders hide variants with no stock by default
2021-12-23 21:34:06 +00:00
Filipe
b256696544 Merge pull request #8549 from mkllnk/deprecate-stripe-connect
Hide old "Stripe" (StripeConnect) payment method type, keep new Stripe SCA
2021-12-23 21:33:42 +00:00
Matt-Yorkley
f0d54dd083 Tidy up #redirect_to_payment_gateway 2021-12-22 09:58:08 +00:00
Matt-Yorkley
8016e90e07 Ensure payment method is actually selected 2021-12-20 18:47:22 +00:00
Maikel Linke
6d1e984af7 Enable testers to activate StripeConnect
This will make it easier to test the removal of StripeConnect.
2021-12-20 17:16:39 +11:00
Maikel Linke
470fc92825 Fix old, confusing typo 2021-12-20 17:13:40 +11:00
Maikel Linke
22de357724 Hide deprecated StripeConnect payment gateway
StripeConnect has been replaced by StripeSCA but some people still use
the old StripeConnect. Let's prevent people from creating deprecated
payment methods before migrating existing data.
2021-12-20 17:12:19 +11:00
Maikel Linke
6966dea0f5 Extract changing Stripe method selection logic
It will change and it's clearer in a separate method.
2021-12-20 17:09:57 +11:00
Cillian O'Ruanaidh
401cc19532 Fix Rubocop LineTooLong violation in spree/admin/variants_controller 2021-12-17 15:40:51 +00:00
Matt-Yorkley
b77ff346a3 Replace #raise with #return in Checkout::StripeRedirect
The (potential) unhappy code path here was raising an error which would not be explicitly handled, and would in theory not return a useful message / response.
2021-12-15 21:20:58 +00:00
Matt-Yorkley
0fc4b851f2 Refactor payment gateway redirects handling
The checkout was holding a lot of responsibility for knowing which kinds of payment gateways are available and how to initiate the process of redirecting to the external payment page (if needed). This was being hidden somewhat by the way the logic was tucked away in services.

PaymentMethod objects now know whether or not they require an external payment process, and know how that process should be started and how to build the required URL.

So we can now *ask* any payment method if it requires external payment processing or not, and *tell* it to start the process and return the relevant URL (if needed).
2021-12-15 21:20:58 +00:00
Filipe
f6385215d3 Merge pull request #8568 from Matt-Yorkley/paypal-controller
Move paypal controller
2021-12-15 18:12:27 +00:00
Filipe
c4f4d67fc0 Merge pull request #8503 from jibees/split-checkout-payment-forms
Split checkout payment forms
2021-12-15 12:57:03 +00:00
Matt-Yorkley
6d2521bf5f Remove Spree.user_class
This construct was previously used in Spree to switch out the user class with a dummy class during certain tests. We don't use this any more, so it's just mess.

🔥
2021-12-10 18:18:20 +00:00
Matt-Yorkley
f101b06226 Update all references to paypal routes 2021-12-10 11:46:53 +00:00
Matt-Yorkley
0d620aac94 Move paypal_controller out of spree namespace 2021-12-10 11:46:52 +00:00
Jean-Baptiste Bellet
a80818d2b6 Fix rubocop warning
Extra empty line detected at module body end.
2021-12-09 11:30:57 +01:00
jibees
53e12fb5e5 Get rid of conditional branches with & operator
Co-authored-by: Maikel <maikel@email.org.au>
2021-12-09 11:12:23 +01:00
Jean-Baptiste Bellet
68e4d55f80 Avoid ternary operator 2021-12-07 16:27:22 +00:00
Jean-Baptiste Bellet
e89caf7a0d Add stripe as payment method 2021-12-07 16:27:22 +00:00
Matt-Yorkley
dcad00d047 Merge pull request #8484 from Matt-Yorkley/stripe-session-checks
Stripe checkout alerting
2021-12-05 12:04:00 +00:00
Matt-Yorkley
527a53bd0f Merge pull request #8485 from Matt-Yorkley/stripe-addresses
Checkout address handling
2021-11-18 15:19:27 +00:00
Matt-Yorkley
ac5766b00b Report current order info on all checkout failures 2021-11-14 20:01:32 +00:00
Matt-Yorkley
f8349434bf Skip address setup logic if we're coming from Stripe
The code here runs from a callback which was originally designed to make sure the checkout page was set up correctly in the "normal" checkout workflow. It wasn't really designed to be run when the page is being loaded a second time due to the user being redirected back from Stripe (with SCA). The things it's doing here are necessary in the former case, but a really bad idea in the latter (potentially messing up the order's ship and bill addresses in certain cases like guest checkout).
2021-11-14 16:54:44 +00:00
Matt-Yorkley
f83d0a766f Memoize Checkout#valid_payment_intent_provided? 2021-11-14 14:24:23 +00:00
Matt-Yorkley
bbb47964db Notify Bugsnag if the order loaded at checkout is invalid after being redirected back from Stripe during payment processing. 2021-11-14 13:58:15 +00:00
Matt-Yorkley
1bf4e6fa56 Reorder conditions for performance
A little micro-optimisation: `@order.checkout_allowed?` requires a database query, whereas `@order.completed?` does not. So in cases where the order is completed we can return early here before hitting the database.
2021-11-14 13:58:15 +00:00
Matt-Yorkley
8d0cbe886a Rename method for clarity 2021-11-14 13:58:15 +00:00
Matt-Yorkley
48acc0ecd0 Add Bugsnag notice when an OC closes during checkout completion
This info could be useful to know whilst debugging order completion issues.
2021-11-14 13:58:15 +00:00
Matt-Yorkley
d0f572b051 Remove dead code: session[:guest_token]
This `session[:guest_token]` doesn't seem to ever be assigned anywhere in the codebase, and it doesn't seem to be read at any point either..? There are some various places where `current_order.token` is used and `session[:access_token]` is used, but not this.

As far as I can tell: it was part of an old version of Spree and related to the spree_auth_devise gem (which we no longer use).
2021-11-14 12:02:07 +00:00
Matt-Yorkley
00862844d5 Memoize Checkout#valid_payment_intent_provided? 2021-11-14 11:39:36 +00:00
Matt-Yorkley
439a2318fb Move API response under top-level :data node 2021-11-04 14:55:23 +00:00
Matt-Yorkley
924f6568d6 Replace data loading with new Reports::QueryInterface 2021-11-04 14:55:23 +00:00
Matt-Yorkley
817f0942dd Pull in reports POC work replacing Packing reports 2021-11-04 14:55:23 +00:00
Maikel
43514f61ea Merge pull request #8312 from mariodz95/8249_fix_snail_on_shipping_method_fees
Fix snail on shipping method fees
2021-10-29 12:04:25 +11:00
Maikel
1b79fdd333 Merge pull request #8409 from luisAzcuaga/task/rubocop
[6055] Task: Run rubocop over existing todo
2021-10-29 12:01:12 +11:00
Maikel
2e8f4c1538 Merge pull request #8367 from bellvat/bug-show-error
Add test and change order_cycle#show to redirect to edit page.
2021-10-28 16:36:47 +11:00
Luis Azcuaga
e8fd89a6d2 Run rubocop over existing todo 2021-10-25 21:28:28 -05:00
Monica Sirathanarun
ebaf96ddae Add test and change order_cycle#show to redirect to edit page. 2021-10-19 23:20:54 +07:00
mariodz95
578efa945e Fix snail when editing enterprise fees 2021-10-19 10:26:44 +02:00
mariodz95
d1160ec66a Fix snail on shipping method fees 2021-10-19 09:56:35 +02:00
Cillian O'Ruanaidh
2462d71ab5 When creating backoffice orders hide variants with no stock by default
But let people include out of stock variants by checking a checkbox if they want.

Note, we only apply the variants in stock scope if a distributor is
present. I think this is because this search method is also used when
setting up subscriptions so I don't think we want to change the
behaviour there.

Co-authored-by: Maikel Linke <maikel@email.org.au>
2021-10-08 13:13:32 +01:00
Maikel Linke
129c4c92fa Catch JS error on OC page
Calling `when variant.id in enterprise_rules` raised an error when
enterprise_rules was null.

Fixing this then revealed a missing require statement in a controller.
2021-10-06 15:29:41 +11:00
Maikel
c9d36e6f5c Merge pull request #8204 from meronokbay/6942-fix-payment-method-fee-bug-all
Fix payment method fee bug for all calculator types
2021-09-28 08:39:05 +10:00
Maikel
a3c31f7d86 Revert "Kill stripe connect" 2021-09-20 08:39:34 +10:00
Meron Ogbai
cd992ee866 Validate preferred values all calculators 2021-09-17 18:50:29 +03:00
Meron Ogbai
957f834694 Rename preferred amount to preferred value 2021-09-17 18:49:57 +03:00
Meron Ogbai
d73df78f43 Extract gateway_params to a private method 2021-09-17 16:48:53 +03:00
Matt-Yorkley
f4c86a1b51 Merge pull request #8061 from Matt-Yorkley/turbo-checkout
Split Checkout new toys
2021-09-17 10:48:59 +02:00