Prácticas recomendadas de rendimiento de Checkout
El pago y envío El proceso de en Adobe Commerce es un aspecto crítico de la experiencia de la tienda. Se basa en el integrado carrito y pago y envío funciones.
El rendimiento es clave para mantener una buena experiencia de usuario. Revise la resumen de evaluación de rendimiento para obtener más información sobre las expectativas de rendimiento. Puede optimizar el rendimiento del cierre de compra configurando las siguientes opciones para procesamiento de pedidos de alto rendimiento:
- AsyncOrder: permite procesar pedidos de forma asíncrona mediante una cola.
- Cálculo de total diferido: permite aplazar los cálculos de totales de pedidos hasta que comience el cierre de compra.
- Comprobación de inventario al cargar el carro: permite omitir la validación de inventario de los artículos del carro de compras.
- Equilibrio de carga: permite activar conexiones secundarias para la base de datos MySQL y la instancia de Redis.
Las opciones de configuración AsyncOrder, Cálculo de totales diferidos y Comprobación de inventario de carga de carro de compras funcionan de forma independiente. Puede utilizar las tres funciones simultáneamente o habilitar y deshabilitar las funciones en cualquier combinación.
Colocación de pedido asincrónica
El Orden asíncrono : este módulo habilita la colocación asincrónica de pedidos, que marca el pedido como received
, coloca el pedido en cola y procesa los pedidos de la cola según el primer ingreso y el primer envío. AsyncOrder está inhabilitado de forma predeterminada.
Por ejemplo, un cliente agrega un producto al carro de compras y selecciona Proceed to Checkout. Rellenan el Shipping Address formulario, seleccione su preferido Shipping Method, seleccione una forma de pago y realice el pedido. El carro de compras se borra, el pedido se marca como Received, pero la cantidad del producto aún no se ha ajustado, ni se ha enviado un correo electrónico de ventas al cliente. El pedido se recibe, pero los detalles del pedido aún no están disponibles porque el pedido no se ha procesado completamente. Permanece en la cola hasta que placeOrderProcess
El consumidor comienza, comprueba el pedido con la variable comprobación de inventario (activada de forma predeterminada) y actualiza el orden de la siguiente manera:
- Producto disponible: el estado del pedido cambia a Pendiente, se ajusta la cantidad del producto, se envía un correo electrónico con los detalles del pedido al cliente y los detalles del pedido correctos están disponibles para su visualización en la Pedidos y devoluciones lista con opciones procesables, como reordenar.
- Producto agotado o con bajo suministro: el estado del pedido cambia a Rechazado, la cantidad del producto no se ajusta, se envía un correo electrónico con detalles del pedido sobre el problema al cliente y los detalles del pedido rechazado están disponibles en la Pedidos y devoluciones lista sin opciones procesables.
Utilice la interfaz de la línea de comandos para habilitar estas funciones o editar la variable app/etc/env.php
archivo según los archivos README correspondientes definidos en la variable Guía de referencia del módulo.
Para habilitar AsyncOrder:
Puede habilitar AsyncOrder mediante la interfaz de línea de comandos:
bin/magento setup:config:set --checkout-async 1
El set
El comando escribe lo siguiente en app/etc/env.php
archivo:
...
'checkout' => [
'async' => 1
]
Consulte AsyncOrder en el Guía de referencia del módulo.
Para deshabilitar AsyncOrder:
Puede deshabilitar AsyncOrder mediante la interfaz de línea de comandos:
bin/magento setup:config:set --checkout-async 0
El set
El comando escribe lo siguiente en app/etc/env.php
archivo:
...
'checkout' => [
'async' => 0
]
Compatibilidad con AsyncOrder
AsyncOrder admite un conjunto limitado de características de Adobe Commerce.
Cierre de compra estándar
Cotización negociable B2B
Pago contra reembolso
Braintree
PayPal PayFlow Pro
Las siguientes funciones son no compatible con AsyncOrder, pero sigue funcionando sincrónicamente:
- Métodos de pago no incluidos en la lista de funciones admitidas
- Cierre de compra de varias direcciones
- Creación de órdenes de administración
Compatibilidad con API web
Cuando el módulo AsyncOrder está habilitado, los siguientes extremos REST y mutaciones de GraphQL se ejecutan de forma asíncrona:
REST:
GraphQL:
Exclusión de métodos de pago
Los desarrolladores pueden excluir explícitamente ciertos métodos de pago de la colocación asincrónica de pedidos añadiéndolos al Magento\AsyncOrder\Model\OrderManagement::paymentMethods
matriz. Los pedidos que utilizan métodos de pago excluidos se procesan sincrónicamente.
Pedido asíncrono de oferta negociable
El Pedido asíncrono de oferta negociable El módulo B2B permite guardar elementos de pedido de forma asíncrona para NegotiableQuote
funcionalidad. Debe tener habilitados AsyncOrder y NegotiableQuote.
Cálculo de total diferido
El Cálculo de total diferido El módulo optimiza el proceso de cierre de compra al aplazar el cálculo total hasta que se solicite para el carro de compras o durante los pasos finales de cierre de compra. Cuando está habilitado, solo el subtotal se calcula cuando un cliente agrega productos al carro de compras.
El cálculo total diferido es inhabilitado de forma predeterminada. Utilice la interfaz de la línea de comandos para habilitar estas funciones o editar la variable app/etc/env.php
archivo según los archivos README correspondientes definidos en la variable Guía de referencia del módulo.
Para habilitar DeferredTotalCalculation:
Puede habilitar DeferredTotalCalculation mediante la interfaz de línea de comandos:
bin/magento setup:config:set --deferred-total-calculating 1
El set
El comando escribe lo siguiente en app/etc/env.php
archivo:
...
'checkout' => [
'deferred_total_calculating' => 1
]
Para deshabilitar DeferredTotalCalculation:
Puede deshabilitar DeferredTotalCalculation mediante la interfaz de línea de comandos:
bin/magento setup:config:set --deferred-total-calculating 0
El set
El comando escribe lo siguiente en app/etc/env.php
archivo:
...
'checkout' => [
'deferred_total_calculating' => 0
]
Consulte DeferredTotalCalculating en el Guía de referencia del módulo.
Impuesto de producto fijo
Cuando el cálculo del total diferido está habilitado, el impuesto sobre el producto fijo (FPT) no se incluye en el precio del producto y en el subtotal del carro de compras después de agregar el producto al carro de compras. El cálculo de FTP se difiere al agregar un producto al minicarrito. El FTP se muestra correctamente en el carro de compras después de pasar al cierre de compra final.
Desactivar comprobación de inventario
El Habilitar inventario al cargar el carro la configuración global determina si se debe realizar una comprobación de inventario al cargar un producto en el carro de compras. La desactivación del proceso de comprobación de inventario mejora el rendimiento de todos los pasos de cierre de compra, especialmente cuando se tratan productos a granel en el carro de compras.
Cuando está desactivada, la comprobación de inventario no se produce al añadir un producto al carro de compras. Si se omite esta comprobación de inventario, algunos escenarios sin existencias podrían generar otros tipos de errores. Una comprobación de inventario siempre se produce en el paso de colocación del pedido, incluso cuando está desactivado.
Habilitar comprobación de inventario al cargar el carro está habilitado (establecido en Sí) de forma predeterminada. Para desactivar la comprobación de inventario al cargar el carro, establezca Enable Inventory Check On Cart Load hasta No
en la IU de administración Tiendas > Configuración > Catálogo > Inventario > Opciones de Stock sección. Consulte Configurar opciones globales y Inventario de catálogo en el Guía del usuario.
Equilibrio de carga
Puede ayudar a equilibrar la carga entre los distintos nodos activando conexiones secundarias para la base de datos MySQL y la instancia de Redis.
Adobe Commerce puede leer varias bases de datos o instancias de Redis de forma asincrónica. Si utiliza Commerce en la infraestructura de la nube, puede configurar las conexiones secundarias editando el MYSQL_USE_SLAVE_CONNECTION y REDIS_USE_SLAVE_CONNECTION valores en la .magento.env.yaml
archivo. Solo un nodo debe gestionar el tráfico de lectura-escritura, por lo que las variables se deben configurar como true
da como resultado la creación de una conexión secundaria para el tráfico de solo lectura. Establezca los valores en false
para quitar cualquier matriz de conexión de solo lectura existente de env.php
archivo.
Ejemplo de .magento.env.yaml
archivo:
stage:
deploy:
MYSQL_USE_SLAVE_CONNECTION: true
REDIS_USE_SLAVE_CONNECTION: true