Magento 2 как сделать обновление ajax миникарты
Есть ли способ обновить мини-корзину с помощью ajax без кнопки обновления.
Я использую Magento 2.1.7, как выполнить обновление ajax мини-корзины, когда количество увеличивается(+) и уменьшается(-) внутри мини-корзины, так как количество увеличивается(+) и уменьшается(-) внутри цены товара в мини-корзине, и общая сумма должна измениться без нажатия на обновление
Заранее благодарю
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>
Изменить 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));
};
Теперь он не будет показывать кнопку обновления и автоматически обновит мини-карту без обновления страницы