Post-Purchase Additions/Upsells #2329
Replies: 3 comments
-
Either way, if they are entering payment details and you want to store them until you try to upsell, unless you are using payment detail tokens, you are about to enter a world of PCI DSS hurt. Most payment gateways support a tokenization scheme for credit card details in one way or another, though (I'm angrily frowning in your direction, PayPal Pro), so, for example, if you're using Stripe, you could use the Stripe's frontend form, but direct it to your own template (instead of the commerce/payments/pay). Since Stripe gateway uses tokenization of credit card details, at that point, you have a POST variable with that token ( |
Beta Was this translation helpful? Give feedback.
-
Would also love to see something around this. There are some plugins for Shopify and WooCommerce that do this. They aren't particularly great but something to do basic benchmarking against... |
Beta Was this translation helpful? Give feedback.
-
Anyone make any progress on this? |
Beta Was this translation helpful? Give feedback.
-
TLDR: Is there a way to add on products to an order and defer the onOrderComplete action until we fire it?
There's not really a great way to do post-purchase upsells/additions in Craft due to the limitations of the way gateways are setup.
Related to this, doing the 2-step authorize/capture workflow could also make post-purchase upsells in Craft possible (and better).
On a post-purchase upsell/cross-sell, you put your credit card details in and then submit the order. The final screen before "thank you" is one (or more) upsell or downsell page(s) where you can add or decline the offers. The customer is not prompted again for their credit card details, it all just gets tallied up.
Right now, there's not really a great way to do this in Commerce. Every upsell a customer wants might essentially be a new order. We'd also need to somehow save the customer's credit card details regardless to bill the customer again. (Not sure this is possible on a non-guest checkout?)
Potentially using an authorize/capture workflow would also allow us to authorize the customer then once they're through the entire checkout sequence, do a capture on the final amount (or wait for fulfillment if that's what's necessary)... similar to how gas stations don't know how much gas you're going to pump so they authorize a higher amount.
On some eocmmerce systems including Shopify and ClickFunnels, the credit card gets hit multiple times, once for the initial order and then another if the customer takes the upsell offers.
There's likely pros and cons to both approaches.
I don't know if those systems are capturing due to limitations in their workflows or multiple charges are the way to do proper upsells but I do know that multiple charges are definitely going to be more suspect to a customer. If a customer doesn't make it all the way through the checkout, you still want to finalize/capture the FIRST charge before the upsell sequence. That would require some sort of timeout on the server end which could get complicated.
Long short short, especially with Commerce Lite, I could see that being a potential alternative to something like ClickFunnels for simple purchases. (Since Commerce Lite doesn't support multiple cart items, we would simply switch out the product for variants of a product or even different products for example... but that's another topic.)
Beta Was this translation helpful? Give feedback.
All reactions