Magento2: mini-cart not empty after programmatically placing an order on success page












0















I have a custom payment gateway module.

When you click on the Place Order button on checkout, it redirects you to an external payment page & after that you return to a custom controller on that module.

This controller handles the payment response & if it's all good - it converts the current quote to an order using placeOrder() from MagentoQuoteApiCartManagementInterface. Then it redirects you to the normal success page ('checkout/onepage/success/').

The problem is, although the order has been placed & it all worked as it should - the minicart on the header is not empty (You get to the success page, see a link to the order details, but the mini cart stays full).

I tested other payment methods like checkmo, etc... & they always clear the carts somehow, it only happens with this payment method.

*I know that I can use customerData.invalidate(['cart']); on the success page as a workaround (& that's my current solution actually), but I don't like it. I assume that there's something that happens on the other methods/flows that triggers the minicart refresh.
What am I missng here?
Any idea?









share























  • Which Magento2 version you are using?

    – Amit Naraniwal
    4 mins ago











  • It happens on 2.2.5

    – Pini
    3 mins ago


















0















I have a custom payment gateway module.

When you click on the Place Order button on checkout, it redirects you to an external payment page & after that you return to a custom controller on that module.

This controller handles the payment response & if it's all good - it converts the current quote to an order using placeOrder() from MagentoQuoteApiCartManagementInterface. Then it redirects you to the normal success page ('checkout/onepage/success/').

The problem is, although the order has been placed & it all worked as it should - the minicart on the header is not empty (You get to the success page, see a link to the order details, but the mini cart stays full).

I tested other payment methods like checkmo, etc... & they always clear the carts somehow, it only happens with this payment method.

*I know that I can use customerData.invalidate(['cart']); on the success page as a workaround (& that's my current solution actually), but I don't like it. I assume that there's something that happens on the other methods/flows that triggers the minicart refresh.
What am I missng here?
Any idea?









share























  • Which Magento2 version you are using?

    – Amit Naraniwal
    4 mins ago











  • It happens on 2.2.5

    – Pini
    3 mins ago
















0












0








0








I have a custom payment gateway module.

When you click on the Place Order button on checkout, it redirects you to an external payment page & after that you return to a custom controller on that module.

This controller handles the payment response & if it's all good - it converts the current quote to an order using placeOrder() from MagentoQuoteApiCartManagementInterface. Then it redirects you to the normal success page ('checkout/onepage/success/').

The problem is, although the order has been placed & it all worked as it should - the minicart on the header is not empty (You get to the success page, see a link to the order details, but the mini cart stays full).

I tested other payment methods like checkmo, etc... & they always clear the carts somehow, it only happens with this payment method.

*I know that I can use customerData.invalidate(['cart']); on the success page as a workaround (& that's my current solution actually), but I don't like it. I assume that there's something that happens on the other methods/flows that triggers the minicart refresh.
What am I missng here?
Any idea?









share














I have a custom payment gateway module.

When you click on the Place Order button on checkout, it redirects you to an external payment page & after that you return to a custom controller on that module.

This controller handles the payment response & if it's all good - it converts the current quote to an order using placeOrder() from MagentoQuoteApiCartManagementInterface. Then it redirects you to the normal success page ('checkout/onepage/success/').

The problem is, although the order has been placed & it all worked as it should - the minicart on the header is not empty (You get to the success page, see a link to the order details, but the mini cart stays full).

I tested other payment methods like checkmo, etc... & they always clear the carts somehow, it only happens with this payment method.

*I know that I can use customerData.invalidate(['cart']); on the success page as a workaround (& that's my current solution actually), but I don't like it. I assume that there's something that happens on the other methods/flows that triggers the minicart refresh.
What am I missng here?
Any idea?







magento2 payment-methods payment-gateway mini-cart place-order





share












share










share



share










asked 6 mins ago









PiniPini

371212




371212













  • Which Magento2 version you are using?

    – Amit Naraniwal
    4 mins ago











  • It happens on 2.2.5

    – Pini
    3 mins ago





















  • Which Magento2 version you are using?

    – Amit Naraniwal
    4 mins ago











  • It happens on 2.2.5

    – Pini
    3 mins ago



















Which Magento2 version you are using?

– Amit Naraniwal
4 mins ago





Which Magento2 version you are using?

– Amit Naraniwal
4 mins ago













It happens on 2.2.5

– Pini
3 mins ago







It happens on 2.2.5

– Pini
3 mins ago












0






active

oldest

votes











Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "479"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f261346%2fmagento2-mini-cart-not-empty-after-programmatically-placing-an-order-on-success%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Magento Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f261346%2fmagento2-mini-cart-not-empty-after-programmatically-placing-an-order-on-success%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

What other Star Trek series did the main TNG cast show up in?

Berlina muro

Berlina aerponto