Os usuários não podem adicionar o produto ao carrinho se nada estiver selecionado em Permitir países
Este artigo fornece um patch para o Adobe Commerce 2.4.4 conhecido com o problema do PHP 8.1 em que os usuários não podem adicionar produtos ao carrinho se a opção Permitir países não estiver selecionada.
Produtos e versões afetados
Adobe Commerce 2.4.4 com PHP 8.1
Problema
Os usuários não poderão adicionar produtos ao carrinho se a opção Permitir países não estiver selecionada.
Etapas a serem reproduzidas:
- Faça logon no Administrador do Commerce.
- Ir para Loja > Configuração > Geral > Opções de País
- Desmarque todas as opções no campo Permitir países.
- Clique em Salvar configuração para salvar a configuração.
- Acesse a loja e tente adicionar um produto ao carrinho.
Resultado Esperado:
Você pode adicionar um produto ao carrinho.
Resultado Real:
Não é possível adicionar um produto ao carrinho. Você recebe o seguinte erro de console:
Failed to load resource: the server responded with a status of 400 (Bad Request)
customer-data.js:87 Uncaught Error: [object Object]
at Object.<anonymous> (customer-data.js:87:23)
at fire (jquery.js:3500:50)
at Object.fireWith [as rejectWith] (jquery.js:3630:29)
at done (jquery.js:9798:30)
at XMLHttpRequest.<anonymous> (jquery.js:10057:37)
Causa
A configuração do Adobe Commerce recupera null
caso uma configuração de multisseleção não tenha itens selecionados. Esta configuração se for processada com sucesso nas versões do PHP anteriores à 8.1. Entretanto, no PHP 8.1 ele não funciona corretamente devido aos erros que são causados pelo "Deprecate transmitindo null para argumentos não-nulos de funções internas no PHP 8.1".
Soluções
Para resolver o problema, aplique o seguinte patch:
Como aplicar o patch
Consulte Como aplicar um patch de compositor fornecido pelo Adobe Commerce em nossa base de dados de conhecimento de suporte para obter instruções.
Links úteis
Aplique patches personalizados ao Adobe Commerce na infraestrutura na nuvem na documentação do desenvolvedor.