checkout-sdk-js icon indicating copy to clipboard operation
checkout-sdk-js copied to clipboard

Documentation: Clear indication on the requierement of finalizeOrder per payment method

Open fthobe opened this issue 5 years ago • 2 comments

Customer Support as well as developers seem to be confused of the requirement for the finalizeOrder method on hosted payment gateways. Even on the ideas forum of BC wrong answers are given: https://support.bigcommerce.com/s/question/0D51B000056Secs/custom-checkout-sdk-hosted-payment-not-working

It would be really helpful, internally as well as externally, if there would be a simple list / table indicating if finalizeOrder is needed or not. Currently the documentation states:

Also, for some payment methods, the customer may be asked to enter their payment details on an external website. For these methods, you must finalize the order when the customer is redirected back to the checkout page in order to complete the checkout flow.

Simply stating in a separate document which payment methods need finalize order seems more logical to me.

fthobe avatar Jan 18 '20 08:01 fthobe

At the moment, our recommendation is to simply always call it. If order finalisation is not required, a specific exception will be thrown and you could simple catch that type of exception.

Is there any reason why you think this approach wouldn't be sufficient for you?

lpschz avatar Jan 21 '20 03:01 lpschz

TL;DR Then just write that in the documentation :)

Hi @capsula4 , thank you for getting back to me. I understand that, but it is nowhere clearly written, the documentation states that only some methods needs it.

This implies that a:

  1. Some hosted payment methods require finalize order and others don't and that is in now way best practice to include it.
  2. It does not state that this method is mandatory or at least best practice
  3. It results in comments like the one linked above wrongly stating that Adyen requires finalize order while the process is entirely handled by payments.bigcommerce.com after returning from the payment page.

Even in 2nd level / 3rd Level support the BC team seems to be confused about the requirements and is struggling to identify if issues are a result of wrong implementation or not and by default accuse developers to screw up implementation. Bugfixing Adyen with them took 6 months, several tickets, two escalations to 2nd / 3rd Level support, refusals by BC support to acknowledge a problem for months till they understood that the problem was on the BC side of the system. We would have saved many roundtrips of support tickets if it would be stated clearly in the documentation that Adyen does not require finalize.

If I'd be you people I'd write in the documentation the following:

Some payment methods, the customer may be asked to enter their payment details on an external website. For some of these payment methods it's requiered to finalize the order on the checkout. While it is not a technical requirement for all payment methods, you are advised to implement it to assure consistent behavior across all payment platforms and gateways and ease bugfixing of payment methods.

Markdown for Payment Gateway Table | Payment Gateway | Hosted / Non Hosted | Finalize Method Needed | | --- | --- | | Adyen | Hosted | No |

fthobe avatar Jan 22 '20 08:01 fthobe

Closing as resolved

bc-0dp avatar Feb 27 '24 09:02 bc-0dp