Jump to content

Properly communicate Stripe/Sofort payment process


TyronX

Recommended Posts

While its nice that Stripe offers payment by bank transfer via "Sofort", compared to other payment options the process is rather awful. Customers get charged immediately, but the order remains in a Pending state for multiple days. I lost count how many customers were contacting us as to why their money is gone but did not receive the product. It's especially infuriating for germans because "Sofort" in german means "Instant" - but its the exact opposite of instant.

There are many ways to improve this, but at the very least I would suggest to properly communicate this with the customer. I added a warning via template hack. Would be nice if it were a default feature. Would likely save hundreds of support tickets a year without much effort.

Could contain: Page, Text, File

 

Edited by TyronX
Link to comment
Share on other sites

On 11/27/2022 at 3:55 AM, TyronX said:

While its nice that Stripe offers payment by bank transfer via "Sofort", compared to other payment options the process is rather awful. Customers get charged immediately, but the order remains in a Pending state for multiple days. I lost count how many customers were contacting us as to why their money is gone but did not receive the product. It's especially infuriating for germans because "Sofort" in german means "Instant" - but its the exact opposite of instant.

There are many ways to improve this, but at the very least I would suggest to properly communicate this with the customer. I added a warning via template hack. Would be nice if it were a default feature. Would likely save hundreds of support tickets a year without much effort.

Could contain: Page, Text, File

 

In the image you posted, is that a custom plugin that displays that message or is it only there as an example?

Link to comment
Share on other sites

On 11/30/2022 at 7:48 AM, realspezz said:

In the image you posted, is that a custom plugin that displays that message or is it only there as an example?

It's a template hack as mentioned. In nexus/front/checkout/paymentForm

I replaced
 

                                      	<input type="radio" {{if (string) $input->value == (string) $k or ( isset( $input->options['userSuppliedInput'] ) and !\in_array( $input->value, array_keys( $input->options['options'] ) ) and $k == $input->options['userSuppliedInput'] )}}checked{{endif}} {{if $input->required === TRUE}}required{{endif}} {{if $input->disabled === TRUE or ( \is_array( $input->disabled ) and \in_array( $k, $input->disabled ) )}}disabled{{endif}} {{if isset( $input->options['toggles'][ $k ] ) and !empty( $input->options['toggles'][ $k ] )}}data-control="toggle" data-toggles="{expression="implode( ',', $input->options['toggles'][ $k ] )"}"{{endif}} id="elRadio_{$input->name}_{$k}" name="{$input->name}" value="{$k}">

with
 

                                      {{if $k==9}}
                                      	<input type="radio" {{if (string) $input->value == (string) $k or ( isset( $input->options['userSuppliedInput'] ) and !\in_array( $input->value, array_keys( $input->options['options'] ) ) and $k == $input->options['userSuppliedInput'] )}}checked{{endif}} {{if $input->required === TRUE}}required{{endif}} {{if $input->disabled === TRUE or ( \is_array( $input->disabled ) and \in_array( $k, $input->disabled ) )}}disabled{{endif}} {{if isset( $input->options['toggles'][ $k ] ) and !empty( $input->options['toggles'][ $k ] )}}data-control="toggle" data-toggles="9-9_card,{expression="implode( ',', $input->options['toggles'][ $k ] )"}"{{endif}} id="elRadio_{$input->name}_{$k}" name="{$input->name}" value="{$k}">
                                      {{else}}
                                      	<input type="radio" {{if (string) $input->value == (string) $k or ( isset( $input->options['userSuppliedInput'] ) and !\in_array( $input->value, array_keys( $input->options['options'] ) ) and $k == $input->options['userSuppliedInput'] )}}checked{{endif}} {{if $input->required === TRUE}}required{{endif}} {{if $input->disabled === TRUE or ( \is_array( $input->disabled ) and \in_array( $k, $input->disabled ) )}}disabled{{endif}} {{if isset( $input->options['toggles'][ $k ] ) and !empty( $input->options['toggles'][ $k ] )}}data-control="toggle" data-toggles="{expression="implode( ',', $input->options['toggles'][ $k ] )"}"{{endif}} id="elRadio_{$input->name}_{$k}" name="{$input->name}" value="{$k}">
                                      {{endif}}

not sure if k==9 is the same for you. Might be a different value for you. You should be able to see it when you inspect the payment form html in your browser.

and below {{endforeach}} I added this

<div id="9-9_card" class="" style="display: none;">
	
		<div style="display: block;">
	
			<div data-role="errorMessage" class="ipsMessage ipsMessage_warning">Please be aware that Payment via SEPA / Klarna will withdraw the money right away, but it can take up to 14 working days for the payment to complete. On average it takes about 3 working days. Your order will be in a 'Pending' state for this duration.</div>
</div></div>

 

 

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...