Práticas recomendadas de desempenho de check-out

A variável check-out no Adobe Commerce é um aspecto crítico da experiência da loja. Depende do modelo integrado carrinho e check-out recursos.

O desempenho é fundamental para manter uma boa experiência do usuário. Revise o resumo do benchmark de desempenho para saber mais sobre as expectativas de desempenho. Você pode otimizar o desempenho da finalização de compra configurando as seguintes opções para processamento de pedido com alto rendimento:

As opções de configuração Ordem assíncrona, Cálculo de total adiado e Verificação de inventário no carregamento do carrinho funcionam independentemente. Você pode usar todos os três recursos simultaneamente ou habilitar e desabilitar os recursos em qualquer combinação.

NOTE
Não use o código PHP personalizado para personalizar o carrinho incorporado e os recursos de check-out. Além de possíveis problemas de desempenho, o uso do código PHP personalizado pode resultar em atualizações complexas e desafios de manutenção. Esses problemas aumentam o custo total de propriedade. Se a personalização do carrinho e do checkout baseada em PHP for inevitável, use Adobe Commerce Marketplacesomente extensões aprovadas pelo. Todas as extensões do marketplace estão sujeitas a análise extensiva para verificar se eles atendem aos padrões de codificação e às práticas recomendadas da Adobe Commerce.

Posicionamento assíncrono de pedidos

A variável Ordem assíncrona permite a colocação assíncrona de pedidos, o que marca o pedido como receivedO coloca o pedido em uma fila e processa os pedidos da fila em uma base de primeiro a entrar, primeiro a sair. AsyncOrder é desabilitado por padrão.

Por exemplo, um cliente adiciona um produto ao carrinho de compras e seleciona Proceed to Checkout. Eles preenchem o Shipping Address formulário, selecione sua preferência Shipping Method, selecione um método de pagamento e faça o pedido. O carrinho de compras está desmarcado, a ordem é marcada como Received, mas a quantidade do Produto ainda não foi ajustada, nem um email de vendas foi enviado ao cliente. O pedido é recebido, mas os detalhes do pedido ainda não estão disponíveis porque o pedido não foi totalmente processado. Ele permanece na fila até que o placeOrderProcess O consumidor começa, verifica a ordem com o verificação de inventário (ativado por padrão) e atualiza a ordem da seguinte maneira:

  • Produto disponível—o status do pedido muda para Pending, a quantidade do produto é ajustada, um email com detalhes do pedido é enviado ao cliente e os detalhes do pedido bem-sucedido ficam disponíveis para visualização na Pedidos e Devoluções com opções acionáveis, como reordenar.
  • Produto sem estoque ou com pouca oferta—o status do pedido muda para Rejeitado, a quantidade do Produto não é ajustada, um email com detalhes do pedido sobre o problema é enviado ao cliente e os detalhes do pedido rejeitado ficam disponíveis no Pedidos e Devoluções sem opções acionáveis.

Use a interface de linha de comando para habilitar esses recursos ou edite o app/etc/env.php de acordo com os arquivos README correspondentes definidos no Guia de referência de módulo.

Para habilitar AsyncOrder:

Você pode habilitar a AsyncOrder usando a interface de linha de comando:

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

A variável set O comando grava o seguinte no app/etc/env.php arquivo:

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

Consulte AsyncOrder no Guia de referência de módulo.

Para desativar AsyncOrder:

WARNING
Antes de desabilitar o módulo AsyncOrder, você deve verificar se all os processos de pedido assíncrono estão concluídos.

Você pode desativar a AsyncOrder usando a interface de linha de comando:

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

A variável set O comando grava o seguinte no app/etc/env.php arquivo:

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

Compatibilidade com AsyncOrder

O AsyncOrder oferece suporte a um conjunto limitado de recursos do Adobe Commerce.

Categoria
Recurso suportado
Tipos de check-out
Check-out do OnePage
Check-out padrão
Cotação Negociável B2B
Métodos de pagamento
Cheque/Ordem de pagamento
Dinheiro na entrega
Braintree
PayPal PayFlow Pro
Métodos de envio
Todos os métodos de envio são compatíveis.

Os seguintes recursos são não suportado pelo AsyncOrder, mas continua a funcionar de forma síncrona:

  • Métodos de pagamento não incluídos na lista de recursos compatíveis
  • Check-out de vários endereços
  • Criação do pedido do administrador

Suporte à API da Web

Quando o módulo AsyncOrder está habilitado, os seguintes endpoints REST e mutações GraphQL são executados de forma assíncrona:

REST:

GraphQL:

INFO
O GraphQL não oferece suporte a pedidos de cotação negociáveis de forma assíncrona.

Excluindo métodos de pagamento

Os desenvolvedores podem excluir explicitamente determinados métodos de pagamento do posicionamento assíncrono do pedido adicionando-os ao Magento\AsyncOrder\Model\OrderManagement::paymentMethods matriz. Os pedidos que usam métodos de pagamento excluídos são processados de forma síncrona.

Ordem Assíncrona de Cotação Negociável

A variável Ordem Assíncrona de Cotação Negociável O módulo B2B permite salvar itens de pedido de forma assíncrona para o NegotiableQuote funcionalidade. Você deve ter AsyncOrder e NegotiableQuote ativadas.

Cálculo do Total Diferido

A variável Cálculo do Total Diferido O módulo otimiza o processo de check-out adiando o cálculo total até que ele seja solicitado para o carrinho de compras ou durante as etapas finais de check-out. Quando ativado, somente o subtotal é calculado conforme um cliente adiciona produtos ao carrinho de compras.

O Cálculo Total Diferido é desabilitado por padrão. Use a interface de linha de comando para habilitar esses recursos ou edite o app/etc/env.php de acordo com os arquivos README correspondentes definidos no Guia de referência de módulo.

Para habilitar DeferredTotalCalculation:

Você pode habilitar DeferredTotalCalculation usando a interface de linha de comando:

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

A variável set O comando grava o seguinte no app/etc/env.php arquivo:

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

Para desativar o DeferredTotalCalculation:

Você pode desabilitar DeferredTotalCalculation usando a interface de linha de comando:

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

A variável set O comando grava o seguinte no app/etc/env.php arquivo:

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

Consulte CálculoTotalDiferido no Guia de referência de módulo.

Imposto Fixo do Produto

Quando o Cálculo Total Diferido está habilitado, o Imposto Fixo do Produto (FPT) não é incluído no preço do produto e no subtotal do carrinho do minicarrinho depois de adicionar o produto ao carrinho de compras. O cálculo do FPT é adiado ao adicionar um produto ao minicarrinho. O FPT é exibido corretamente no carrinho de compras após prosseguir para a finalização.

Desabilitar verificação de estoque

A variável Ativar inventário ao carregar o carrinho a configuração global determina se deve ser executada uma verificação de inventário ao carregar um produto no carrinho. Desativar o processo de verificação de inventário melhora o desempenho de todas as etapas de check-out, principalmente ao lidar com produtos em massa no carrinho.

Quando desativada, a verificação de inventário não ocorre ao adicionar um produto ao carrinho. Se essa verificação de inventário for ignorada, alguns cenários sem estoque poderão gerar outros tipos de erros. Uma verificação de inventário sempre ocorre na etapa de colocação do pedido, mesmo quando desativado.

Habilitar Verificação De Inventário Na Carga Do Carrinho está ativado (definido como Sim) por padrão. Para desativar a verificação de inventário ao carregar o carrinho, defina Enable Inventory Check On Cart Load para No na interface do usuário do administrador Lojas > Configuração > Catálogo > Inventário > Opções de estoque seção. Consulte Configurar opções globais e Inventário do catálogo no Guia do usuário.

Balanceamento de carga

Você pode ajudar a balancear a carga em diferentes nós, habilitando conexões secundárias para o banco de dados MySQL e a instância Redis.

O Adobe Commerce pode ler vários bancos de dados ou instâncias Redis de forma assíncrona. Se estiver usando o Commerce na infraestrutura em nuvem, você poderá configurar as conexões secundárias editando o MYSQL_USE_SLAVE_CONNECTION e REDIS_USE_SLAVE_CONNECTION valores no .magento.env.yaml arquivo. Somente um nó precisa lidar com tráfego de leitura-gravação, portanto, definir as variáveis como true resulta na criação de uma conexão secundária para tráfego somente leitura. Defina os valores como false para remover qualquer matriz de conexão somente leitura existente do env.php arquivo.

Exemplo de .magento.env.yaml arquivo:

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