Jawaban:
Pertama-tama edit templat keranjang /app/design/frontend/{package}/{theme}/template/checkout/cart.phtml
dan tambahkan id pada elemen formulir untuk akses yang lebih mudah. Katakanlah Anda menambahkan 'id = "cart-form"';
Sekarang edit templat yang membuat item keranjang:
dan pada <input>
elemen dengan nama cart[<?php echo $_item->getId() ?>][qty]
tambahkan ini:
onchange="$('cart-form').submit()"
Tapi saya tidak menyarankan melakukan ini. Benar-benar menyebalkan bagi pengguna. (setidaknya untuk saya).
Dengan asumsi situs Anda memiliki jQuery yang termasuk dalam mode tanpa konflik, berikut adalah cara melakukannya secara tidak sinkron (apalagi menjengkelkan!).
jQuery(document).ready(function(){
jQuery('#shopping-cart-table')
.on(
'change',
'input[name$="[qty]"]',
function(){
var form = jQuery(jQuery(this).closest('form'));
// we'll extract the action and method attributes out of the form
// kick off an ajax request using the form's action and method,
// with the form data as payload
jQuery.ajax({
url: form.attr('action'),
method: form.attr('method'),
data: form.serializeArray()
});
}
);
});
Saya harus menunjukkan bahwa ini membuat asumsi berikut:
Seharusnya mudah untuk menyesuaikan pemilih dalam kode pada baris 2 dan 5 masing-masing agar sesuai dengan keadaan Anda.
Edit dua file ini
app/design/frontend/{package}/{theme}/template/checkout/cart/item/default.phtml
app/design/frontend/{package}/{theme}/template/downloadable/checkout/cart/item/default.phtml
dan pada elemen dengan nama cart[<?php echo $_item->getId() ?>][qty]
tambahkan ini:
onchange="this.form.submit()"
Jika versi jQuery Anda sudah tua, Anda tidak akan berhasil. Saya telah menemukan cara yaitu sebagai berikut, ikuti instruksi teman kita Marius untuk memasukkan
/app/design/frontend/{package}/{theme}/template/checkout/cart.phtml
dan menambahkan id pada elemen formulir untuk akses yang lebih mudah. Katakanlah Anda menambahkanid="cart-form"
Sekarang buka file
app/design/frontend/{package}/{theme}/template/downloadable/checkout/cart/item/default.phtml
Dan gulir ke akhir file dan Anda akan menemukan javascript yang melakukan penambahan dan penurunan kuantitas. Fungsi akan terlihat seperti ini:
function plusQty(itemId){
qty = $('qty'+itemId).value;
qty = parseInt(qty);
qty++;
$('qty'+itemId).value = qty;
}
function minusQty(itemId){
qty = $('qty'+itemId).value;
qty = parseInt(qty);
if(qty>0){
qty--;
$('qty'+itemId).value = qty;
}
}
Ubah untuk ini:
function plusQty(itemId){
qty = $('qty'+itemId).value;
qty = parseInt(qty);
qty++;
$('qty'+itemId).value = qty;
document.getElementById("cart-form").submit();
}
function minusQty(itemId){
qty = $('qty'+itemId).value;
qty = parseInt(qty);
if(qty>0){
qty--;
$('qty'+itemId).value = qty;
document.getElementById("cart-form").submit();
}
}
Jika Anda belum memuat jQuery (belum), Anda juga dapat menemukan <input>
elemen (atau dalam kasus saya <select>
elemen sejak saya membuat bidang dropdown untuk memilih jumlahnya) dengan nama name="cart[<?php echo $_item->getId() ?>][qty]"
dan menambahkan ini:
onchange="this.form.submit()"
File phtml yang harus Anda edit ada di sini:
app/design/frontend/{package}/{theme}/template/checkout/cart/item/default.phtml