magento 2 eliminar la recarga de la página del artículo del carrito mini?

15

¿Cómo puedo volver a cargar la página cuando elimino el artículo del carrito mini?
Sé que es un Magento 2error.

En la página del carrito de pago hay muchos productos en el carrito mini y en la página del carrito de pago cuando elimino el carrito mini, el contenido no se actualiza y sé que es muy importante actualizar el contenido de la página del carrito de pago usando Ajax, así que estoy pensando en cuándo el cliente elimina el artículo del carrito Necesito volver a cargar la página.

Pratik
fuente
prueba esto funciona para mí magento.stackexchange.com/a/141334/36463
Bilal Usean
1
Puede poner la recarga de la página de JavaScript window.location.reload();después de eliminar ajax se completa con éxito.
Jaimin Sutariya

Respuestas:

1

Problema solucionado en todas las páginas de pago magento 2

app / design / frontend / Magento / yourtheme / Magento_Checkout / web / js / sidebar.js

=> poner el código del comentario después de completar la función

.done(function (response) {
    var msg;
    if (response.success) {
        callback.call(this, elem, response);
       /** **page reload code */
        if(this.options.url.remove == url && window.location.href.indexOf("checkout") > -1){
            window.location.reload(true);
        }**
        /** page reload code */
    } else {
        msg = response['error_message'];

        if (msg) {
            alert({
                content: msg
            });
        }
    }
    })
HIren Kadivar
fuente
0

Si tiene algún módulo en /app/code Entonces dentro de ese módulo, cree o edite un archivo debajo Namespace/Your module/etc/frontend/sections.xml.

Y escribe y dentro de este archivo:

<action name="checkout/sidebar/removeItem">
<section name="cart"/>
</action> 

Esto debe escribirse bajo una declaración de configuración válida. Puede ver cómo escribir esto en el módulo de pago bajo vendor / magento.

Kumar M
fuente
0

Una solución simple para este problema.

Copia el archivo

vendor / magento / module-checkout / view / frontend / web / js / view / minicart.js

a

your_theme_path / Magento_Checkout / web / js / view / minicart.js

En la función de inicialización

if(window.location.href.indexOf("checkout/cart") > -1) {
         location.reload();
     }

Agregue este código en la función contentLoading como esta

$('[data-block="minicart"]').on('contentLoading', function (event) {
            addToCartCalls++;
            self.isLoading(true);
                $('[data-block="minicart"]').on('contentUpdated', function ()  {
                    $('[data-block="minicart"]').find('[data-role="dropdownDialog"]').dropdownDialog("open");       
                    setTimeout(function() {
                    $('[data-block="minicart"]').find('[data-role="dropdownDialog"]').dropdownDialog("close");
                }, 4000);
            });
            if(window.location.href.indexOf("checkout/cart") > -1) {
                location.reload();
            }
        });
Athul Vijayan
fuente