Warenkorbmenge automatisch aktualisieren, wenn Menge geändert wird
-
12-12-2019 - |
Frage
Wenn der Kunde im Standard-Warenkorb von Magento die Menge bearbeitet, muss er/sie die Schaltfläche drücken, um die Menge zu aktualisieren.
Gibt es eine Möglichkeit, dass der Warenkorb die Menge automatisch aktualisiert, wenn der Benutzer eine andere Zahl in das Mengenfeld eingibt?
Lösung
Bearbeiten Sie zuerst den Warenkorb Template /app/design/frontend/{package}/{theme}/template/checkout/cart.phtml
und fügen Sie einen id im Formularelement hinzu, um den Zugriff zu erleichtern.Nehmen wir an, Sie fügen Sie 'ID="Cart-Form"'; hinzu
Bearbeiten Sie nun die Vorlagen, die die Warenkorb Artikel rendern:
- .
- App / Design / Frontend / {Paket} / {Theme} /template/checkout/cart/item/default.phtml
- App / Design / Frontend / {Paket} / {Theme} /template/downloadable/checkout/cart/item/default.phtml
und auf dem
<input>
-Element mit dem Namencart[<?php echo $_item->getId() ?>][qty]
das hinzufügen: generasacodicetagpre.Aber ich empfehle das nicht.Es ist wirklich nervig für die Benutzer.(zumindest für mich).
Andere Tipps
Angenommen, Ihre Website hat jQuery im No-Conflict-Modus enthalten, hier ist ein Weg, dies asynchron zu tun (viel weniger nervig!). generasacodicetagpre.
Ich sollte darauf hinweisen, dass dies die folgenden Annahmen macht:
- .
- Ihr Warenkorb lebt innerhalb eines Elements mit der ID von Einkaufswagen-Tabelle
- Ihre Eingabefelder für
Menge haben ein Namensattribut, das mit [qty] endet Es sollte einfach sein, die Selektoren in den Code in den Zeilen 2 bzw. 5, jeweils an Ihre Umstände anzupassen.
Bearbeiten Sie diese beiden Dateien generasacodicetagpre.
und auf dem Element mit dem Namen cart[<?php echo $_item->getId() ?>][qty]
Fügen Sie diesen:
generasacodicetagpre.
Wenn Ihre jQuery-Version alt ist, werden Sie keinen Erfolg haben.Ich habe einen Weg gefunden, der wie folgt lautet: Befolgen Sie die Anweisungen unseres Freundes Marius zum Einfügen
/app/design/frontend/{package}/{theme}/template/checkout/cart.phtml
und fügen Sie dem Formularelement eine ID hinzu, um den Zugriff zu erleichtern.Nehmen wir an, Sie fügen hinzu id="cart-form"
Öffnen Sie nun die Datei
app/design/frontend/{package}/{theme}/template/downloadable/checkout/cart/item/default.phtml
Scrollen Sie zum Ende der Datei und Sie finden das Javascript, das die Menge erhöht und verringert.Die Funktion sieht folgendermaßen aus:
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;
}
}
Dazu ändern:
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();
}
}
Falls Sie jQuery (noch) nicht geladen haben, können Sie es auch finden <input>
Element (oder in meinem Fall a <select>
Element, da ich ein Dropdown-Feld zur Auswahl der Menge erstellt habe) mit dem Namen name="cart[<?php echo $_item->getId() ?>][qty]"
und füge Folgendes hinzu:
onchange="this.form.submit()"
Die zu bearbeitende HTML-Datei befindet sich hier:
app/design/frontend/{package}/{theme}/template/checkout/cart/item/default.phtml