Aanbevolen werkwijzen voor afhandelingsprestaties

De uitchecken -proces in Adobe Commerce is een essentieel aspect van de storefront-ervaring. Het steunt op ingebouwde karretje en uitchecken mogelijkheden.

Prestaties zijn essentieel voor een goede gebruikerservaring. Controleer de Overzicht van prestatiebenchmark voor meer informatie over prestatieverwachtingen. U kunt de uitcheckprestaties optimaliseren door de volgende opties te configureren voor verwerking van bestellingen met hoge doorvoer:

De opties AsyncOrder, Uitgestelde Totale Berekening, en de Controle van de Inventaris op de configuratieopties van de Lading van het Kart werken onafhankelijk. U kunt alle drie functies tegelijk gebruiken of de functies in een willekeurige combinatie in- en uitschakelen.

NOTE
Gebruik geen aangepaste PHP-code om de ingebouwde winkelwagentje- en afrekenmogelijkheden aan te passen. Naast mogelijke prestatieproblemen kan het gebruik van aangepaste PHP-code leiden tot complexe upgrades en onderhoudsuitdagingen. Deze kwesties verhogen uw totale kosten van eigendom. Als aanpassing van winkelwagentjes en afrekeningen op basis van PHP onvermijdelijk is, gebruikt u Adobe Commerce MarketplaceAlleen goedgekeurde extensies. Alle marktplaatsextensies zijn onderworpen aan uitgebreide beoordeling om te controleren of ze voldoen aan Adobe Commerce-coderingsstandaarden en best practices.

Asynchrone orderplaatsing

De Async-volgorde de module laat asynchrone orde plaatsing toe, die de orde als merkt received, plaatst de orde in een rij, en verwerkt orden van de rij op een eerste-in-eerste-uit basis. AsyncOrder is uitgeschakeld standaard.

Een klant voegt bijvoorbeeld een product toe aan zijn winkelwagentje en selecteert Proceed to Checkout. Ze vullen de Shipping Address formulier, selecteert u de gewenste Shipping Method, selecteert u een betalingsmethode en plaatst u de bestelling. Het winkelwagentje wordt gewist, de bestelling wordt gemarkeerd als Received, maar het aantal producten wordt nog niet aangepast en er wordt ook geen e-mail naar de klant gestuurd. De bestelling wordt ontvangen, maar de gegevens van de bestelling zijn nog niet beschikbaar omdat de bestelling niet volledig is verwerkt. Het blijft in de rij tot de placeOrderProcess de consument begint, verifieert de orde met inventariscontrole (standaard ingeschakeld) en werkt de volgorde als volgt bij:

  • Product beschikbaar—de orderstatus verandert in In behandeling, wordt het productaantal aangepast, wordt een e-mail met bestelgegevens naar de klant verzonden en worden de gegevens van de succesvolle bestelling beschikbaar voor weergave in het Orders en retourzendingen lijst met opties die u kunt activeren, zoals Opnieuw ordenen.
  • Product uit voorraad of lage voorraad—de orderstatus verandert in Geweigerd, wordt het aantal producten niet aangepast, wordt een e-mail met bestelgegevens over de uitgave naar de klant gestuurd en worden de gegevens van de geweigerde bestelling beschikbaar in de Orders en retourzendingen lijst zonder opties voor handelingen.

Gebruik de opdrachtregelinterface om deze functies in te schakelen of bewerk de interface app/etc/env.php bestand volgens de overeenkomstige README-bestanden die zijn gedefinieerd in het dialoogvenster Referentiehandleiding module.

AsyncOrder inschakelen:

U kunt AsyncOrder inschakelen via de opdrachtregelinterface:

bin/magento setup:config:set --checkout-async 1

De set opdracht schrijft het volgende naar de app/etc/env.php bestand:

...
   'checkout' => [
       'async' => 1
   ]

Zie AsyncOrder in de Referentiehandleiding module.

AsyncOrder uitschakelen:

WARNING
Voordat u de module AsyncOrder uitschakelt, moet u controleren of alles asynchrone ordeprocessen zijn voltooid.

U kunt AsyncOrder uitschakelen via de opdrachtregelinterface:

bin/magento setup:config:set --checkout-async 0

De set opdracht schrijft het volgende naar de app/etc/env.php bestand:

...
   'checkout' => [
       'async' => 0
   ]

Compatibiliteit van AsyncOrder

AsyncOrder ondersteunt een beperkt aantal Adobe Commerce-functies.

Categorie
Ondersteunde functie
Afhandelingstypen
OnePage Checkout
Standaard uitchecken
B2B-onderhandelbare offerte
Betalingsmethoden
Cheque/postwissel
Onder rembours
Braintree
PayPal PayFlow Pro
Verzendmethoden
Alle verzendmethoden worden ondersteund.

De volgende functies zijn niet ondersteund door AsyncOrder, maar blijft synchroon werken:

  • Betalingsmethoden zijn niet opgenomen in de lijst met ondersteunde functies
  • Uitchecken van meerdere adressen
  • Maken van beheerdervolgorde

Ondersteuning voor web-API

Wanneer de module AsyncOrder is ingeschakeld, worden de volgende REST-eindpunten en GraphQL-mutaties asynchroon uitgevoerd:

REST:

GraphQL:

INFO
GraphQL biedt geen ondersteuning voor het asynchroon plaatsen van verhandelbare aanhalingstekens.

Uitgezonderd betalingsmethoden

Ontwikkelaars kunnen bepaalde betaalmethoden expliciet uitsluiten van asynchrone orderplaatsing door deze toe te voegen aan de Magento\AsyncOrder\Model\OrderManagement::paymentMethods array. Orders die gebruikmaken van uitgesloten betalingsmethoden worden synchroon verwerkt.

Negotiable Quote Async Order

De Negotiable Quote Async Order In de B2B-module kunt u volgorde-items asynchroon opslaan voor de NegotiableQuote functionaliteit. U moet AsyncOrder en NegotiableQuote toegelaten hebben.

Uitgestelde totale berekening

De Uitgestelde totale berekening optimaliseert het afrekenproces door de totale berekening uit te stellen tot deze voor het winkelwagentje of tijdens de laatste afrekenstappen wordt aangevraagd. Wanneer toegelaten, slechts berekent subtotal als klant producten aan het het winkelwagentje toevoegt.

Uitgestelde totale berekening is uitgeschakeld standaard. Gebruik de opdrachtregelinterface om deze functies in te schakelen of bewerk de interface app/etc/env.php bestand volgens de overeenkomstige README-bestanden die zijn gedefinieerd in het dialoogvenster Referentiehandleiding module.

UitgesteldeTotaleBerekening inschakelen:

U kunt DeferredTotalCalcalculation toelaten gebruikend de bevel-lijn interface:

bin/magento setup:config:set --deferred-total-calculating 1

De set opdracht schrijft het volgende naar de app/etc/env.php bestand:

...
   'checkout' => [
       'deferred_total_calculating' => 1
   ]

UitgesteldeTotaleBerekening uitschakelen:

U kunt DeferredTotalCalcalculation onbruikbaar maken gebruikend de bevel-lijn interface:

bin/magento setup:config:set --deferred-total-calculating 0

De set opdracht schrijft het volgende naar de app/etc/env.php bestand:

...
   'checkout' => [
       'deferred_total_calculating' => 0
   ]

Zie UitgesteldeTotaalBerekenen in de Referentiehandleiding module.

Vaste productbelasting

Als Uitgestelde totale berekening is ingeschakeld, wordt de Vaste productbelasting (Vaste productbelasting) niet opgenomen in de productprijs en het subtotaal van de karretjes van de minikaart nadat het product aan het winkelwagentje is toegevoegd. De FPT-berekening wordt uitgesteld wanneer een product aan de minikaart wordt toegevoegd. Het FPT wordt correct weergegeven in het winkelwagentje nadat de laatste afhandeling is uitgevoerd.

Inventariscontrole uitschakelen

De Inventaris bij laden van winkelwagentje inschakelen globale instelling bepaalt of een inventariscontrole moet worden uitgevoerd wanneer een product in de winkelwagen wordt geladen. Als u het voorraadcontroleproces uitschakelt, worden de prestaties voor alle afhandelingsstappen verbeterd, met name wanneer u werkt met bulkproducten in het winkelwagentje.

Indien uitgeschakeld, wordt de inventariscontrole niet uitgevoerd wanneer een product aan het winkelwagentje wordt toegevoegd. Als deze inventariscontrole wordt overgeslagen, zouden sommige uit-van-voorraadscenario's andere soorten fouten kunnen werpen. Een inventariscontrole altijd komt bij de stap van de ordeplaatsing voor, zelfs wanneer onbruikbaar gemaakt.

Inventariscontrole bij laden van winkelwagentje inschakelen is standaard ingeschakeld (ingesteld op Ja). Als u de inventariscontrole tijdens het laden van het winkelwagentje wilt uitschakelen, stelt u Enable Inventory Check On Cart Load tot No in de beheerinterface Winkels > Configuratie > Catalogus > Inventaris > Opties voor voorraad sectie. Zie Globale opties configureren en Catalogusoverzicht in de Handboek.

Taakverdeling

U kunt helpen lading over verschillende knopen in evenwicht brengen door secundaire verbindingen voor het gegevensbestand MySQL en instantie Redis toe te laten.

Adobe Commerce kan meerdere databases of Redis-instanties asynchroon lezen. Als u Commerce gebruikt op cloudinfrastructuur, kunt u de secundaire verbindingen configureren door de MYSQL_USE_SLAVE_CONNECTION en REDIS_USE_SLAVE_CONNECTION waarden in de .magento.env.yaml bestand. Slechts één knoop moet read-write verkeer behandelen, zo plaatsend de variabelen aan true resulteert in het creëren van een secundaire verbinding voor read-only verkeer. De waarden instellen op false om een bestaande alleen-lezen-verbindingsarray te verwijderen uit de env.php bestand.

Voorbeeld van het .magento.env.yaml bestand:

stage:
  deploy:
    MYSQL_USE_SLAVE_CONNECTION: true
    REDIS_USE_SLAVE_CONNECTION: true
recommendation-more-help
c0c5bbed-4957-4162-81bc-120c837a1894