Best practice per le prestazioni del checkout

Il pagamento processo in Adobe Commerce è un aspetto critico dell’esperienza di vetrina. Si basa sul carrello e pagamento funzionalità.

Le prestazioni sono fondamentali per mantenere una buona esperienza utente. Rivedi riepilogo benchmark prestazioni per ulteriori informazioni sulle aspettative relative alle prestazioni. È possibile ottimizzare le prestazioni di pagamento configurando le seguenti opzioni per elaborazione degli ordini con throughput elevato:

Le opzioni di configurazione AsyncOrder, Deferred Total Calculation e Inventory Check on Cart Load funzionano tutte in modo indipendente. Potete utilizzare tutte e tre le feature contemporaneamente oppure attivarle e disattivarle in qualsiasi combinazione.

NOTE
Non utilizzare codice PHP personalizzato per personalizzare le funzionalità integrate del carrello e del pagamento. Oltre a potenziali problemi di prestazioni, l'utilizzo di un codice PHP personalizzato può causare complessi problemi di aggiornamento e manutenzione. Questi problemi aumentano il costo totale di proprietà. Se la personalizzazione del carrello e del pagamento basato su PHP è inevitabile, utilizza Adobe Commerce MarketplaceSolo estensioni approvate da. Tutte le estensioni del marketplace sono soggette a recensione completa per verificare che soddisfino gli standard di codifica e le best practice di Adobe Commerce.

Posizionamento dell’ordine asincrono

Il Ordine asincrono Il modulo consente il posizionamento asincrono dell’ordine, che contrassegna l’ordine come received, inserisce l'ordine in una coda ed elabora gli ordini dalla coda in base al primo ordine in uscita. AsyncOrder è disabilitato per impostazione predefinita.

Ad esempio, un cliente aggiunge un prodotto al carrello e seleziona Proceed to Checkout. Compilano il Shipping Address modulo, seleziona il modulo preferito Shipping Method, selezionare un metodo di pagamento e inoltrare l'ordine. Il carrello viene cancellato, l’ordine è contrassegnato come Received, ma la quantità di prodotto non è ancora stata regolata e non viene inviata al cliente un’e-mail di vendita. L'ordine viene ricevuto, ma i dettagli dell'ordine non sono ancora disponibili perché l'ordine non è stato completamente elaborato. Rimane in coda fino al placeOrderProcess il consumatore inizia, verifica l’ordine con controllo di inventario (attivata per impostazione predefinita) e aggiorna l’ordine come segue:

  • Prodotto disponibile- lo stato dell'ordine viene modificato in In sospeso, la quantità del prodotto viene adeguata, viene inviata al cliente un’e-mail con i dettagli dell’ordine e i dettagli dell’ordine riusciti diventano disponibili per la visualizzazione nel Ordini e restituzioni con opzioni actionable, ad esempio riordina.
  • Prodotto esaurito o di scarsa fornitura- lo stato dell'ordine viene modificato in Rifiutato, la quantità del prodotto non viene regolata, viene inviata al cliente un’e-mail con i dettagli dell’ordine relativi all’emissione e i dettagli dell’ordine rifiutato diventano disponibili nel Ordini e restituzioni senza opzioni utilizzabili.

Utilizza l’interfaccia della riga di comando per abilitare queste funzioni o modifica app/etc/env.php in base ai file README corrispondenti definiti nella Guida di riferimento del modulo.

Per abilitare AsyncOrder:

È possibile abilitare AsyncOrder tramite l'interfaccia della riga di comando:

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

Il set Il comando scrive quanto segue in app/etc/env.php file:

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

Consulta AsyncOrder nel Guida di riferimento del modulo.

Per disattivare AsyncOrder:

WARNING
Prima di disabilitare il modulo AsyncOrder, è necessario verificare che tutto i processi di ordinamento asincrono sono stati completati.

È possibile disattivare AsyncOrder utilizzando l'interfaccia della riga di comando:

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

Il set Il comando scrive quanto segue in app/etc/env.php file:

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

Compatibilità con AsyncOrder

AsyncOrder supporta un set limitato di funzioni di Adobe Commerce.

Categoria
Funzionalità supportata
Tipi di pagamento
Estrazione di OnePage
Pagamento standard
Offerta B2B negoziabile
Metodi di pagamento
Assegno/vaglia postale
Consegna in contanti
Braintree
PayPal PayFlow Pro
Metodi di spedizione
Sono supportati tutti i metodi di spedizione.

Le seguenti funzioni sono non supportato da AsyncOrder, ma continua a funzionare in modo sincrono:

  • Metodi di pagamento non inclusi nell’elenco delle funzioni supportate
  • Checkout multiindirizzo
  • Creazione ordine amministratore

Supporto API web

Quando il modulo AsyncOrder è abilitato, i seguenti endpoint REST e le mutazioni GraphQL vengono eseguiti in modo asincrono:

REST:

GraphQL:

INFO
GraphQL non supporta il posizionamento asincrono degli ordini di preventivo negoziabili.

Esclusione dei metodi di pagamento

Gli sviluppatori possono escludere esplicitamente alcuni metodi di pagamento dal posizionamento asincrono dell’ordine aggiungendoli al Magento\AsyncOrder\Model\OrderManagement::paymentMethods array. Gli ordini che utilizzano metodi di pagamento esclusi vengono elaborati in modo sincrono.

Ordine asincrono offerta negoziabile

Il Ordine asincrono offerta negoziabile Il modulo B2B consente di salvare gli articoli dell’ordine in modo asincrono per NegotiableQuote funzionalità. AsyncOrder e NegotiableQuote devono essere abilitati.

Calcolo del totale differito

Il Calcolo del totale differito Il modulo ottimizza il processo di pagamento posticipando il calcolo del totale fino a quando non viene richiesto per il carrello o durante i passaggi di pagamento finali. Quando questa opzione è attivata, solo il subtotale viene calcolato quando un cliente aggiunge prodotti al carrello.

Il calcolo del totale differito è disabilitato per impostazione predefinita. Utilizza l’interfaccia della riga di comando per abilitare queste funzioni o modifica app/etc/env.php in base ai file README corrispondenti definiti nella Guida di riferimento del modulo.

Per abilitare DeferredTotalCalculation:

È possibile abilitare DeferredTotalCalculation utilizzando l'interfaccia della riga di comando:

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

Il set Il comando scrive quanto segue in app/etc/env.php file:

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

Per disattivare DeferredTotalCalculation:

È possibile disattivare DeferredTotalCalculation utilizzando l'interfaccia della riga di comando:

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

Il set Il comando scrive quanto segue in app/etc/env.php file:

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

Consulta CalcoloTotaleDifferito nel Guida di riferimento del modulo.

Imposta Prodotto Fissa

Quando Calcolo totale differito è abilitato, l’imposta fissa sul prodotto (FPT, Fixed Product Tax) non viene inclusa nel prezzo del prodotto e nel subtotale del carrello del mini carrello dopo l’aggiunta del prodotto al carrello. Il calcolo dell’FPT viene differito quando si aggiunge un prodotto al mini carrello. L’FPT viene visualizzato correttamente nel carrello dopo aver proceduto al pagamento finale.

Disabilita controllo scorte

Il Abilita magazzino al caricamento del carrello impostazione globale determina se eseguire un controllo di inventario durante il caricamento di un prodotto nel carrello. La disattivazione del processo di controllo dell’inventario migliora le prestazioni per tutti i passaggi di pagamento, in particolare quando si tratta di prodotti in blocco nel carrello.

Se è disabilitata, il controllo dell’inventario non viene eseguito quando si aggiunge un prodotto al carrello. Se questo controllo di inventario viene saltato, alcuni scenari esauriti potrebbero generare altri tipi di errori. Un controllo di inventario sempre si verifica al passaggio di posizionamento dell’ordine, anche se disabilitato.

Abilita controllo magazzino al caricamento del carrello è attivato (impostato su Sì) per impostazione predefinita. Per disattivare il controllo dell'inventario durante il caricamento del carrello, impostare Enable Inventory Check On Cart Load a No nell’interfaccia di amministrazione Negozi > Configurazione > Catalogo > Inventario > Opzioni Stock sezione. Consulta Configurare le opzioni globali e Inventario catalogo nel Guida utente.

Bilanciamento del carico

È possibile bilanciare il carico tra nodi diversi abilitando connessioni secondarie per il database MySQL e l'istanza Redis.

Adobe Commerce può leggere più database o istanze Redis in modo asincrono. Se utilizzi Commerce su infrastruttura cloud, puoi configurare le connessioni secondarie modificando il MYSQL_USE_SLAVE_CONNECTION e REDIS_USE_SLAVE_CONNECTION valori in .magento.env.yaml file. Solo un nodo deve gestire il traffico di lettura-scrittura, quindi impostare le variabili su true determina la creazione di una connessione secondaria per il traffico di sola lettura. Imposta i valori su false per rimuovere qualsiasi array di connessione di sola lettura esistente dal env.php file.

Esempio di .magento.env.yaml file:

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