Best practice per le prestazioni del checkout

Il processo di estrazione in Adobe Commerce è un aspetto critico dell'esperienza di vetrina. Si basa sulle funzionalità integrate cart e checkout.

Le prestazioni sono fondamentali per mantenere una buona esperienza utente. Rivedi il riepilogo del benchmark delle prestazioni 🔗 per ulteriori informazioni sulle aspettative delle prestazioni. Puoi ottimizzare le prestazioni di estrazione configurando le seguenti opzioni per l'elaborazione di ordini ad alta velocità:

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 basata su PHP è inevitabile, utilizza solo le estensioni approvate da Adobe Commerce Marketplace. Tutte le estensioni del marketplace sono soggette a revisione approfondita per verificare che soddisfino gli standard di codifica e le best practice di Adobe Commerce.

Posizionamento dell’ordine asincrono

Il modulo Ordine asincrono consente il posizionamento dell'ordine asincrono, 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. Compila il modulo Shipping Address, seleziona il Shipping Method preferito, seleziona un metodo di pagamento e invia l'ordine. Il carrello è stato cancellato, l'ordine è contrassegnato come Received, ma la quantità di prodotto non è ancora stata regolata e non viene inviata un'e-mail di vendita al cliente. L'ordine viene ricevuto, ma i dettagli dell'ordine non sono ancora disponibili perché l'ordine non è stato completamente elaborato. Rimane in coda finché il consumatore placeOrderProcess non inizia, verifica l'ordine con la funzionalità inventory check (attivata per impostazione predefinita) e aggiorna l'ordine come segue:

  • Prodotto disponibile: lo stato dell'ordine diventa In sospeso, la quantità del prodotto viene adeguata, al cliente viene inviata un'e-mail con i dettagli dell'ordine e i dettagli dell'ordine riusciti diventano disponibili per la visualizzazione nell'elenco Ordini e restituzioni con opzioni actionable, ad esempio il riordino.
  • Prodotto esaurito o fornitura insufficiente. Lo stato dell'ordine diventa Rifiutato, la quantità del prodotto non viene adeguata, viene inviata al cliente un'e-mail con i dettagli dell'ordine relativi al problema e i dettagli dell'ordine rifiutato diventano disponibili nell'elenco Ordini e restituzioni senza opzioni utilizzabili.

Utilizzare l'interfaccia della riga di comando per abilitare queste funzionalità o modificare il file app/etc/env.php in base ai file README corrispondenti definiti nella Guida di riferimento al modulo.

Per abilitare AsyncOrder:

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

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

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

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

Vedi AsyncOrder nella Guida di riferimento al modulo.

Per disabilitare AsyncOrder:

WARNING
Prima di disabilitare il modulo AsyncOrder, è necessario verificare che tutti i processi dell'ordine asincrono siano stati completati.

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

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

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

...
   '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
Estrazione standard
Offerta negoziabile B2B
Metodi di pagamento
Assegno o vaglia postale
Contanti alla consegna
Braintree
PayPal PayFlow Pro
Metodi di spedizione
Sono supportati tutti i metodi di spedizione.

Le seguenti funzionalità sono non supportate da AsyncOrder, ma continuano 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:

RESTO:

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 all'array Magento\AsyncOrder\Model\OrderManagement::paymentMethods. Gli ordini che utilizzano metodi di pagamento esclusi vengono elaborati in modo sincrono.

Ordine asincrono offerta negoziabile

Il modulo B2B Negotiable Quote Async Order consente di salvare gli elementi dell'ordine in modo asincrono per la funzionalità NegotiableQuote. AsyncOrder e NegotiableQuote devono essere abilitati.

Calcolo del totale differito

Il modulo Calcolo totale differito 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. Utilizzare l'interfaccia della riga di comando per abilitare queste funzionalità o modificare il file app/etc/env.php in base ai file README corrispondenti definiti nella Guida di riferimento al modulo.

Per abilitare DeferredTotalCalculation:

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

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

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

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

Per disabilitare DeferredTotalCalculation:

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

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

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

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

Vedi DeferredTotalCalculating nella 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

L'impostazione globale Abilita inventario al caricamento del carrello determina se eseguire un controllo dell'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 always si verifica al passaggio di posizionamento dell'ordine, anche se disabilitato.

Abilita controllo inventario al caricamento del carrello è abilitato (impostato su Sì) per impostazione predefinita. Per disabilitare il controllo dell'inventario durante il caricamento del carrello, impostare Enable Inventory Check On Cart Load su No nella sezione Archivi > Configurazione > Catalogo > Inventario > Opzioni Stock. Consulta Configurare le opzioni globali e Inventario catalogo nella 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 si utilizza Commerce nell'infrastruttura cloud, è possibile configurare le connessioni secondarie modificando i valori MYSQL_USE_SLAVE_CONNECTION e REDIS_USE_SLAVE_CONNECTION nel file .magento.env.yaml. Poiché solo un nodo deve gestire il traffico di lettura/scrittura, l'impostazione delle variabili su true determina la creazione di una connessione secondaria per il traffico di sola lettura. Impostare i valori su false per rimuovere qualsiasi array di connessione di sola lettura esistente dal file env.php.

Esempio del file .magento.env.yaml:

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