Bonnes pratiques relatives aux performances de passage en caisse

La variable passage en caisse Le processus dans Adobe Commerce est un aspect essentiel de l’expérience storefront. Il repose sur la fonction intégrée panier et passage en caisse fonctionnalités.

Les performances sont essentielles pour garantir une expérience utilisateur optimale. Consultez la section résumé des performances pour en savoir plus sur les attentes en matière de performances. Vous pouvez optimiser les performances de passage en caisse en configurant les options suivantes pour traitement des commandes à haut débit:

Les options de configuration Commande asynchrone, Calcul total différé et Contrôle du stock sur le chargement du panier fonctionnent toutes indépendamment. Vous pouvez utiliser les trois fonctions simultanément ou activer et désactiver les fonctions dans n’importe quelle combinaison.

NOTE
N’utilisez pas de code PHP personnalisé pour personnaliser les fonctionnalités intégrées de panier et de passage en caisse. Outre les problèmes de performances potentiels, l’utilisation de code PHP personnalisé peut entraîner des mises à niveau et des problèmes de maintenance complexes. Ces problèmes augmentent le coût total de possession. Si la personnalisation du panier et du passage en caisse basée sur PHP est inévitable, utilisez Adobe Commerce MarketplaceExtensions approuvées uniquement. Toutes les extensions Marketplace sont soumises à examen approfondi pour vérifier qu’elles respectent les normes de codage Adobe Commerce et les bonnes pratiques.

Placement de l’ordre asynchrone

La variable Ordre asynchrone Le module active le placement de commande asynchrone, qui marque l’ordre comme received, place la commande dans une file d’attente et traite les commandes de la file d’attente de la façon "premier entré". AsyncOrder est disabled par défaut.

Par exemple, un client ajoute un produit à son panier et sélectionne Proceed to Checkout. Ils remplissent les Shipping Address formulaire, sélectionnez leurs préférences Shipping Method, sélectionnez un mode de paiement et passez la commande. Le panier est effacé, la commande est marquée comme Received, mais la quantité du produit n’est pas encore ajustée, pas plus qu’un email de vente n’est envoyé au client. La commande est reçue, mais les détails de la commande ne sont pas encore disponibles, car elle n’a pas été entièrement traitée. Il reste dans la file d’attente jusqu’à ce que la fonction placeOrderProcess Le consommateur commence, vérifie la commande avec la variable vérification de stock (activée par défaut) et met à jour l’ordre comme suit :

  • Produit disponible: l’état de la commande passe à En attente, la quantité du produit est ajustée, un e-mail contenant les détails de la commande est envoyé au client et les détails de la commande réussie peuvent être affichés dans la variable Commandes et renvoie liste avec des options exploitables, telles que réorganiser.
  • Produit en rupture de stock ou faible approvisionnement: l’état de la commande passe à Rejetés, la quantité de produit n’est pas ajustée, un e-mail contenant des détails sur la commande est envoyé au client et les détails de la commande rejetée sont disponibles dans la variable Commandes et renvoie liste sans options exploitables.

Utilisez l’interface de ligne de commande pour activer ces fonctionnalités ou modifiez la variable app/etc/env.php en fonction des fichiers LISEZMOI correspondants définis dans la variable Guide de référence du module.

Pour activer AsyncOrder:

Vous pouvez activer AsyncOrder à l’aide de l’interface de ligne de commande :

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

La variable set La commande écrit ce qui suit dans la fonction app/etc/env.php fichier :

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

Voir AsyncOrder dans le Guide de référence du module.

Pour désactiver AsyncOrder:

WARNING
Avant de désactiver le module AsyncOrder, vous devez vérifier que all les processus de commande asynchrones sont terminés.

Vous pouvez désactiver AsyncOrder à l’aide de l’interface de ligne de commande :

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

La variable set La commande écrit ce qui suit dans la fonction app/etc/env.php fichier :

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

Compatibilité d’AsyncOrder

AsyncOrder prend en charge un ensemble limité de fonctionnalités Adobe Commerce.

Catégorie
Fonctionnalité prise en charge
Types de passage en caisse
Extraction sur une page
Passage en caisse standard
Devis négociable B2B
Modes de paiement
Commande d’archivage/d’argent
Espèces à la livraison
Braintree
PayPal PayFlow Pro
Méthodes de livraison
Toutes les méthodes de livraison sont prises en charge.

Les fonctionnalités suivantes sont disponibles : not pris en charge par AsyncOrder, mais continuez à fonctionner de manière synchrone :

  • Modes de paiement non inclus dans la liste des fonctionnalités prises en charge
  • Passage en caisse multi-adresses
  • Création des commandes d’administration

Prise en charge des API web

Lorsque le module AsyncOrder est activé, les points de terminaison REST suivants et les mutations GraphQL s’exécutent de manière asynchrone :

REST :

GRAPHQL :

INFO
GraphQL ne prend pas en charge le placement asynchrone d’ordres de devis négociables.

Exclusion des modes de paiement

Les développeurs peuvent exclure explicitement certaines méthodes de paiement du placement de commande asynchrone en les ajoutant à la variable Magento\AsyncOrder\Model\OrderManagement::paymentMethods tableau. Les commandes qui utilisent des méthodes de paiement exclues sont traitées de manière synchrone.

Ordre asynchrone des citations négociables

La variable Ordre asynchrone des citations négociables Le module B2B vous permet d’enregistrer les éléments de commande de manière asynchrone pour le NegotiableQuote . AsyncOrder et NégociableQuote doivent être activés.

Calcul total différé

La variable Calcul total différé optimise le processus de passage en caisse en différant le calcul total jusqu’à ce qu’il soit demandé pour le panier ou lors des dernières étapes de passage en caisse. Lorsqu’il est activé, seul le sous-total est calculé lorsqu’un client ajoute des produits au panier.

Calcul du total différé disabled par défaut. Utilisez l’interface de ligne de commande pour activer ces fonctionnalités ou modifiez la variable app/etc/env.php en fonction des fichiers LISEZMOI correspondants définis dans la variable Guide de référence du module.

Pour activer DeferredTotalCalcul:

Vous pouvez activer DeferredTotalCalcul à l’aide de l’interface de ligne de commande :

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

La variable set La commande écrit ce qui suit dans la fonction app/etc/env.php fichier :

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

Pour désactiver DeferredTotalCalcul:

Vous pouvez désactiver DeferredTotalCalcul à l’aide de l’interface de ligne de commande :

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

La variable set La commande écrit ce qui suit dans la fonction app/etc/env.php fichier :

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

Voir DeferredTotalCalculating dans le Guide de référence du module.

Taxe sur les produits fixe

Lorsque l’option Calcul du total différé est activée, la taxe sur les produits fixes (FPT) n’est pas incluse dans le prix du produit et le sous-total du panier du mini-panier après l’ajout du produit au panier. Le calcul FPT est différé lors de l’ajout d’un produit au mini panier. Le FPT s’affiche correctement dans le panier après le passage en caisse final.

Désactiver la vérification du stock

La variable Activation de l’inventaire au chargement du panier paramètre global détermine s’il faut effectuer une vérification de stock lors du chargement d’un produit dans le panier. La désactivation du processus de vérification des stocks améliore les performances de toutes les étapes de passage en caisse, en particulier lorsque vous traitez des produits en vrac dans le panier.

Lorsque cette option est désactivée, la vérification de stock ne se produit pas lors de l’ajout d’un produit au panier. Si cette vérification de stock est ignorée, certains scénarios en rupture de stock peuvent générer d’autres types d’erreurs. Vérification de stock always se produit à l’étape d’emplacement de la commande, même lorsqu’elle est désactivée.

Activer Contrôle De L’Inventaire Lors Du Chargement Du Panier est activée (définie sur Oui) par défaut. Pour désactiver la vérification de stock lors du chargement du panier, définissez Enable Inventory Check On Cart Load to No dans l’interface utilisateur d’administration Magasins > Configuration > Catalogue > Inventaire > Options Stock . Voir Configuration des options globales et Inventaire du catalogue dans le Guide de l’utilisateur.

Equilibrage de la charge

Vous pouvez équilibrer la charge entre les différents noeuds en activant les connexions secondaires pour la base de données MySQL et l’instance Redis.

Adobe Commerce peut lire plusieurs bases de données ou instances Redis de manière asynchrone. Si vous utilisez Commerce sur l’infrastructure cloud, vous pouvez configurer les connexions secondaires en modifiant la variable MYSQL_USE_SLAVE_CONNECTION et REDIS_USE_SLAVE_CONNECTION dans la variable .magento.env.yaml fichier . Un seul noeud doit gérer le trafic de lecture-écriture. Par conséquent, la définition des variables sur true crée une connexion secondaire pour le trafic en lecture seule. Définissez les valeurs sur false pour supprimer tout tableau de connexion en lecture seule existant du env.php fichier .

Exemple de .magento.env.yaml fichier :

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