Magento 2 как сделать обновление ajax миникарты


Есть ли способ обновить мини-корзину с помощью ajax без кнопки обновления.

Я использую Magento 2.1.7, как выполнить обновление ajax мини-корзины, когда количество увеличивается(+) и уменьшается(-) внутри мини-корзины, так как количество увеличивается(+) и уменьшается(-) внутри цены товара в мини-корзине, и общая сумма должна измениться без нажатия на обновление

Заранее благодарю

Author: trilok kumar, 2018-10-08

2 answers

Существует два способа обновления миникарты

Метод 1: Использование sections.xml

Создать sections.xml файл в каталоге app/code/Vendor/Module/etc/frontend

<?xml version="1.0"?>

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Customer:etc/sections.xsd">
    <action name="module/ajax/index">
        <section name="cart"/>
    </action>
</config>

Примечание: Поместите URL-адрес вызова ajax вместо "модуль/ajax/индекс"

Метод 2: Использование зависимости customerData в теге скрипта

<script>
    require([
        'jquery',
        'Magento_Customer/js/customer-data'
    ], function ($, customerData) {

        $.ajax({
        type: "post",
        url: "your_url",
        data: {data : yourData},
        cache: false,
            success: function(response) {

                // reload the minicart
                var sections = ['cart'];
                customerData.reload(sections, true);

            }
        });

    });
</script>
 4
Author: Dinesh Yadav, 2019-03-09 06:27:02

Изменить sidebar.js файл. Найдите этот код:

events['keyup ' + this.options.item.qty] = function (event) {
            self._showItemButton($(event.target));
        };

И измените его на:

events['keyup ' + this.options.item.qty] = function (event) {
            self._updateItemQty($(event.currentTarget));
        };

Теперь он не будет показывать кнопку обновления и автоматически обновит мини-карту без обновления страницы

 0
Author: xCot, 2019-07-08 11:43:32