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:

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.

NOTE
Verwenden Sie keinen benutzerdefinierten PHP-Code, um die integrierten Funktionen für Warenkorb und Checkout anzupassen. Zusätzlich zu potenziellen Leistungsproblemen kann die Verwendung von benutzerdefiniertem PHP-Code zu komplexen Upgrades und Wartungsproblemen führen. Diese Probleme erhöhen Ihre Gesamtbetriebskosten. Wenn eine PHP-basierte Anpassung des Warenkorbs und des Checkout unvermeidbar ist, verwenden Sie nur die Erweiterungen, die für den Adobe Commerce Marketplace genehmigt wurden. Alle Marketplace-Erweiterungen unterliegen einer umfassenden Überprüfung, um zu überprüfen, ob sie den Adobe Commerce-Kodierungsstandards und Best Practices entsprechen.

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:

WARNING
Bevor Sie das AsyncOrder-Modul deaktivieren, müssen Sie sicherstellen, dass alle asynchronen Bestellprozesse von 1} abgeschlossen sind.

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.

Kategorie
Unterstützte Funktion
Checkout-Typen
OnePage Checkout
Standard Checkout
B2B Negotiable Zitat
Zahlungsmethoden
Check/Money Order
Cash on Delivery
Braintree
PayPal PayFlow Pro
Versandmethoden
Alle Versandmethoden werden unterstützt.

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:

INFO
GraphQL unterstützt nicht die asynchrone Platzierung übertragbarer Anführungsaufträge.

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
recommendation-more-help
c0c5bbed-4957-4162-81bc-120c837a1894