Skip to content

Refreshing/reloading the order confirmation page voids order #84

@moorena

Description

@moorena

server.use('Confirmation', function (req, res, next) {
var checkoutToken = request.httpParameterMap.checkout_token.stringValue;
try {
var basket = BasketMgr.getCurrentOrNewBasket();
if (affirm.data.getAffirmVCNStatus() != 'on') {

If your customer completes checkout and gets the order confirmation page, and then refreshes it, we re-enter this controller.

The basket will be empty (since the code calls getCurrentOrNewBasket) but the checkout token is still valid, and eventually, the checkCart → syncBasket → checkTotalPrice call chain will fail because the basket total is $0 but the authorized amount was whatever the posted order is.

That leads the code to call the Affirm void service to void the Affirm transaction. (and does not do any updates to the SFCC order)

Since we're only doing AUTH (capture is done later during fulfillment), when we go to capture payment, it fails (404/not found) because the transaction was voided on Affirm's side.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions