Práticas recomendadas de desempenho de check-out

O processo check-out no Adobe Commerce é um aspecto crítico da experiência da vitrine eletrônica. Ele depende dos recursos carrinho e check-out integrados.

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 do check-out configurando as seguintes opções para processamento de pedido de alta taxa de transferência:

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 check-out baseados em PHP for inevitável, use somente as extensões aprovadas pelo Adobe Commerce Marketplace. Todas as extensões de marketplace estão sujeitas a análise abrangente para verificar se atendem aos padrões de codificação e às práticas recomendadas da Adobe Commerce.

Posicionamento assíncrono de pedidos

O módulo Ordem assíncrona habilita o posicionamento assíncrono de pedidos, que marca a ordem como received, coloca a ordem em uma fila e processa pedidos da fila com base no primeiro a entrar, primeiro a sair. AsyncOrder está desabilitada por padrão.

Por exemplo, um cliente adiciona um produto ao carrinho de compras e seleciona Proceed to Checkout. Eles preenchem o formulário Shipping Address, selecionam sua Shipping Method preferencial, selecionam um método de pagamento e fazem o pedido. O carrinho de compras está limpo, o pedido está marcado como Received, mas a quantidade do produto ainda não está 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 consumidor placeOrderProcess comece, verifique o pedido com o recurso verificação de inventário (habilitado por padrão) e atualize o pedido da seguinte maneira:

  • Produto disponível—o status do pedido muda para Pendente, a quantidade do produto é ajustada, um email com os detalhes do pedido é enviado ao cliente e os detalhes do pedido bem-sucedido ficam disponíveis para exibição na lista 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 na lista Pedidos e Devoluções sem opções acionáveis.

Use a interface de linha de comando para habilitar esses recursos ou edite o arquivo 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

O comando set grava o seguinte no arquivo app/etc/env.php:

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

Consulte AsyncOrder no Guia de Referência de Módulo.

Para desabilitar AsyncOrder:

WARNING
Antes de desabilitar o módulo AsyncOrder, você deve verificar se todos os processos de ordem assíncrona foram concluídos.

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

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

O comando set grava o seguinte no arquivo app/etc/env.php:

...
   '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 de 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 não são suportados por AsyncOrder, mas continuam 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 de pedido adicionando-os à matriz Magento\AsyncOrder\Model\OrderManagement::paymentMethods. 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

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

Cálculo do Total Diferido

O módulo Cálculo Total Adiado 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 do check-out. Quando ativado, somente o subtotal é calculado conforme um cliente adiciona produtos ao carrinho de compras.

O Cálculo Total Adiado está desabilitado por padrão. Use a interface de linha de comando para habilitar esses recursos ou edite o arquivo 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

O comando set grava o seguinte no arquivo app/etc/env.php:

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

Para desabilitar DeferredTotalCalculation:

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

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

O comando set grava o seguinte no arquivo app/etc/env.php:

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

Consulte DeferredTotalCalculating 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 configuração global Habilitar inventário ao carregar o carrinho 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 posicionamento do pedido, mesmo quando desabilitada.

Habilitar a Verificação de Inventário na Carga do Carrinho está habilitado (definido como Sim) por padrão. Para desabilitar a verificação de estoque ao carregar o carrinho, defina Enable Inventory Check On Cart Load como No na seção Lojas da Interface do Administrador > Configuração > Catálogo > Inventário > Opções de Estoque. Consulte Configurar opções globais e Inventário de 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 você estiver usando o Commerce na infraestrutura em nuvem, poderá configurar as conexões secundárias editando os valores de MYSQL_USE_SLAVE_CONNECTION e REDIS_USE_SLAVE_CONNECTION no arquivo .magento.env.yaml. Somente um nó precisa manipular o tráfego de leitura e gravação. Portanto, definir as variáveis como true resultará na criação de uma conexão secundária para o tráfego somente leitura. Defina os valores como false para remover qualquer matriz de conexão somente leitura existente do arquivo env.php.

Exemplo do arquivo .magento.env.yaml:

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