Best Practices für die Leistung
Der Checkout -Prozess in Adobe Commerce ist ein wichtiger Aspekt des Storefront-Erlebnisses. Sie beruht auf den integrierten Funktionen Warenkorb und Checkout.
Die Leistung ist entscheidend für die Aufrechterhaltung eines guten Benutzererlebnisses. Lesen Sie die Leistungsbenchmarkzusammenfassung , um mehr über Leistungserwartungen zu erfahren. Sie können die Leistung des Checkout optimieren, indem Sie die folgenden Optionen für die Verarbeitung von Auftrag mit hohem Durchsatz konfigurieren:
- AsyncOrder - Verarbeitet asynchron Bestellungen mithilfe einer Warteschlange.
- Aufgeschobene Gesamtberechnung: Verzögern Sie die Berechnungen für die Bestellsummen, bis der Checkout beginnt.
- Bestandsüberprüfung beim Laden des Warenkorbs - Entscheiden Sie, die Bestandsvalidierung von Warenkorbelementen zu überspringen.
- Lastenausgleich: Aktivieren Sie sekundäre Verbindungen für die MySQL-Datenbank und die Redis-Instanz.
Die Konfigurationsoptionen AsyncOrder, Deferred Total Calculation und Inventory Check on Cart Load funktionieren unabhängig voneinander. Sie können alle drei Funktionen gleichzeitig verwenden oder die Funktionen in jeder beliebigen Kombination aktivieren und deaktivieren.
Asynchrone Bestellplatzierung
Das Modul Async Order aktiviert die asynchrone Bestellplatzierung, die die Bestellung als received
kennzeichnet, die Bestellung in eine Warteschlange stellt und Bestellungen aus der Warteschlange auf "first-in-first-out"-Basis verarbeitet. AsyncOrder ist standardmäßig disabled.
Beispielsweise fügt ein Kunde seinem Warenkorb ein Produkt hinzu und wählt Proceed to Checkout aus. Sie füllen das Shipping Address-Formular aus, wählen ihr bevorzugtes Shipping Method aus, wählen eine Zahlungsmethode aus und platzieren die Bestellung. Der Warenkorb wird gelöscht, die Bestellung wird als Received gekennzeichnet, aber die Produktmenge wird noch nicht angepasst und auch keine Verkaufs-E-Mail an den Kunden gesendet. Die Bestellung wird empfangen, aber die Bestelldetails sind noch nicht verfügbar, da die Bestellung noch nicht vollständig verarbeitet wurde. Er verbleibt in der Warteschlange, bis der placeOrderProcess
-Verbraucher beginnt, die Bestellung mit der Funktion Bestandsüberprüfung überprüft (standardmäßig aktiviert) und die Reihenfolge wie folgt aktualisiert:
- Produkt verfügbar: Der Bestellstatus ändert sich in "Ausstehend", die Produktmenge wird angepasst, eine E-Mail mit Bestelldetails wird an den Kunden gesendet und die erfolgreichen Bestelldetails stehen in der Liste Bestellungen und Rückgaben zur Ansicht zur Verfügung mit ausführbaren Optionen, wie z. B. Neuanordnung.
- Produkt nicht vorrätig oder wenig vorrätig: Der Bestellstatus ändert sich in "Abgelehnt", die Produktmenge wird nicht angepasst, eine E-Mail mit Bestelldetails zum Problem wird an den Kunden gesendet und die zurückgewiesenen Bestelldetails werden in der Liste Bestellungen und Rückgaben ohne umsetzbare Optionen verfügbar.
Verwenden Sie die Befehlszeilenschnittstelle, um diese Funktionen zu aktivieren, oder bearbeiten Sie die Datei "app/etc/env.php
"entsprechend den entsprechenden README-Dateien, die im Modulreferenzhandbuch definiert sind.
So aktivieren Sie AsyncOrder:
Sie können AsyncOrder über die Befehlszeilenschnittstelle aktivieren:
bin/magento setup:config:set --checkout-async 1
Der Befehl set
schreibt Folgendes in die Datei app/etc/env.php
:
...
'checkout' => [
'async' => 1
]
Siehe AsyncOrder im Modulreferenzhandbuch.
So deaktivieren Sie AsyncOrder:
Sie können AsyncOrder über die Befehlszeilenschnittstelle deaktivieren:
bin/magento setup:config:set --checkout-async 0
Der Befehl set
schreibt Folgendes in die Datei app/etc/env.php
:
...
'checkout' => [
'async' => 0
]
AsyncOrder-Kompatibilität
AsyncOrder unterstützt eine begrenzte Anzahl von Adobe Commerce-Funktionen.
Standard Checkout
B2B Negotiable Zitat
Cash on Delivery
Braintree
PayPal PayFlow Pro
Die folgenden Funktionen werden von AsyncOrder zwar nicht unterstützt, funktionieren aber weiterhin synchron:
- Zahlungsmethoden sind nicht in der Liste der unterstützten Funktionen enthalten
- Checkout für mehrere Adressen
- Erstellung von Admin-Bestellungen
Web-API-Unterstützung
Wenn das AsyncOrder-Modul aktiviert ist, werden die folgenden REST-Endpunkte und GraphQL-Mutationen asynchron ausgeführt:
REST:
GraphQL:
Zahlungsmethoden ausschließen
Entwickler können bestimmte Zahlungsmethoden explizit von der asynchronen Bestellplatzierung ausschließen, indem sie zum Array Magento\AsyncOrder\Model\OrderManagement::paymentMethods
hinzugefügt werden. Bestellungen, die ausgeschlossene Zahlungsmethoden verwenden, werden synchron verarbeitet.
Negotiatives Anführungszeichen - Asynchrone Reihenfolge
Mit dem B2B-Modul Negotiable Quote Async Order können Sie Bestellelemente asynchron für die Funktion NegotiableQuote
speichern. Sie müssen AsyncOrder und NegotiableQuote aktiviert haben.
Zurückgestellte Gesamtberechnung
Das Modul Aufgeschobene Gesamtberechnung optimiert den Checkout-Prozess, indem die Gesamtberechnung aufgeschoben wird, bis sie für den Warenkorb oder während der letzten Checkout-Schritte angefordert wird. Wenn diese Option aktiviert ist, wird nur die Zwischensumme berechnet, da ein Kunde Produkte zum Warenkorb hinzufügt.
Die verzögerte Gesamtberechnung ist standardmäßig deaktiviert. Verwenden Sie die Befehlszeilenschnittstelle, um diese Funktionen zu aktivieren, oder bearbeiten Sie die Datei "app/etc/env.php
"entsprechend den entsprechenden README-Dateien, die im Modulreferenzhandbuch definiert sind.
So aktivieren Sie DeferredTotalCalculation:
Sie können DeferredTotalCalculation über die Befehlszeilenschnittstelle aktivieren:
bin/magento setup:config:set --deferred-total-calculating 1
Der Befehl set
schreibt Folgendes in die Datei app/etc/env.php
:
...
'checkout' => [
'deferred_total_calculating' => 1
]
So deaktivieren Sie DeferredTotalCalculation:
Sie können DeferredTotalCalculation über die Befehlszeilenschnittstelle deaktivieren:
bin/magento setup:config:set --deferred-total-calculating 0
Der Befehl set
schreibt Folgendes in die Datei app/etc/env.php
:
...
'checkout' => [
'deferred_total_calculating' => 0
]
Siehe DeferredTotalCalculating im Modulreferenzhandbuch.
Feste Produktsteuer
Wenn die verzögerte Berechnung der Gesamtsumme aktiviert ist, ist die feste Produktsteuer (FPT) nicht im Produktpreis und der Untersumme des Warenkorbs des Mini-Warenkorbs enthalten, nachdem das Produkt zum Warenkorb hinzugefügt wurde. Die FPT-Berechnung wird beim Hinzufügen eines Produkts zum Mini-Warenkorb verschoben. Der FPT wird im Warenkorb korrekt angezeigt, nachdem der Vorgang zum endgültigen Kassengang fortgesetzt wurde.
Lagerbestandsüberprüfung deaktivieren
Die globale Einstellung Bestand beim Warenkorb laden aktivieren bestimmt, ob beim Laden eines Produkts in den Warenkorb eine Bestandsüberprüfung durchgeführt werden soll. Die Deaktivierung des Prozesses zur Überprüfung des Bestands verbessert die Leistung bei allen Checkout-Schritten, insbesondere beim Umgang mit Massenprodukten im Warenkorb.
Wenn diese Option deaktiviert ist, wird beim Hinzufügen eines Produkts zum Warenkorb keine Bestandsüberprüfung durchgeführt. Wenn diese Bestandsüberprüfung übersprungen wird, können einige nicht vorrätige Szenarien andere Fehlertypen auslösen. Eine Bestandsüberprüfung always erfolgt beim Bestellplatzierungsschritt, auch wenn sie deaktiviert ist.
Die Option "Überprüfung des Lagerbestands beim Laden des Warenkorbs aktivieren" ist standardmäßig aktiviert (auf "Ja" eingestellt). Um die Bestandsüberprüfung beim Laden des Warenkorbs zu deaktivieren, setzen Sie in der Admin-Benutzeroberfläche Stores > Konfiguration > Katalog > Bestand > Lageroptionen auf No
. Enable Inventory Check On Cart Load Siehe Globale Optionen konfigurieren und Katalog-Inventar im Benutzerhandbuch.
Lastenausgleich
Sie können den Lastenausgleich über verschiedene Knoten hinweg unterstützen, indem Sie für die MySQL-Datenbank und die Redis-Instanz sekundäre Verbindungen aktivieren.
Adobe Commerce kann mehrere Datenbanken oder Redis-Instanzen asynchron lesen. Wenn Sie Commerce in der Cloud-Infrastruktur verwenden, können Sie die sekundären Verbindungen konfigurieren, indem Sie die Werte MYSQL_USE_SLAVE_CONNECTION und REDIS_USE_SLAVE_CONNECTION in der Datei .magento.env.yaml
bearbeiten. Nur ein Knoten muss Lese- und Schreibvorgänge-Traffic verarbeiten. Wenn Sie die Variablen auf true
setzen, wird daher eine sekundäre Verbindung für schreibgeschützten Traffic erstellt. Setzen Sie die Werte auf "false
", um ein vorhandenes schreibgeschütztes Verbindungs-Array aus der env.php
-Datei zu entfernen.
Beispiel der Datei ".magento.env.yaml
":
stage:
deploy:
MYSQL_USE_SLAVE_CONNECTION: true
REDIS_USE_SLAVE_CONNECTION: true