Bästa praxis för utcheckning av prestanda
Processen Checka ut i Adobe Commerce är en viktig del av butiksupplevelsen. Den bygger på de inbyggda funktionerna cart och checkout .
Prestanda är avgörande när det gäller att upprätthålla en bra användarupplevelse. Granska sammanfattningen för prestandatestet om du vill veta mer om prestandaförväntningarna. Du kan optimera utcheckningsprestanda genom att konfigurera följande alternativ för bearbetning av order med hög genomströmning:
- AsyncOrder - Bearbetar order asynkront med en kö.
- Uppskjuten total beräkning - Skjut upp beräkningar för ordersummor tills utcheckningen börjar.
- Inventeringskontroll vid kundvagnsinläsning - Välj om du vill hoppa över lagervalidering av kundvagnsartiklar.
- Lastbalansering - Aktivera sekundära anslutningar för MySQL-databasen och Redis-instansen.
Konfigurationsalternativen AsyncOrder, Laterred Total Calculation och Inventory Check on Cart Load fungerar alla oberoende av varandra. Du kan använda alla tre funktionerna samtidigt eller aktivera och inaktivera funktionerna i valfri kombination.
Asynkron orderplacering
Modulen Asynkron ordning aktiverar asynkron placering av ordningen som received
, placerar ordern i en kö och bearbetar order från kön första-i-första-ut-basis. AsyncOrder är inaktiverad som standard.
En kund lägger till exempel till en produkt i kundvagnen och väljer Proceed to Checkout. De fyller i formuläret Shipping Address, väljer önskad Shipping Method, väljer en betalningsmetod och gör en beställning. Kundvagnen har rensats, ordern har markerats som Received, men produktkvantiteten har inte justerats ännu och inte heller skickas ett e-postmeddelande till kunden. Ordern tas emot, men orderinformationen är inte tillgänglig än eftersom ordern inte har bearbetats fullständigt. Den ligger kvar i kön tills konsumenten placeOrderProcess
börjar, verifierar ordern med funktionen lagerkontroll (aktiverad som standard) och uppdaterar ordningen enligt följande:
- Produkten är tillgänglig - orderstatusen ändras till Väntande, produktkvantiteten justeras, ett e-postmeddelande med orderinformation skickas till kunden och den slutförda orderinformationen blir tillgänglig för visning i listan Beställningar och Returer med åtgärdbara alternativ, till exempel ändra ordning.
- Produkten är inte i lager eller har låg leverans - orderstatusen ändras till Avvisad, produktkvantiteten justeras inte, ett e-postmeddelande med orderinformation om utgåvan skickas till kunden och den avvisade orderinformationen blir tillgänglig i listan Beställningar och Returer utan några åtgärdbara alternativ.
Använd kommandoradsgränssnittet för att aktivera de här funktionerna eller redigera filen app/etc/env.php
enligt motsvarande README-filer som definieras i Modulreferenshandboken.
Så här aktiverar du AsyncOrder:
Du kan aktivera AsyncOrder med kommandoradsgränssnittet:
bin/magento setup:config:set --checkout-async 1
Kommandot set
skriver följande till filen app/etc/env.php
:
...
'checkout' => [
'async' => 1
]
Se AsyncOrder i Modulens referenshandbok.
Så här inaktiverar du AsyncOrder:
Du kan inaktivera AsyncOrder med kommandoradsgränssnittet:
bin/magento setup:config:set --checkout-async 0
Kommandot set
skriver följande till filen app/etc/env.php
:
...
'checkout' => [
'async' => 0
]
AsyncOrder-kompatibilitet
AsyncOrder stöder en begränsad uppsättning Adobe Commerce-funktioner.
Standardutcheckning
Förhandlingsbar B2B-offert
Cash on Delivery
Braintree
PayPal PayFlow Pro
Följande funktioner stöds inte av AsyncOrder, men fortsätter att fungera synkront:
- Betalningsmetoder som inte ingår i listan över funktioner som stöds
- Checka ut flera adresser
- Skapa administratörsorder
Stöd för webb-API
När modulen AsyncOrder är aktiverad körs följande REST-slutpunkter och GraphQL-mutationer asynkront:
REST:
GraphQL:
Utesluta betalningsmetoder
Utvecklare kan uttryckligen exkludera vissa betalningsmetoder från asynkron orderplacering genom att lägga till dem i Magento\AsyncOrder\Model\OrderManagement::paymentMethods
-arrayen. Order som använder uteslutna betalningsmetoder behandlas synkront.
Asynk order för överlåtbar offert
Med B2B-modulen Förhandlingsbar offertasynkron ordning kan du spara orderobjekt asynkront för funktionen NegotiableQuote
. AsyncOrder och NegotiableQuote måste vara aktiverade.
Uppskjuten total beräkning
Modulen Uppskjuten total beräkning optimerar utcheckningsprocessen genom att skjuta upp den totala beräkningen tills den begärs för kundvagnen eller under de sista utcheckningsstegen. När det här alternativet är aktiverat beräknas endast delsumman när kunden lägger till produkter i kundvagnen.
Uppskjuten total beräkning är inaktiverad som standard. Använd kommandoradsgränssnittet för att aktivera de här funktionerna eller redigera filen app/etc/env.php
enligt motsvarande README-filer som definieras i Modulreferenshandboken.
Så här aktiverar du DeferredTotalCalculation:
Du kan aktivera DeferredTotalCalculation med kommandoradsgränssnittet:
bin/magento setup:config:set --deferred-total-calculating 1
Kommandot set
skriver följande till filen app/etc/env.php
:
...
'checkout' => [
'deferred_total_calculating' => 1
]
Så här inaktiverar du DeferredTotalCalculation:
Du kan inaktivera DeferredTotalCalculation med kommandoradsgränssnittet:
bin/magento setup:config:set --deferred-total-calculating 0
Kommandot set
skriver följande till filen app/etc/env.php
:
...
'checkout' => [
'deferred_total_calculating' => 0
]
Se DeferredTotalCalculating i referenshandboken för modulen.
Fast produktskatt
När Uppskjuten total beräkning är aktiverad inkluderas inte FPT (Fixed Product Tax) i produktpriset och kundvagnens delsumma efter att produkten lagts till i kundvagnen. FPT-beräkningen skjuts upp när en produkt läggs till i minivagnen. FPT visas korrekt i kundvagnen när du har gått till den slutliga utcheckningen.
Inaktivera lagerkontroll
Den globala inställningen Aktivera lager vid kundvagnsbeläggning avgör om en inventeringskontroll ska utföras när en produkt läses in i kundvagnen. Om du inaktiverar lagerkontrollprocessen förbättras prestanda för alla utcheckningssteg, särskilt när du hanterar bulkprodukter i vagnen.
När alternativet är inaktiverat görs ingen lagerkontroll när en produkt läggs till i kundvagnen. Om inventeringskontrollen hoppas över kan vissa scenarier utanför lagret ge upphov till andra typer av fel. En lagerkontroll alltid utförs vid orderplaceringssteget, även när den är inaktiverad.
Aktivera inläsning av kundvagn för lagerkontroll är aktiverat (inställt på Ja) som standard. Om du vill inaktivera lagerkontrollen när vagnen läses in anger du Enable Inventory Check On Cart Load till No
i administratörsgränssnittet Lagrar > Konfiguration > Katalog > Lager > Stock-alternativ . Se Konfigurera globala alternativ och Kataloginventering i användarhandboken.
Belastningsutjämning
Du kan hjälpa till att balansera inläsningen mellan olika noder genom att aktivera sekundära anslutningar för MySQL-databasen och Redis-instansen.
Adobe Commerce kan läsa flera databaser eller Redis-instanser asynkront. Om du använder Commerce i en molninfrastruktur kan du konfigurera de sekundära anslutningarna genom att redigera värdena MYSQL_USE_SLAVE_CONNECTION och REDIS_USE_SLAVE_CONNECTION i filen .magento.env.yaml
. Endast en nod behöver hantera läs- och skrivtrafik, så om variablerna anges till true
skapas en sekundär anslutning för skrivskyddad trafik. Ange värdena till false
om du vill ta bort en befintlig skrivskyddad anslutningsmatris från filen env.php
.
Exempel på filen .magento.env.yaml
:
stage:
deploy:
MYSQL_USE_SLAVE_CONNECTION: true
REDIS_USE_SLAVE_CONNECTION: true