Aanbevolen werkwijzen voor afhandelingsprestaties
Het controleproces in Adobe Commerce is een kritiek aspect van de storefront ervaring. Het baseert zich op de ingebouwde karen controlemogelijkheden.
Prestaties zijn essentieel voor een goede gebruikerservaring. Herzie de samenvatting van de prestatiesbenchmarkom meer over prestatiesverwachtingen te leren. U kunt controleprestaties optimaliseren door de volgende opties voor verwerking van de hoog-productieorde te vormen:
- AsyncOrder- verwerkt asynchroon orden gebruikend een rij.
- Uitgestelde Totale Berekening- verwijder berekeningen voor ordetabellen tot de controle begint.
- Controle van de Inventaris op de Lading van de Kar- verkies om inventarisbevestiging van wortelpunten over te slaan.
- het in evenwicht brengen van de Lading- laat secundaire verbindingen voor het gegevensbestand MySQL en Redis instantie toe.
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.
Asynchrone orderplaatsing
De module van de Orde van 0} Async laat asynchrone ordeplaatsing toe, die de orde als received
merkt, plaatst de orde in een rij, en verwerkt orden van de rij op een eerste in-eerste-uit basis. AsyncOrder is gehandicapt door gebrek.
Een klant voegt bijvoorbeeld een product toe aan zijn winkelwagentje en selecteert Proceed to Checkout . Ze vullen het Shipping Address -formulier in, selecteren hun voorkeur Shipping Method , selecteren een betalingsmethode en plaatsen 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 verzonden. 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
consument begint, verifieert de orde met de eigenschap van de inventariscontrole(die door gebrek wordt toegelaten), en werkt de orde als volgt bij:
- Beschikbaar Product - de veranderingen van de ordestatus in __ in afwachting van, wordt de producthoeveelheid aangepast, wordt een e-mail met ordedetails verzonden naar de klant, en de succesvolle ordedetails worden beschikbaar voor het bekijken in de Orden en Keert lijst met actionable opties, zoals reorder terug.
- Product uit voorraad of lage levering - de ordestatus verandert in Geweigerd, wordt de hoeveelheid van het Product niet aangepast, wordt een e-mail met ordedetails over de kwestie verzonden naar de klant, en de verworpen ordedetails worden beschikbaar in de Orders en Keert lijst met geen actiegable opties terug.
Gebruik de bevel-lijn interface om deze eigenschappen toe te laten, of geef het app/etc/env.php
dossier volgens de overeenkomstige dossiers uit README die in de Gids van de Verwijzing van de Moduleworden bepaald.
om AsyncOrder toe te laten:
U kunt AsyncOrder inschakelen via de opdrachtregelinterface:
bin/magento setup:config:set --checkout-async 1
Met de opdracht set
schrijft u het volgende naar het app/etc/env.php
-bestand:
...
'checkout' => [
'async' => 1
]
Zie AsyncOrderin de Gids van de Verwijzing van de Module.
om AsyncOrder onbruikbaar te maken:
U kunt AsyncOrder uitschakelen via de opdrachtregelinterface:
bin/magento setup:config:set --checkout-async 0
Met de opdracht set
schrijft u het volgende naar het app/etc/env.php
-bestand:
...
'checkout' => [
'async' => 0
]
Compatibiliteit van AsyncOrder
AsyncOrder ondersteunt een beperkt aantal Adobe Commerce-functies.
StandaardAfhandeling
B2B Negotiable Citaat
Geld op Levering
Braintree
PayPal PayFlow Pro
De volgende eigenschappen worden niet gesteund door AsyncOrder, maar blijven 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:
Uitgezonderd betalingsmethoden
Ontwikkelaars kunnen bepaalde betaalmethoden expliciet uitsluiten van asynchrone orderplaatsing door deze aan de array Magento\AsyncOrder\Model\OrderManagement::paymentMethods
toe te voegen. Orders die gebruikmaken van uitgesloten betalingsmethoden worden synchroon verwerkt.
Negotiable Quote Async Order
De Negotiable Volgorde van het Citaat Async B2B module laat u toe om orde punten asynchroon voor de NegotiableQuote
functionaliteit te bewaren. U moet AsyncOrder en NegotiableQuote toegelaten hebben.
Uitgestelde totale berekening
De Uitgestelde Totale module van de Berekening optimaliseert het controleproces door de totale berekening uit te stellen tot het voor het winkelwagentje of tijdens de definitieve controlestappen wordt gevraagd. Wanneer toegelaten, slechts berekent subtotal als klant producten aan het het winkelwagentje toevoegt.
Uitgestelde Totale Berekening is gehandicapt door gebrek. Gebruik de bevel-lijn interface om deze eigenschappen toe te laten, of geef het app/etc/env.php
dossier volgens de overeenkomstige dossiers uit README die in de Gids van de Verwijzing van de Moduleworden bepaald.
om DeferredTotalCalcalculation toe te laten:
U kunt DeferredTotalCalcalculation toelaten gebruikend de bevel-lijn interface:
bin/magento setup:config:set --deferred-total-calculating 1
Met de opdracht set
schrijft u het volgende naar het app/etc/env.php
-bestand:
...
'checkout' => [
'deferred_total_calculating' => 1
]
om DeferredTotalCalcalculation onbruikbaar te maken:
U kunt DeferredTotalCalcalculation onbruikbaar maken gebruikend de bevel-lijn interface:
bin/magento setup:config:set --deferred-total-calculating 0
Met de opdracht set
schrijft u het volgende naar het app/etc/env.php
-bestand:
...
'checkout' => [
'deferred_total_calculating' => 0
]
Zie DeferredTotalCalculatingin de Gids van de Verwijzing van de 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
laat Overzicht op de Lading van de Kar toe het globale plaatsen bepaalt of om een inventariscontrole uit te voeren wanneer het laden van een product in de kar. 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 komt altijd voor bij de stap van de ordeplaatsing, zelfs wanneer onbruikbaar gemaakt.
laat de Controle van de Inventaris op de Lading van de Kunst toe wordt toegelaten (reeks aan ja) door gebrek. Om de inventariscontrole onbruikbaar te maken wanneer het laden van de kar, plaats Enable Inventory Check On Cart Load aan No
in Admin UI Opslag > Configuratie > Catalogus > Voorraad > sectie van de Opties van de Beeld 11}. Zie Globale Optiesen Inventaris van de Catalogusin de Gids van de Gebruiker vormen.
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 op wolkeninfrastructuur gebruikt, kunt u de secundaire verbindingen vormen door de waarden MYSQL_USE_SLAVE_CONNECTIONen REDIS_USE_SLAVE_CONNECTIONin het .magento.env.yaml
dossier uit te geven. Slechts één knoop moet read-write verkeer behandelen, zodat leidt het plaatsen van de variabelen aan true
tot het creëren van een secundaire verbinding voor read-only verkeer. Stel de waarden in op false
als u een bestaande alleen-lezen verbindingsarray uit het env.php
-bestand wilt verwijderen.
Voorbeeld van het bestand .magento.env.yaml
:
stage:
deploy:
MYSQL_USE_SLAVE_CONNECTION: true
REDIS_USE_SLAVE_CONNECTION: true