Notas de versão do Adobe Commerce 2.4.3
O Adobe Commerce 2.4.3 apresenta aprimoramentos no desempenho e na segurança, além de melhorias significativas na plataforma. Os aprimoramentos de segurança incluem a expansão da cobertura do reCAPTCHA e a inclusão da limitação de taxa integrada. As dependências do Core Composer e de bibliotecas de terceiros foram atualizadas para as versões mais recentes compatíveis com o PHP 8.x.
Esta versão inclui mais de 370 novas correções para o código principal e 33 aprimoramentos de segurança. Todos os problemas conhecidos identificados nas notas de versão do Adobe Commerce 2.4.2 foram corrigidos nesta versão.
Consulte as notas de versão do Adobe Commerce 2.4.2-p2 para obter informações sobre o Adobe Commerce 2.4.2-p2.
Outras informações sobre a versão
Embora o código para esses recursos esteja incluído nas versões trimestrais , vários desses projetos (por exemplo, B2B, Page Builder e Progressive Web Application (PWA) Studio) também são lançados independentemente. As correções de erros para esses projetos estão documentadas nas informações de versão separadas e específicas do projeto, disponíveis na documentação de cada projeto.
Aplique MC-43048_set_rate_limits_2.4.3.patch para resolver o problema de limitação da taxa de API
Essa correção fornece uma solução para o problema em que as APIs da Web não podem processar solicitações que contenham mais de 20 itens em uma matriz. Esse problema afeta as implantações que executam o Magento Open Source 2.4.3, Adobe Commerce 2.4.3 ou 2.3.7-p1. A limitação de taxa integrada foi adicionada a essas versões para evitar ataques de DoS (negação de serviço) e o máximo padrão foi definido como 20. Este patch reverte o limite padrão para um valor maior. Se você suspeitar que seu armazenamento está enfrentando um ataque de DoS, a Adobe recomenda reduzir os limites de entrada padrão para um valor menor para restringir o número de recursos que podem ser solicitados. Consulte o artigo da Base de Dados de Conhecimento Web API incapaz de processar solicitações com mais de 20 itens na matriz.
Aplique AC-384_Fix_Incompatible_PHP_Method__2.4.3_ce.patch para resolver o erro fatal do PHP na atualização
O seguinte erro fatal pode ocorrer durante a atualização para o Adobe Commerce 2.4.3:
PHP Fatal error: Uncaught Error: Call to undefined function Magento\Framework\Filesystem\Directory\str_contains() in [...]/magento/vendor/magento/framework/Filesystem/Directory/DenyListPathValidator.php:74
Este erro resulta do uso da função str_contains
, que é uma função PHP 8.x. O Adobe Commerce 2.4.3 não suporta o PHP 8.x. Esta correção substitui esta função por uma função suportada no PHP 7.x. Consulte o artigo da Base de Dados de Conhecimento Adobe Commerce upgrade 2.4.3, 2.3.7-p1 PHP Fatal error Hotfix.
Aplique o AC-3022.patch
para continuar oferecendo a DHL como transportadora
A DHL apresentou o schema versão 6.2 e descontinuará o schema versão 6.0 em breve. Adobe Commerce 2.4.4 e versões anteriores que suportam a integração DHL suportam apenas a versão 6.0. Os comerciantes que implantarem essas versões devem aplicar o AC-3022.patch
o mais rápido possível para continuarem oferecendo a DHL como transportadora. Consulte o artigo da Base de conhecimento Aplicar um patch para continuar oferecendo a DHL como transportadora para obter informações sobre como baixar e instalar o patch.
Destaques
Procure os seguintes destaques nesta versão.
Aprimoramentos substanciais de segurança
Esta versão inclui 33 correções de segurança e melhorias de segurança na plataforma. Muitas dessas correções de segurança tiveram suporte para 2.4.2-p2 e 2.3.7-p1.
33 aprimoramentos de segurança que ajudam a fechar as vulnerabilidades de RCE (Remote Code Execution, execução remota de código) e XSS (Cross-Site Scripting, script entre sites)
Nenhum ataque confirmado relacionado a esses problemas ocorreu até o momento. No entanto, certas vulnerabilidades podem ser potencialmente exploradas para acessar informações do cliente ou assumir o controle de sessões de administrador. A maioria desses problemas exige que um invasor obtenha acesso ao Administrador primeiro. Como resultado, lembramos você de tomar todas as medidas necessárias para proteger seu Administrador, incluindo, mas não limitado a, esses esforços: incluir na lista de permissões de IP, autenticação de dois fatores, uso de uma VPN, uso de um local exclusivo em vez de /admin
e boa higiene de senha. Consulte o Boletim de Segurança de Adobe para ver uma discussão sobre esses problemas corrigidos.
Aprimoramentos adicionais de segurança
Os aprimoramentos de segurança desta versão melhoram a conformidade com as práticas recomendadas de segurança mais recentes, incluindo:
-
Um novo plug-in do Composer ajuda a evitar confusão de dependência e identifica pacotes mal-intencionados com os mesmos nomes que os pacotes internos no repositório de pacotes públicos. Consulte a publicação do blog Adobe Releases New Composer Plugin with 2.4.3 Release.
-
A limitação de taxa agora está incorporada às APIs para impedir ataques de negação de serviço (DoS). Agora, as APIs da Web impõem restrições sobre o tamanho ou o número de recursos (o máximo padrão é definido como 20 e pode ser configurado para um valor diferente com base na necessidade comercial) que podem ser solicitados por um cliente. Consulte Limitação de taxa para obter informações sobre como configurar essas restrições.
-
A cobertura do ReCAPTCHA foi estendida para incluir:
-
As APIs da Web que têm páginas HTML correspondentes são cobertas pelo ReCAPTCHA. (Isso exclui APIs da Web que são acessadas por integrações.) A cobertura do ReCAPTCHA protege os endpoints contra ataques de spam. Quando as APIs da Web são acessadas por um serviço de integração de terceiros que usa OAuth, o ReCAPTCHA é desabilitado.
-
A página da loja Fazer pedido e as APIs da Web relacionadas a pagamento. A proteção do ReCAPTCHA para essas páginas está desativada por padrão e pode ser ativada no Admin. Essa cobertura adiciona um mecanismo de força anti-brutalidade para proteger as lojas contra ataques de cartas.
-
Melhorias na infraestrutura
Esta versão inclui aprimoramentos que melhoram a qualidade da estrutura e as seguintes áreas funcionais:
-
Conta do cliente
-
Catálogo
-
CMS
-
OMS
-
Importar/Exportar
-
Promoções e direcionamento
-
Carrinho e check-out
-
B2B
-
Preparo e Visualização
PayPal Pay Later agora é suportado em implantações que incluem PayPal. Este recurso permite que os compradores paguem por uma solicitar em parcelas quinzenais em vez de pagar a quantia total no momento da compra.
Novo use_application_lock
modo de indexação. O modo use_application_lock
permite habilitar a reindexação usando variáveis de ambiente ou configurando o arquivo app/etc/env.php
. Não é mais necessário redefinir manualmente o indexador após uma falha com esse modo ativado. Consulte Usando o modo de bloqueio do aplicativo para processos de reindexação.
Aprimoramentos na plataforma
A versão 2.4.3 ainda não é compatível com o PHP 8.x, mas as atualizações de plataforma a seguir nos trazem uma compatibilidade futura com o PHP 8.x.
-
As dependências do Core Composer e bibliotecas de terceiros foram atualizadas para as versões mais recentes compatíveis com o PHP 8.x.
-
A biblioteca KnockoutJS foi atualizada para v3.5.1 (a versão mais recente).
-
A biblioteca TinyMCE v3 obsoleta foi removida. O módulo
Magento_Tinymce3Banner
e os testes MFTF relacionados ao TinyMCE v3.x foram removidos do Adobe Commerce. -
A versão 2.4.3 foi testada e confirmada como compatível com o Redis 6.0.12. (a versão 2.4.x permanece compatível com o Redis 5.x.)
-
As dependências da biblioteca Laminas foram atualizadas para versões compatíveis com o PHP 8.x. Algumas dependências redundantes foram removidas do arquivo
composer.json
. O Adobe Commerce 2.4.3 usa o Laminas 3.4.0.
Aprimoramentos de desempenho
Esta versão inclui aprimoramentos que diminuem o tempo de indexação dos indexadores de Preço do produto e Regra de catálogo. Os comerciantes agora podem excluir um site de um grupo de clientes ou catálogo compartilhado, o que reduz o número de registros para indexação e melhora os tempos de indexação.
Live Search
O Live Search da Adobe Sensei oferece uma experiência de pesquisa intuitiva, usando inteligência artificial e algoritmos de aprendizado de máquina para executar uma análise detalhada de dados de visitante agregados. Consulte as Notas de Versão do Live Search.
GraphQL
Esta versão inclui o suporte à GraphQL para os seguintes recursos:
-
Catálogos compartilhados
-
Listas de desejos. A mutação addWishlistItemsToCart move itens da lista de desejos especificada para o carrinho do cliente.
-
Registros de presentes. As tarefas abrangidas incluem:
-
Use a consulta de domRegistry para retornar o conteúdo dos registros de presentes do cliente.
-
Mover todos os itens do carrinho para o registro de presentes.
-
Adicionar, atualizar ou remover inscritos de um registro de presente.
-
Compartilhe um registro de presentes com convidados.
-
-
Aspas negociáveis. Consulte as consultas
negotiableQuote
enegotiableQuotes
.As novas mutações incluem:
-
Rotas compartilhadas. A consulta de rota e a RoutableInterface oferecem suporte a solicitações de roteamento em páginas de produto, categoria e CMS. A consulta
urlResolver
foi substituída e sua funcionalidade foi substituída pela consultaroute
.
Consulte o Guia do Desenvolvedor do GraphQL para obter detalhes sobre esses aprimoramentos.
B2B
Versão 2.4.3 apresenta B2B v1.3.2. Esta versão inclui várias correções de bugs. Consulte notas de versão de B2B.
Page Builder
O Page Builder agora está disponível como uma extensão agrupada no Magento Open Source. Agora, ela é a ferramenta de edição de conteúdo padrão para o Adobe Commerce 2.4.3 e Magento Open Source 2.4.3. Ele pode substituir o editor WYSIWG por qualquer módulo de terceiros.
O Page Builder substitui o editor TinyMCE nas seguintes áreas de administração:
- Página do CMS
- Bloco do CMS
- Descrição da categoria
- Descrição do produto
Todo o conteúdo criado no TinyMCE foi migrado para o Page Builder como HTML.
PWA Studio
Para obter informações sobre aprimoramentos e correções de erros, consulte versões de PWA Studio. Consulte compatibilidade para obter uma lista de versões do PWA Studio e suas versões compatíveis.
Ferramenta de compatibilidade de atualização
O escopo da Ferramenta de Compatibilidade de Atualização foi expandido com base no feedback da comunidade. Junte-se ao nosso canal de Slack #upgrade-compatibility-tool para obter suporte da equipe de produtos do Adobe e da comunidade, bem como para ajudar a orientar a direção futura da ferramenta.
Atualizações de serviços gerenciados na nuvem
Esta versão inclui aprimoramentos em nosso suporte para o Amazon Simple Storage Service (AWS S3) e serviços gerenciados em nuvem Amazon Aurora. Ele fornece suporte certificado para AWS ElastiCache, AWS Elasticsearch e AWS Managed Queues (Rabbit MQ). (Testamos a funcionalidade, o desempenho e a integração desses serviços com o Adobe Commerce.)
Integração do Adobe Stock
Esta versão inclui a Integração do Adobe Stock v2.1.1.
Extensões desenvolvidas pelo fornecedor
Consulte os seguintes tópicos para obter atualizações sobre recursos e alterações desta versão:
-
Pagamento do Amazon. O Amazon Pay foi descontinuado e será removido em uma versão 2.4.x posterior. A versão 2.4.3 e superior conterá apenas atualizações para compatibilidade e correções para bugs principais.
Problemas corrigidos
Corrigimos centenas de problemas no código principal 2.4.3.
Instalação, atualização, implantação
- O comando
bin/magento setup:db:status
agora retorna uma mensagem indicando que tudo está atualizado após uma atualização bem-sucedida. Anteriormente, o aplicativo exibia este erro:Declarative Schema is not up to date
.
- Os valores de configuração agora são preservados no recarregamento de formulário quando a criação de um novo produto configurável falha. Anteriormente, os valores eram perdidos durante o recarregamento do formulário e o aplicativo exibia este erro:
The value specified in the URL Key field would generate a URL that already exists
. GitHub-32102
- O aplicativo não lança mais uma exceção quando você executa
bin/magento setup:upgrade
para atualizar de uma implantação de Magento Open Source com Redis para Adobe Commerce.
- As regras de preço do carrinho criadas anteriormente agora são exibidas na página do painel Preparo de conteúdo depois que uma implantação é atualizada do Magento Open Source para o Adobe Commerce.
- As implantações executadas no Cluster Galera agora oferecem suporte a mais clientes. GitHub-31038
- Agora os administradores podem fazer logon em uma implantação quando o aplicativo tiver sido instalado com a opção
—use-rewrites=0
ou comweb/seo/use_rewrites
definido como 0 emcore_config_data_table
. GitHub-32100
- Carregamento
sortOrder
atualizado paraAsyncCssPlugin
. O aplicativo agora carregaAsyncCssPlugin
antes deJsFooterPlugin
. GitHub-30882
Magento\Config\Model\Config\PathValidator
agora verifica o caminho de exibição para determinar se um elemento existe e, se ele tiver um caminho de configuração, usa o caminhoconfig.xml
para validação. GitHub-27678
- A compilação de menos arquivos com o Grunt ou por compilação do lado do servidor agora produz os mesmos resultados. Anteriormente.
.abs- styles
, que estende outros.abs- styles
em_extends.less
, não foram enviados corretamente quando compilados com Grunt. Isso resultou em diferenças entre implantações de produção e desenvolvimento. GitHub-7231
AdminGWS
- O Admin GWS agora usa valores
int
para a condição SQLwebsite_id
em coleções de administradores para administradores com permissões personalizadas.
Integração do Adobe Stock
- O aplicativo agora exibe uma mensagem informativa e um link para a página Admin Lojas > Configuração > Avançado > Sistema na página Procurar Adobe Stock quando a Chave da API (ID do Cliente) e o Segredo do Cliente não estão definidos. Anteriormente, o aplicativo exibia este erro:
We couldn't find any records
e nenhum link.
Infraestrutura
- Administradores com acesso restrito (por exemplo, que têm acesso atribuído somente a um site) não podem mais editar categorias definidas como Escopo globais.
- O relatório sistema gerado (Relatório do sistema > Suporte > Sistema) é renderizado corretamente. Anteriormente, o relatório conteúdo estava desalinhado.
- O aplicativo agora desativa validação no campo Preço conforme esperado quando a configuração de preço dinâmico é ativada durante pacote criação do produto. Anteriormente, o aplicativo ocorreu um erro de validação quando você removeu um valor do campo Preço quando a configuração de preço dinâmica estava ativada. GitHub-26214
- Redirecionamentos infinitos não ocorrem mais quando o Administrador URL difere do site padrão URL em implantações nas quais os aplicativo estão configurados para serem acessíveis a partir de dois URLs.
Produtos do pacote
- Agora você pode usar a mutação
addProductsToCart
para adicionar um produto de pacote com mais de uma opção de caixa de seleção ao carrinho.
- A indexação de preços de produtos da pacote agora é executada usando tabelas temporárias, o que evita bloquear tabelas de bancos de dados. Anteriormente, o aplicativo usava tabelas físicas, o que resultava em tabelas bloqueadas.
- Um preço de pacote item pode ser definido como 0,00. Anteriormente, quando retornava à página de edição após definir o preço para 0,00, o preço retornava ao seu valor padrão. GitHub-32383
- Os detalhes do pedido dos pedidos que contêm pacote produtos agora mostram o preço correto para os produtos do pacote se o preço foi alterado antes da solicitar ser colocada.
- O status do estoque do produto do pacote agora é atualizado com base no status de estoque de seus produtos secundários. Anteriormente, pacote produtos eram mostrados como em estoque quando uma opção era removida do produto, e o produto pacote tinha duas opções com o mesmo SKU.
- Um administrador agora pode alterar o valor de um pacote atributo do
Shipment Type
produto depois que ele foi movido para um atributo diferente grupo. Anteriormente, esse atributo sempre era salvo com umTogether
valor se fosse movido para um atributo grupo diferente dos grupo padrão no conjunto de atributos.
- A mutação do GraphQL
setGuestEmailOnCart
agora atualiza corretamente o e-mail dos hóspedes. Anteriormente, as tabelas de endereços de aspas e aspas não eram atualizadas.
- Adicionar, remover ou atualizar um produto filho para um produto pacote por meio de chamadas de API REST agora aciona a reindexação conforme esperado. Anteriormente, essas ações não disparavam a reindexação e, como resultado, o pacote produto não alterava seu status de estoque até que a reindexação manual fosse realizada.
- O aplicativo agora exibe a faixa de preços correta para produtos de pacote com preços de nível. GitHub-30284
- A aplicativo agora exibe o mesmo preço total esperado na carrinho de compras página e na etapa de envio da fluxo de Trabalho de check-out após a mudança do preço de uma opção de pacote.
- Agora é possível configurar um produto agrupado com êxito acessando-o de um carrinho de compras do cliente. Anteriormente, a página Configurar produto nunca era completamente carregada e você não podia salvar suas configurações.
- Os comerciantes agora podem atribuir um preço exclusivo para um produto combinado em cada exibição de loja de uma implantação de várias lojas. Os preços específicos do site são salvos na tabela
catalog_product_bundle_selection_price
. Anteriormente, o aplicativo não baseava o preço de um produto de pacote no escopo do site, mesmo quando Lojas > Configuração > Catálogo > Catálogo > Preço > Escopo do Preço de Catálogo estava definido comoWebsite
. Nenhum preço específico de site foi salvo emcatalog_product_bundle_selection_price
. GitHub-12584
- As faturas de produtos agrupados agora exibem a quantidade correta dos produtos simples associados quando a Precificação Dinâmica está desabilitada. Anteriormente, produtos simples associados ao pacote produto tinham a quantidade do produto principal, não o produto pacote). GitHub-30802
- A
updateProductsInWishlist
mutação agora atualiza com sucesso itens que pertencem a um produto pacote em um lista de desejo. Anteriormente, em vez de atualizar o item de lista de desejo, essa mutação excluiu o item e criou um novo, que alterou a ID do item.
- Agora é possível definir os
required_options
atributos ehas_options
pacote como esperado ao criar ou atualizar um produto de pacote usando oPOST /V1/product/:sku
endpoint. Anteriormente, esses atributos personalizados eram definidos como 0 (zero), apesar dos esforços para defini-lo como 1 (um).
- Os dados do produto de pacote que estavam ausentes anteriormente agora estão incluídos no processo de preparação. Isso soluciona inconsistências no comportamento do produto quando os compradores compram um produto empacotado da página de listagem de produtos em vez de adicioná-lo diretamente de uma página de produto.
Cache
- O arquivo
varnish6.vcl
foi atualizado para ignorar o armazenamento em cache da página do cliente.
CAPTCHA
- Agora, o CAPTCHA valida corretamente os dados fornecidos por um comprador, e os campos CAPTCHA agora são exibidos como esperado após as várias tentativas malsucedidas de um comprador para fazer check-out com o PayPal Payflow Pro.
- A validação do CAPTCHA não falha mais aleatoriamente na página de pagamento do fluxo de trabalho de finalização.
- O aplicativo agora exibe campos CAPTCHA como esperado depois que você excede o número de tentativas de conclusão com falha. Anteriormente, embora o aplicativo tenha solicitado que você tentasse o desafio CAPTCHA novamente, ele não exibia os campos CAPTCHA.
- O CAPTCHA agora funciona conforme esperado na página de finalização. Anteriormente, depois que um comprador respondia corretamente a um desafio de CAPTCHA, o carregador na página de check-out nunca era concluído e o aplicativo exibia este erro:
captchaData[formId] is undefined
. (Esse erro ocorria somente quando o comprador usava o mesmo navegador do qual acessava anteriormente uma implantação que executava o 2.3.5-p1.)
_.isEmpty()
verificações no arquivodefaultCaptcha.js
foram concluídas com êxito. Anteriormente, essas verificações não eram concluídas e, como resultado, a página de check-out não era carregada após a atualização. GitHub-31641
Carrinho e check-out
- O aplicativo agora leva em conta os localizadores decimais específicos da localidade ao converter e atualizar a quantidade do produto no carrinho.
- Os pedidos não omitem mais um nome de cliente fornecido com um endereço de entrega. Anteriormente, os nomes eram omitidos porque o sinalizador
same_as_billing
não foi salvo no banco de dados.
- Os links para registros de presentes agora persistem conforme esperado ao editar um produto no carrinho de compras. Anteriormente, esses links desapareciam ao clicar no botão Atualizar carrinho.
- Todas as mensagens da fila para o consumidor
quoteItemCleaner
agora mudam seu status paracomplete
, conforme esperado após a exclusão de vários produtos. Anteriormente, apenas uma mensagem para este consumidor alterava seu status paracomplete
, e o restante alterava o status parain progress
.
- O aplicativo agora exibe a mensagem de validação dos Termos e Condições no bloco relevante somente quando um comprador clica no botão Fazer pedido. Anteriormente, o aplicativo exibia esta mensagem no bloco Aplicar Código de Desconto sempre que um comprador alterava o método de pagamento no fluxo de trabalho de check-out:
The order wasn't placed. First, agree to the terms and conditions, then try placing your order again
.
- Agora você é redirecionado para a página de check-out conforme esperado depois de adicionar um produto incluído ao carrinho por meio de uma visualização de Atualização da programação e clicar no carrinho. GitHub-447
- O aplicativo agora descarta as alterações no formulário de endereço de cobrança na etapa de pagamento do check-out se o comprador não clicar no botão Atualizar e retornar à etapa de envio.
- O aplicativo agora exibe uma mensagem de erro informativa e não atualiza a quantidade do produto quando um comprador adiciona uma quantidade de produto inválida e clica no botão Atualizar itens e quantidades na página Gerenciar carrinho de compras. Anteriormente, o aplicativo atualizava a quantidade do produto e não exibia uma mensagem de erro. GitHub-459
- Os produtos com uma opção personalizável
(File)
agora incluem links ativos conforme esperado durante todo o processo de finalização de várias remessas. Anteriormente, esse link estava ausente. GitHub-31095
- O carrinho de compras de Administrador agora exibe os preços do produto nas moedas corretas das lojas que oferecem suporte a várias moedas. Anteriormente, os preços eram convertidos para a moeda especificada mais de uma vez — primeiro, quando os produtos eram adicionados ao carrinho pela loja e depois novamente quando o pedido era renderizado posteriormente no Administrador.
- O aplicativo agora esvazia o carrinho de compras conforme esperado depois que um administrador conclui um pedido do administrador que foi criado por um comprador na loja. Anteriormente, quando o cliente fazia logon novamente depois que o administrador concluísse o pedido, o carrinho da loja ainda continha o conteúdo do pedido. GitHub-30262
- Os compradores agora podem adicionar um produto ao carrinho cujo preço mínimo anunciado (MAP) excede o preço normal do produto.
- Os compradores agora podem alterar com êxito seu endereço de cobrança do fluxo de trabalho de check-out ao fazer check-out com vários endereços.
- Todas as transações de pagamento pagas criadas por convidados agora são salvas no banco de dados e ficam visíveis no Administrador conforme esperado. Anteriormente, apenas um pequeno subconjunto de pedidos simultâneos era salvo no banco de dados e a maioria dos pedidos era perdida devido a tempos limite resultantes de bloqueios do banco de dados. GitHub-25862
- O aplicativo agora exibe corretamente mensagens de boas-vindas em linha que contêm caracteres especiais quando um convidado coloca um produto no minicarrinho. Anteriormente, o aplicativo não adicionava o produto ao minicarrinho nem exibia a mensagem de boas-vindas. GitHub-32250
- A página de remessa do fluxo de trabalho de check-out agora é carregada com êxito quando o delivery na loja está ativado. Anteriormente, o aplicativo exibia um erro de JavaScript e a página de check-out de envio não era renderizada completamente.
- Adição do argumento
itemResolvers
ao arquivo de catálogodi.xml
. Como resultado, o check-out não será mais interrompido se os módulos de produto configuráveis e agrupados estiverem desativados. GitHub-30860
- O aplicativo agora exibe os botões de opção na seção Informações de Pagamento e Envio, conforme esperado durante o fluxo de trabalho de reordenação do Administrador. GitHub-30257
- O aplicativo agora aplica corretamente as regras de preço do carrinho com um desconto fixo no nível do carrinho quando o carrinho contém um produto incluído com várias opções. Anteriormente, a regra de preço do carrinho não era completamente aplicada ao pedido. GitHub-30952
- O botão Adicionar ao carrinho na exibição de lista de categorias agora funciona conforme esperado. GitHub-32232
- Agora você pode usar o POST
/V1/carts/mine/items
para adicionar uma quantidade personalizada de produtos agrupados a um carrinho. GitHub-26909
- O aplicativo não preenche mais a área do endereço de cobrança do fluxo de trabalho de finalização com o endereço de entrega. Anteriormente, quando o campo Estado/Província do endereço de cobrança estava vazio e os endereços de remessa e cobrança eram diferentes, o aplicativo preenchia o campo endereço de cobrança Estado/Província com informações do endereço de remessa. GitHub-31608
Catálogo
- A atualização em massa dos atributos Habilitar incrementos de quantidade e incrementos de quantidade agora funciona conforme esperado. GitHub-29544
- Agora você pode duplicar com êxito um catálogo compartilhado que contém SKUs somente numéricas. Anteriormente, o aplicativo exibia um erro quando você tentava duplicar um catálogo compartilhado porque a classe
\Magento\Catalog\Model\ProductIdLocator
não funcionava corretamente com SKUs somente numéricas.
- O aplicativo não lança mais um erro do JavaScript depois que você habilita a sincronização de produtos recentes com o administrador. Anteriormente, o aplicativo exibia este erro do JavaScript:
Cannot read property 'status' of undefined
.
- As atualizações do layout de tema personalizado agora são aplicadas conforme esperado. Anteriormente, as atualizações do layout de tema personalizado eram ignoradas.
- O cache de categorias do produto agora é limpo como esperado por
cron
durante a execução deindexer_update_all_views
. Anteriormente, as contagens de produtos na página Categoria após a reindexação estavam incorretas.
- Os valores de atributo agora permanecem inalterados quando um atributo não é especificado em uma solicitação da API REST de atualização de produto para uma exibição de loja. Anteriormente, se um atributo não fosse especificado, o aplicativo redefinia o valor do atributo para seu valor de escopo padrão.
- A grade de produtos do Administrador (Admin Catálogo > Produtos) agora exibe a contagem de produtos correta quando os produtos são filtrados pela SKU.
- O aplicativo agora exibe o status preciso do estoque quando um produto é adicionado a uma página do CMS, quando as Permissões de categoria são ativadas, e impede a exibição do preço para o grupo do cliente especificado. Anteriormente, todos os produtos eram mostrados como indisponíveis, independentemente do status real do estoque.
- O campo de entrada de preço de bloco de preço do Grupo de Clientes do Advanced Pricing agora tem uma largura mínima de cinco dígitos. Anteriormente, apenas dois símbolos estavam visíveis nesse campo em exibições de baixa resolução.
- O aplicativo agora exclui com êxito uma imagem de mídia do produto após excluir um produto. Anteriormente, a imagem de mídia do produto permanecia na pasta após a exclusão bem-sucedida do produto.
- O layout da página agora é atualizado conforme esperado quando você cria ou edita um produto no Administrador e, em seguida, cria uma Atualização de design de cronograma. GitHub-32007
- Um atributo de produto personalizado com valor zero agora pode ser salvo com êxito como em branco. Anteriormente, o aplicativo não atualizava esse valor para em branco.
- Os arquivos de atualização de layout de categoria personalizada agora se aplicam aos produtos conforme esperado. Anteriormente, o identificador de arquivo de atualização (
catalog_category_view_*
) não correspondia ao identificador de produto. GitHub-27285
- A classificação foi desabilitada para a coluna Imposto Fixo do Produto (FPT) da lista de produtos do Administrador. Anteriormente, a página Produtos não podia ser recarregada após a coluna FPT ter sido classificada.
- A visualização do widget Produtos do Page Builder agora funciona conforme esperado em uma implantação de vários sites quando os produtos correspondentes têm um preço diferente em cada site.
- A classificação por posição na pesquisa de produtos usando o GET
/rest/V1/products/?searchCriteria[filterGroups]
agora funciona conforme esperado. Anteriormente, a coleção de produtos não tinha um valor de campoposition
para classificação. GitHub-31591
- Os usuários administradores agora podem ver espaços duplos nos campos Nome e SKU na grade de produtos. Anteriormente, o aplicativo recolhia vários espaços em um único espaço.
- Agora os produtos são exibidos como indisponíveis na loja quando a quantidade comercializável no Administrador é 0. Anteriormente, esses produtos eram listados como em estoque na loja, e o aplicativo exibia um botão Adicionar ao carrinho ativo. GitHub-31117
- Os administradores agora podem adicionar produtos com opções personalizáveis
(File)
à grade Itens solicitados na seção Carrinho de compras (coluna Atividades do cliente) da página Cliente administrador. Anteriormente, o aplicativo não adicionava o item à lista porque o valor não estava formatado corretamente antes de ser inserido em\Magento\Catalog\Model\Product\Type\AbstractType::_prepareOptions
.
- O aplicativo não solicita mais que os compradores selecionem uma opção de produto para um produto empacotado que tenha apenas uma opção.
- O aplicativo agora exibe todas as subcategorias em atualizações de layout (categorias âncora e não âncora) durante a criação de um novo widget.
- A consulta
product
não substitui mais os valores padrão de todas as exibições de loja em uma implantação de várias lojas quando um nome de produto é atualizado apenas para uma exibição de loja. GitHub-31083
- O Adobe Commerce atualiza a contagem total de páginas conforme esperado ao alterar o valor por página da lista Produtos relacionados ao administrador, Vendas adicionais e Vendas cruzadas. GitHub-31059
- Agora os administradores podem adicionar produtos com duas ou mais opções personalizáveis
(File)
a um pedido por SKU.
- O aplicativo não lança mais um erro quando um administrador com permissões restritas adiciona um widget de Produto a uma página do CMS no Administrador. Anteriormente, o aplicativo exibia este erro quando o administrador clicava no botão Salvar:
We are sorry, an error has occurred while generating the content
.
- As páginas de detalhes do produto agora abrem com a opção de data personalizável preenchida com a data do pedido anterior quando o Usar calendário do JavaScript está habilitado. O resolvedor de valor de opção de data personalizada agora retorna a um formato alternativo se o valor não for formatado com base na configuração atual. Anteriormente, o valor da opção de data personalizada estava vazio.
- O aplicativo agora exibe apenas um erro no carrinho quando o produto está indisponível. Anteriormente, o aplicativo exibia mensagens redundantes. GitHub-27469
- Os administradores agora podem adicionar um produto com uma opção personalizável
(File)
a um pedido por SKU. GitHub-30285
- Agora você pode salvar um produto e um preço sem especificar
type_id
. GitHub-13639
- Os produtos de grupo agora estão disponíveis na loja conforme esperado quando uma solicitação REST
PUT /V1/products/:sku/links
é usada para associar um novo produto filho a um novo produto de grupo. Anteriormente, os produtos não eram indexados corretamente após a execução debin/magento cron:run
.
- Você não pode mais criar um produto com um valor de SKU
NULL
. Anteriormente, era possível criar um produto sem um valor de SKU por meio de um importador personalizado ou diretamente no banco de dados, mas quando você tentava editá-lo no Admin, o aplicativo exibia um erro. GitHub-27411, GitHub-32525
- Adicionar as opções personalizadas necessárias a um produto simples não o remove dos produtos compostos principais sem aviso prévio. O aplicativo agora exibe um aviso informativo e não salva o produto. Anteriormente, o aplicativo salvava as alterações no produto e não exibia nenhum aviso. GitHub-30492
Regra de catálogo
- A consulta
products
agora retorna os valores atuais quando uma regra de preço de catálogo se aplica a um item. GitHub-26738
- As tabelas temporárias que começam com
catalogrule_product__temp
agora são excluídas como esperado quando a reindexação falha após uma regra de carrinho ou catálogo expirar, estar desabilitada ou se tornar inativa. GitHub-22273
- Os fusos horários agora são aplicados da mesma forma em
\Magento\CatalogRule\Model\Indexer\IndexBuilder::reindexById
e\Magento\CatalogRule\Model\Indexer\IndexBuilder::reindexByIds
. GitHub-29549
Conteúdo do CMS
- Imagens grandes agora são redimensionadas conforme esperado durante o carregamento quando a configuração Habilitar Redimensionamento de Front-end está habilitada.
- Correção do tratamento de erros para o controlador de salvamento de página do CMS. Anteriormente, quando um objeto
Error
era lançado no eventocms_page_prepare_save
, o aplicativo passava esse objeto para a funçãoaddExceptionMessage
, interrompendo seu contrato porque essa função esperava umException
. Isso foi resolvido adicionando uma mensagem de erro usando a funçãoaddErrorMessage
. GitHub-30149
- Agora você pode atribuir uma nova página a vários nós a partir da guia Hierarquia da página de edição do CMS. Anteriormente, uma violação de restrição exclusiva ocorria ao tentar atribuir a página a um nó. GitHub-363
Produtos configuráveis
- O aplicativo não duplica mais as miniaturas de produtos na galeria de imagens de um produto ao clicar nas opções configuráveis de um produto.
- O pop-up de configuração que o aplicativo exibe ao editar um produto configurável de uma lista de desejos agora é fechado conforme esperado quando você clica no botão OK.
- O aplicativo agora gera faturas corretamente para pedidos que contêm apenas um produto configurável. GitHub-31143
- Os compradores agora podem adicionar produtos configuráveis ao carrinho a partir de uma visualização de loja não padrão. Anteriormente, quando o comprador em um modo de exibição de loja não padrão tentava adicionar um produto configurável, o aplicativo exibia este erro:
Could not add item to cart. Please check required options and try again
. GitHub-31660
Política de segurança de conteúdo (CSP)
- A Política de Segurança de Conteúdo agora oferece suporte ao carregamento de imagens e fontes codificadas em base64 por meio de
data: scheme
.
cron
- As consultas de limpeza do Cron foram refatoradas para reduzir ou eliminar os seguintes problemas de desempenho:
cron
trabalhos permanecem travados em um estado pendente, consultas MySQL cada vez mais lentas e um aumento no uso da CPU. GitHub-26507
cronjobs
com o statusrunning
há mais de 24 horas agora são automaticamente alteradas para o statuserror
. Como resultado, uma nova instância desse trabalho pode ser executada novamente e você não precisa alterar manualmente o status do trabalho quando um trabalho permanecer incorretamente definido para o statusrunning
. Anteriormente, se umcronjob
estivesse preso no statusrunning
, o aplicativo impedia que novas instâncias do mesmo trabalho fossem iniciadas e você tinha que alterar manualmente o status do trabalho. GitHub-8933
cron
trabalhos foram concluídos como esperado e não geram mais este erro de serialização:[Magento\Framework\DB\Adapter\DeadlockException]SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction, query was: DELETE FROM cron_schedule WHERE (status = 'missed') AND (job_code in ('indexer_reindex_all_invalid', 'indexer_update_all_views', 'indexer_clean_all_changelogs')) AND (created_at < '2018-09-28 18:32:28')
. GitHub-18409
indexer_update_all_views
trabalhos cron agora são executados como esperado após uma falha anterior. A falha de execução é marcada como uma falha na e acron_schedule schedule
execução subsequente não falha automaticamente. Anteriormente, acron_schedule
tabela preenchida com trabalhos pendentes eindexer_update_all_views
o trabalho cron não era executado. GitHub-23054
cron
bloqueios não ocorrem mais como resultado decron
tentar definir um bloqueio em grandes implantações onde grupos se sobrepuseram. GitHub-8933
cron
bloqueios não ocorrem mais na tabelacron_schedule
após apenas alguns trabalhoscron
serem executados. GitHub-22438
Atributos personalizados do cliente
- O campo Estado no catálogo de endereços da Conta do cliente da loja agora é carregado como e permanece um elemento de página suspensa. A botão de Envio está desativada até que todos os elementos página tenham sido completamente carregados. Anteriormente, o aplicativo recarregava esse campo como uma caixa de texto antes de renderizar o campo como um elemento suspenso, e os compradores podiam inserir e salvar valores no campo de texto, o que mais tarde causou um erro durante o check-out.
- Agora, o aplicativo exibe corretamente os atributos de endereço do cliente personalizados nas páginas de solicitar de armazenamento e de administração. Anteriormente, a opção selecionada do atributo suspenso estava faltando na seção de informações do Endereço e o valor do atributo de entrada continha o código do atributo. GitHub-508
- O aplicativo não gera mais um erro ao salvar um atributo de endereço do cliente com um anexo de arquivo no campo endereço do Cliente administrador ao fazer upload de arquivos. Isso ocorreu devido à falta de uma declaração de retorno na ação do controlador. Anteriormente, o aplicativo exibia este erro:
Something went wrong while saving the file
.
- GET As chamadas de API do carrinho de REST agora retornam valores de atributo personalizados corretos para endereços de faturamento e envio. Anteriormente, os atributos de endereço personalizados eram exibidos incorretamente na página de detalhes do pedido na página inicial da loja Minha conta e no Administrador.
- O aplicativo agora manipula com êxito arquivos que contêm atributos de endereço de cliente com tipo de entrada
file (attachment)
. Anteriormente, o aplicativo exibia este erro durante o carregamento do arquivo anexado:Something went wrong while saving the file
.
Cliente
- O email de crédito da loja agora leva em conta o escopo selecionado e é enviado do endereço de email correto.
- A filtragem por data de criação da conta agora produz resultados que estão em conformidade com as configurações de fuso horário definidas e que capturam todas as contas criadas relevantes.
- O filtro de grade do cliente agora usa uma opção de site correta para um usuário restrito se os dados tiverem sido armazenados em cache anteriormente. Anteriormente, o filtro de grade do cliente recuperava os parâmetros do site do cache e incluía dados incorretos para usuários restritos.
- O aplicativo não lança mais uma exceção na página Clientes administradores quando um site é excluído em uma implantação de vários sites. Anteriormente, quando um administrador tentou acessar a lista abrangente de clientes, o aplicativo não exibia todos os clientes e exibia este erro:
The website with id 2 that was requested wasn't found. Verify the website and try again
.
- Os administradores com permissão agora podem reatribuir clientes a sites diferentes a partir da guia Informações da conta do cliente.
- Agora é possível carregar um arquivo com êxito ao criar um atributo de endereço do cliente com um tipo de entrada de
(File)
. Anteriormente, quando você tentava carregar e salvar um arquivo, o aplicativo exibia este erro:Something went wrong while saving the file
.
Segmento do cliente
- O aplicativo agora exibe produtos relacionados com base em segmentos de clientes na loja, conforme esperado. Anteriormente, o aplicativo não exibia essa seção quando uma regra de produtos relacionados era criada para segmentos de clientes específicos.
- Os blocos dinâmicos agora são exibidos para clientes registrados em seus carrinhos de compras quando o segmento de cliente correspondente é aplicado tanto para convidados quanto para clientes registrados. Anteriormente, o aplicativo exibia o bloco somente para convidados.
- Os segmentos de clientes agora são atualizados automaticamente depois que um pedido é feito pelo administrador. Anteriormente, após criar um pedido de Administrador, o usuário Administrador tinha que atualizar manualmente os dados de segmento relacionados navegando até os segmentos de clientes relacionados e clicando no botão Atualizar dados de segmento.
- O aplicativo agora exibe blocos dinâmicos no carrinho de compras para todos os clientes nos segmentos de clientes relevantes. Anteriormente, os convidados não viam um bloqueio mesmo quando o segmento do cliente incluía convidados e clientes registrados.
- Problemas de desempenho do banco de dados que resultam de regras de segmentação do cliente usando a condição
Product was Ordered
foram resolvidos.
- Um observador de eventos de segmento do cliente para a API REST/SOAP foi adicionado. Como resultado, os segmentos de clientes agora são atualizados automaticamente, conforme esperado, se os critérios definidos nos segmentos forem correspondidos quando os pedidos forem feitos por meio da API REST/SOAP.
- Um processador de eventos de segmento do cliente foi adicionado para solicitações do GraphQL. Anteriormente, os descontos da regra de preço do carrinho não eram aplicados ao carrinho de compras quando um segmento de cliente era usado em uma condição de regra de preço do carrinho. GitHub-371
Diretório
- O aplicativo não lança mais uma exceção quando um comprador insere um CEP inválido durante a seção de envio do fluxo de trabalho de finalização. GitHub-23371
Baixável
- O aplicativo agora exibe links para produtos baixáveis no email Novo pedido quando o pedido contém um produto baixável e um produto configurável com uma opção baixável. Anteriormente, o aplicativo exibia o link para o produto baixável independente, mas não o link para o produto configurável com uma opção baixável.
Bloco dinâmico (antigo banner)
- Os blocos dinâmicos agora são exibidos somente na página especificada. Anteriormente, o aplicativo exibia todos os banners atribuídos ao widget em todas as páginas se nenhum bloco dinâmico fosse especificado.
- Agora é possível salvar blocos dinâmicos com conteúdo vazio.
EAV
- Os valores de data do atributo de endereço do cliente agora são salvos no formato de quatro dígitos, em vez do formato de dois dígitos.
- O link de redefinição de senha na página Redefinição de senha do administrador agora funciona conforme esperado. Anteriormente, quando um modelo personalizado era usado para a página de redefinição de senha de administrador, o aplicativo exibia esta mensagem quando um administrador clicava no link dentro do email:
Your password reset link has expired
. Isso ocorria porque o modelo de email personalizado continha a variável incorreta para a ID do usuário.
- Agora o envio de emails do cliente pelo Administrador funciona corretamente quando ativado no nível da visualização da loja. Anteriormente, o aplicativo não enviava emails de clientes quando as configurações de notificação por email eram ativadas no nível da visualização da loja, mas não no nível global.
- O aplicativo agora envia email conforme esperado em implantações de vários sites, em que nem todos os sites permitiram o envio assíncrono de email. Anteriormente, se pelo menos um site tivesse essa configuração desativada, o email não era enviado de nenhum site, mesmo quando ativado. Emails de NFF, Entrega e Aviso de Crédito tinham problemas semelhantes. No entanto, os e-mails Comentários da Ordem, Comentários da NFF, Comentários da Entrega e Comentários do Aviso de Crédito foram enviados com êxito. GitHub-31950
- A mensagem de email que o aplicativo envia quando você compartilha um registro de presente do Administrador agora contém um link válido para o local do registro. Anteriormente, esse link resultava em um erro 404. GitHub-504
- As faturas e os PDF de faturas agora incluem os mesmos preços de pacotes de produtos que o esperado. Anteriormente, os PDF de fatura incluíam o preço incorreto para produtos de pacote. GitHub-12856
- A conversão de cadeia de caracteres foi adicionada ao método de filtro de modelo de email para garantir que o valor de retorno seja um
string
. Anteriormente, quando uma exceção era capturada enquanto não estava no modo de desenvolvedor, o aplicativo retornava um objetophrase
. Isso por sua vez disparou um fatalUncaught TypeError
. GitHub-32671
- Os emails de confirmação de pedido agora são enviados conforme esperado quando o envio assíncrono está habilitado (Lojas > Configuração > Vendas > Emails de Vendas > Configurações Gerais > Envio assíncrono) em um site em uma implantação multissite. GitHub-31950
- O aplicativo agora registra um erro como esperado quando ocorre uma exceção quando um cliente tenta enviar um email do formulário Fale conosco. GitHub-23645
Estruturas
- Agora, as classes pai no Administrador são verificadas em busca de anotação de docblock, juntamente com a classe original e interfaces herdadas. Anteriormente, como as classes principais não eram verificadas, executar ações relacionadas ao cliente no Administrador que acionavam um evento resultava em um erro. O aplicativo registrou este erro no log de exceções:
report.CRITICAL: Method's return type must be specified using @return annotation.
.
- O aplicativo não lança mais um erro fatal quando o servidor Redis é interrompido em uma implantação na qual o cache de página Redis está habilitado.
- O aplicativo agora respeita a configuração Excluir pasta de mídia do backup quando o backup é habilitado com
bin/magento config:set system/backup/functionality_enabled 1
. Anteriormente, apesar dessa configuração, era feito backup da Pasta de Mídia porque o caminho para/magento
era formado incorretamente com um // duplo.
- O aplicativo agora traduz todas as cadeias de caracteres traduzíveis conforme esperado para a página Carrinho de administração. Anteriormente, a carga de tradução ocorria muito tarde e ignorava todos os observadores que estavam inscritos no pré-despacho da ação do controlador. GitHub-31849
- A validação de formulário na página Criar nova conta de cliente agora funciona com êxito quando a configuração de habilitação da extensão Fazer logon como cliente está desabilitada. Anteriormente, o aplicativo exibia um erro de JavaScript.
- Usar
bin/magento setup:db-schema:split-sales
para mover tabelas de banco de dados agora funciona conforme esperado. Agora as tabelas são criadas e preenchidas corretamente com dados. Anteriormente, como a verificação da existência da tabela estava incorreta, o aplicativo emitiuSQLSTATE
erros quando você executoubin/magento setup:db-schema:split-sales
.
- O tratamento de exceções para processos filhos bifurcados por
ProcessManager
foi aprimorado. Quando uma exceção ocorre agora, o processo principal é encerrado e uma mensagem de erro é exibida apenas uma vez. Anteriormente, várias falhas de indexador eram registradas e várias mensagens eram exibidas. GitHub-30622
- Os plug-ins globais do Adobe Commerce (por exemplo,
webapi_rest
egraphql
) não são mais acionados para um novo tipo de área personalizada quando odi.xml
desse arquivo de área não contém plug-ins registrados.
- As exceções que ocorrem durante a inicialização não são mais armazenadas em cache e agora acionam um código de resposta 500.
- Os comerciantes agora podem atribuir ou excluir uma imagem de e para um evento de catálogo por exibição de loja. Anteriormente, ao alterar a exibição de armazenamento durante a edição de um evento de catálogo, a caixa de seleção Excluir Imagem não estava ativa e o aplicativo exibia este erro:
Uncaught ReferenceError: toggleValueElements is not defined at HTMLInputElement.onclick
. GitHub-364
- O último manipulador mesclado em um arquivo
communication.xml
não substitui mais todos os manipuladores criados anteriormente. GitHub-29528
Correções gerais
- O aplicativo agora exibe o número correto de estrelas na página Minhas análises do produto e nas revisões recentes na página Minha conta. Anteriormente, o aplicativo aplicava estrelas de revisão apenas à primeira revisão e deixava as outras revisões na página sem estrelas.
- Os links de conta nos cabeçalhos agora seguem os padrões da WCAG. Anteriormente, os links de conta nos cabeçalhos continham IDs duplicadas, o que causava a falha da validação da WCAG.
- O aplicativo agora salva as datas de evento de catálogo nos fusos horários UTC. Anteriormente, o aplicativo salvava datas de evento de catálogo no fuso horário do usuário.
- O aplicativo não lança mais erros gerados pelo log do sistema quando um comprador convidado usa um endereço inválido. Anteriormente, o aplicativo exibia intermitentemente este erro em vez de renderizar a página:
No such entity with addressId
. GitHub-15115
- O processo de redimensionamento de imagem não é mais interrompido para imagens em formato não compatível. Anteriormente, quando
catalog:images:resize
encontrou um formato de imagem sem suporte, o processo foi interrompido e o aplicativo exibiu este erro:bin/magento catalog:images:resize Unsupported image format
.
- O suporte WEBP e AVIF para imagens de logotipo foi adicionado ao administrador. GitHub-32495
- Não é mais possível alterar o escopo do atributo
media_gallery
. Anteriormente, quando você alterava o escopo do atributomedia_gallery
de volta paraglobal
, o aplicativo gerou um erro.
- Os produtos relacionados que foram adicionados como uma atualização agendada não são mais exibidos em uma página de produto da loja após a data de término da atualização. GitHub-469
- O aplicativo agora exibe uma mensagem precisa e informativa ao clicar em Gerenciar itens na Minha conta registro de presentes página e produtos de registro estão sem estoque. Anteriormente, o aplicativo exibia este erro:
Error: Call to a member function getId() …
. GitHub-490
- Agora é possível adicionar uma página do CMS a partir da página Adicionar nova página à hierarquia raiz do site, conforme esperado.
- A filtragem agora funciona conforme esperado na lista de exportações agendadas quando o tipo de entidade é selecionado. Anteriormente, o filtro não funcionava e o aplicativo exibia um erro de JavaScript. GitHub-361
- Imagens de categoria agora são copiadas como esperado do diretório
catalog/tmp/category
para o diretóriocatalog/category
quando categorias são salvas usando o método de armazenamento do banco de dados. A linha de imagem na tabelamedia_storage_file_storage
agora também tem adirectory_id
correta. GitHub-11995
- Os comerciantes agora são notificados sobre caches invalidados, conforme esperado após enviar alterações à hierarquia do CMS. Anteriormente, o aplicativo não invalidava caches ao salvar a hierarquia do CMS.
- As solicitações redundantes de AJAX para a seção do carrinho do carrinho de compras foram reduzidas. Anteriormente, o aplicativo não carregava corretamente o subtotal do carrinho, o que acionava o recarregamento do carrinho novamente.
- Validação adicionada para URLs para impedir que palavras reservadas sejam incluídas em chaves de URL. Consulte Definindo URIs (Uniform Resource Identifiers)
- Nas implantações que executam o PHP 7.4, o aplicativo agora retorna um erro 404 quando a configuração Gerar regravações de URL de "categoria/produto" está definida como Não, e um comprador tenta acessar um caminho de categoria não existente. Anteriormente, o aplicativo retornava um erro 500 informando:
Trying to access array offset on value of type bool
. GitHub-31984
- Agora você pode editar com êxito um produto criado usando um conjunto de atributos do qual os grupos Grupo de Design e Atualização de Design de Cronograma foram removidos. Anteriormente, ao tentar editar um produto criado a partir desse conjunto de atributos, o aplicativo exibia um erro fatal. GitHub-44
nowdoc
substituiuheredoc
no alternador de armazenamentoMagento_Backend
. GitHub-32262
- Os administradores agora são redirecionados diretamente para a página de Admin solicitada após o logon. Anteriormente, quando um administrador fazia logon, ele era redirecionado para o painel de Administração (ou qualquer página que estivesse configurada como a página de inicialização) e tinha que navegar manualmente para o destino. GitHub-31042
- Adicionadas as regiões da Argentina, Bolívia, Chile, Equador, Guiana, Paraguai, Peru, Suriname e Venezuela à tabela
directory_country_region
. GitHub-31169
- Adição das regiões Albânia, Dinamarca, Grécia, Islândia, Portugal e Suécia à tabela
directory_country_region
. GitHub-31040
- Agora as mensagens são sinalizadas como erros na fila de mensagens do MysqlMQ quando ocorrem exceções. GitHub-18140
- O aplicativo agora faz referência ao objeto de classe correto ao carregar informações de imposto para as páginas Aviso de crédito de administrador e Fatura. GitHub-31197
- A integração do Royal Mail Click & Drop agora funciona conforme esperado. Anteriormente, o aplicativo exibia este erro quando você tentava ativar esta integração:
Sorry! Something went wrong. Please try again later
. GitHub-28996
- O aplicativo agora exibe uma mensagem de erro informativa quando uma entrega, aviso de crédito ou ID de NFF incorreta é passada em um URL. Anteriormente, o aplicativo exibia um erro fatal. GitHub-30424
- A recursão no local dos arquivos estáticos foi removida. O aplicativo agora exibe uma página 404 em vez de um erro 500. Anteriormente, um bug na configuração padrão do NGINX levava a recursão infinita. GitHub-31530
- O nome do
cms_index_noroute.xml
arquivo foi corrigidocms_noroute_index.xml
como . GitHub-31300
- O
.editorconfig
arquivo foi refatorizado para corrigir a formatação automática dosdb_schema_whitelist.json
arquivos. GitHub-31171
- O redimensionamento de uma janela do navegador não aciona mais duplicado eventos magnifier de vinculação. GitHub-30788
- A aplicativo não lança mais uma exceção SQL ao filtrar
Magento\Users\Model\ResourceModel\Users\Collection
poruser_id
. GitHub-31216
Cartões-presente
- Os encargos de pagamento pendente agora são removidos de um vale-presente, conforme esperado, quando um vale-presente é cancelado. Anteriormente, o aplicativo exibia um erro quando
cron
era executado após a exclusão do cartão-presente.
- Os compradores agora podem remover cartões-presente de um pedido na página Revisar pedido ao fazer check-out com vários endereços. Anteriormente, o aplicativo não removia o cartão-presente do pedido quando o comprador selecionou o cartão e clicou em Remover.
- O aplicativo agora exibe o novo preço de um vale-presente no carrinho de compras quando você altera o valor do vale-presente depois de adicioná-lo ao carrinho.
- A lógica de validação do intervalo de preços foi adicionada à página de criação do cartão-presente. Anteriormente, um administrador podia criar um cartão com um valor mínimo que excedia o valor máximo. GitHub-493
- A consulta
addRequisitionListItemsToCart
agora retorna a quantidade de um vale-presente personalizado conforme esperado quando a solicitação não contém um valor paraallow_open_amount
.
Mensagem de presente
- A mutação
setGiftOptionsOnCart
agora cria mensagens de presente corretamente. GitHub-388
Registro de presentes
- Os valores de Data do evento agora são os mesmos na loja e no Administrador durante a criação ou edição do Registro de presente. Anteriormente, cada vez que você editava e salvava o registro de presentes, o aplicativo ajustava a Data do evento um dia atrás na vitrine e no Administrador. GitHub-466
- O aplicativo não exibe mais produtos desabilitados em registros de presentes. Anteriormente, se um produto era desabilitado depois de ser adicionado a um registro de presente, o aplicativo exibia esta mensagem quando um comprador acessava o registro:
Error: Call to a member function getId() …
. GitHub-510
Invólucro do presente
- A tradução de rótulos de invólucro de presente para exibições de loja agora funciona conforme esperado.
- O invólucro do presente agora é aplicado conforme esperado aos pedidos enviados para vários endereços.
- O aplicativo agora remove os encargos de invólucro do presente do carrinho de compras quando todos os produtos foram removidos.
- Os totais do Aviso de Crédito agora estão corretos quando o aviso de crédito contém contorno de presente e encargos configuráveis do produto. Anteriormente, o valor do imposto de quebra de presente nem sempre era incluído no total do aviso de crédito. GitHub-34
Google Analytics
- O aplicativo não gera mais um erro quando um administrador tenta carregar uma página na loja quando o Google Analytics está habilitado. Uma entrada CSP para
connect-src
foi adicionada para permitir solicitações AJAX to www.google-analytics.com. GitHub-30880
Gerenciador de tags da Google
- O componente de interface do usuário para o endereço de faturamento na página de pagamento do fluxo de trabalho de finalização agora usa o endereço de cotação corretamente quando o Google Tag Manager está ativado. Anteriormente, ocorria um erro de JavaScript na página de pagamento.
GraphQL
- A consulta
products
do GraphQL agora retorna opções de atributo classificadas na mesma ordem de classificação usada na página de edição de atributos.
- A resposta à solicitação do GraphQL
{ category(id: 2){ children { name children { name } } } }
agora inclui uma árvore de categorias classificada corretamente.
- O objeto
CartItemPrices
agora contém o novo campo do GraphQLfixed_product_taxes
, que retorna uma matriz dos impostos fixos do produto aplicados a um item do carrinho. Anteriormente, os impostos fixos do produto aplicados a um item do carrinho não eram incluídos na consulta do carrinho.
- Solicitações vazias para o GraphQL agora lançam o código de resposta 200 em vez de 500. Anteriormente, o analisador do GraphQL lançava uma exceção antes de o resultado da consulta ser gerado.
- A mutação
applyRewardPointsToCart
agora atualiza o total geral de um carrinho para refletir com precisão o valor dos pontos de premiação deduzidos. GitHub-486
- Os produtos com deficiência não são mais incluídos na resposta do GraphQL quando o GraphQL é usado para vincular produtos de venda adicional.
- Agora os comerciantes podem usar o método
setShippingAddressesOnCart
da GraphQL para definir endereços de cobrança e de envio para o carrinho do comprador quando o check-out do convidado está desabilitado.
- A consulta
categoryList
não lança mais uma exceção quando contém vários fragmentos no objetoCategoryTree
. GitHub-31086
- A consulta
product
do GraphQL agora retorna os preços corretos do grupo de clientes.
- A resposta de consulta do GraphQL
products
agora classifica agregações de acordo com a posição de atributo do produto.
- O aplicativo não lança mais erros de tipo durante consultas do GraphQL quando os sufixos de URL do produto e da categoria contêm valores nulos. GitHub-30909
- O objeto
CustomizableDateValue
agora contém o atributotype
. Seu valor é uma enumeração que pode ser definida como DATE, DATE_TIME ou TIME.
- A consulta
dynamicBlocks
retorna o conteúdo dos blocos dinâmicos que correspondem aos filtros especificados.
- A solicitação POST
V1/products/special-price-delete
agora exclui somente o preço com umstore_id
especificado, conforme esperado. Anteriormente, a chamada removia de todas as lojas todos os preços especiais para o SKU especificado. GitHub-25907
- Correção de um erro com o atributo
country_code
na mutaçãocreateGiftRegistry
.
- Correção de problemas com o atributo
giftRegistryUid
da mutaçãoupdateGiftRegistryItems
.
- Adição de uma verificação adicional para impedir que a mutação
updateGiftRegistryRegistrants
seja usada para adicionar pessoas aleatórias como registrantes a um registro de presentes.
- A mutação
addConfigurableProductsToCart
agora retorna a miniatura correta do produto especificado. Anteriormente, retornava a miniatura do produto principal.
- A consulta
products
não expõe mais o preço especial de um produto quando o período de preço especial é definido para uma data futura. GitHub-30210, GitHub-29631
- A resposta de consulta
customer
agora inclui o atributototal_giftcard
como parte do objetoOrderTotal
.
- Correção de um problema que fazia com que a consulta
products
retornasse informações incorretas sobre camadas de preço em itens que não têm definição de preço de camada. GitHub-32279
Imagem
- Agora é possível definir os atributos do pacote required_options e has_options conforme esperado ao criar ou atualizar um produto do pacote usando o ponto de extremidade POST
/V1/product/:sku
. Anteriormente, esses atributos personalizados eram definidos como 0 (zero), apesar dos esforços para defini-los como 1 (um).
Importar/exportar
- O filtro IDs de categoria para entidades de produto na grade Atributos de entidade da página Exportar agora funciona conforme esperado.
- O status do estoque de produtos agrupados agora é atualizado conforme esperado para indisponível quando todos os produtos secundários estiverem indisponíveis. GitHub-32647
- O status do estoque de produtos configuráveis agora é atualizado automaticamente conforme esperado quando o status do estoque de produtos secundários é atualizado pela importação. Anteriormente, o status do estoque do produto não era atualizado automaticamente quando o status do estoque de produtos secundários era atualizado pela importação.
- Agora é possível salvar valores vazios em uma exportação agendada. Anteriormente, o aplicativo atualizava valores de filtro vazios após a criação ou o salvamento da exportação. Os valores
no
enot specified
foram representados por zero no banco de dados, e um valor denot selected
foi substituído porno
.
- O processo de exportação agora leva em conta o escopo da função do usuário ao exportar produtos, fontes de estoque e entidades do cliente. Anteriormente, o processo de exportação ignorava o escopo da função do usuário, o que permitia a exportação de entidades de exportação de função de usuário privada.
- O aplicativo agora define a classe de imposto do produto como
None
se um produto for importado comtax_class_name
valoresNone
ou0
. Anteriormente, seproduct tax_class_name
fosseNone
no arquivo CSV, o aplicativo criava uma nova classe de impostoNone
, que duplicava a classe de imposto existente. Seproduct tax_class_name
fosse0
no arquivo CSV, o aplicativo ignoraria esse valor e a classe de imposto do produto não seria alterada após a importação.
- Os administradores agora podem alterar com êxito o
name
dobundle_values
de um produto de pacote do Administrador. Anteriormente, o aplicativo exibia o produto como indisponível na loja depois que você alterava o nome de Administrador. Os produtos também foram mesclados com o mesmo SKU em uma única seção de opção de pacote.
- O aplicativo agora considera o escopo do usuário ao exportar dados do cliente. Anteriormente, ao tentar exportar clientes, o aplicativo exportava dados do cliente de todos os sites.
- O aplicativo agora remove os relacionamentos de produtos entre venda adicional, venda cruzada e produtos relacionados durante a importação do arquivo CSV, como esperado quando
__EMPTY__VALUE__
é especificado no arquivo CSV.
- A exportação de dados de endereço personalizados para muitos clientes (Admin Sistema > Exportar) não resulta mais em um erro de memória de rotina. Anteriormente, ao exportar dados de endereço personalizados, o aplicativo tentava carregar todos os dados do cliente, o que resultava na redução da memória, e o aplicativo exibia um erro de falha na alocação de memória.
- Os preços de camada duplicados não são mais importados durante o processo de importação de CSV padrão. Anteriormente, a validação estava ausente para impedir a importação de preços de níveis duplicados e, quando esses preços ocorreram, os comerciantes não podiam salvar os produtos. Os comerciantes também viram este erro ao tentar agendar uma alteração de produto:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry…
.
- Todas as imagens do produto agora são validadas durante a importação. Anteriormente, o aplicativo validava somente a primeira imagem quando um produto tinha várias imagens. GitHub-28236
- Agora é possível excluir uma região de um endereço de cliente, conforme esperado durante a importação. Anteriormente, a região atribuída não era alterada quando um endereço de cliente era importado com uma região vazia.
- Os produtos com conteúdo JSON ou HTML como atributos de produto adicionais agora são exportados corretamente para um arquivo CSV. Anteriormente, o arquivo CSV continha strings de dados sobrepostas em campos incorretos.
Índice
- O Process Manager agora existe com um erro quando um processo secundário falha. Anteriormente, o Gerenciador de processos sempre saia com êxito se o número de funções passadas a ele (por exemplo, dimensões do indexador) fosse menor do que o valor das
MAGE_INDEXER_THREADS_COUNT
ambiente variável. GitHub-30964
- Agora, os produtos estão disponíveis conforme o esperado na vitrine pesquisa resultados ao vincular produtos usando uma PUT REST solicitação
/V1/products/:sku/links
quando o modo indexador é definido como Atualizar em Salvar.
- O indexador da regra de preço de catálogo agora funciona como esperado quando o modo do indexador está definido como Atualizar ao Salvar. GitHub-370
- A exclusão de uma categoria desabilitada que não inclui um produto agora não afeta a pesquisa de catálogo e as tabelas de índice simples de categoria. Anteriormente, a exclusão de uma categoria inativa acionava uma reindexação completa. GitHub-23297
- Os indexadores personalizados agora podem usar diferentes nomes de colunas de entidade para assinaturas. Anteriormente, o gatilho de banco de dados usava o nome da coluna do último indexador definido como Atualizar pelo Agendamento, em vez do indexador designado. GitHub-21853
- O aplicativo não envia mais solicitações AJAX para recarregar as seções de dados do cliente (
Magento_Customer/js/section-config
) que não são afetadas pela solicitação. GitHub-31948
- Os indexadores a seguir não são mais invalidados depois que você adicionar, remover ou reordenar produtos em uma categoria:
catalog_category_product
ecatalogsearch_fulltext
(e seus dependentes). Anteriormente, essas remoções involuntárias acionavam a reindexação completa dos sites. Uma reindexação completa agora é impedida sob essas condições quando o catálogo simples não está ativado.
Infraestrutura
- A dependência
pelago/emogrifier
foi atualizada da versão 3.1.0 para 5.0.0. Esta atualização resultou na introdução de alterações incompatíveis com versões anteriores na classeMagento\Email\Model\Template\Filter
. O código alterado é executado durante a renderização dos templates de email. Consulte referência do BIC.
- Correção de um problema com
\Magento\CatalogInventory\Model\Indexer\Stock\CacheCleaner::getCategoryIdsByProductIds
que impedia o salvamento de um novo produto.
- A biblioteca TinyMCE v3 obsoleta foi removida. O módulo
Magento_Tinymce3Banner
e os testes MFTF relacionados ao TinyMCE v3.x foram removidos do Adobe Commerce.
- O aplicativo não lança mais um erro
Invalid header value detected
no formulário Fale conosco quando um comprador insere um endereço de email que contém marcas diacríticas francesas (como "é", "è"). O aplicativo agora converte letras UTF-8 no nome do usuário para codificação ASCII. Anteriormente, as letras UTF-8 não eram convertidas para a codificação ASCII na seção exclusiva do endereço de email.
- O aplicativo não lança mais um erro fatal do PHP quando um plug-in é adicionado a uma classe pai. GitHub-31291
- Atualização dos arquivos README.md para estes módulos:
Magento_Msrp
,Magento_MsrpConfigurableProduct
,Magento_MsrpGroupedProduct
,Magento_Multishipping
,Magento_MysqlMq
. GitHub-32577
phpcpd
foi atualizado para v6.0.3 para compatibilidade com o PHP 8.
ramsey/uuid
foi atualizado para compatibilidade com o PHP 8.0. GitHub-31777, GitHub-826
colinmollenhour/php-redis-session-abstract
foi atualizado para v1.4.4 para compatibilidade com o PHP 8. GitHub-32709
- Correção de uma combinação inválida de guias e espaços no arquivo
phpstan.neon
. GitHub-31239
- Remoção do uso da propriedade obsoleta
$_isScopePrivate
em toda a base de código. GitHub-30506
- Os layouts de página não são mais codificados permanentemente no
Magento\Widget\Block\Adminhtml\Widget\Instance\Edit\Chooser\Container
. Como resultado, a funçãogetPageLayouts()
agora retorna a lista real de layouts de página declarados pelos diferentes módulos, conforme esperado. Anteriormente, retornava apenas layouts codificados. GitHub-31168
- O arquivo
composer.lock
foi atualizado para a versão mais recente do Padrão de codificação. GitHub-31152
- Adicionada uma dependência ausente no pacote
web-token/jwt-framework
amagento/module-jwt-framework-adapter
. GitHub-32578
- Os ouvintes passivos foram adicionados à biblioteca
fotorama.js
para melhorar a pontuação das métricas do farol. GitHub-31140
- O arquivo README.md para o módulo Google Analytics foi atualizado. GitHub-32616
- O Process Manager agora lida com exceções adequadamente em processos bifurcados. O processo principal agora existe, e o aplicativo agora exibe uma mensagem de erro apenas uma vez. Além disso, as exceções dos processos bifurcados agora são tratadas quando são lançadas no processo principal. Anteriormente, o aplicativo registrava várias falhas de indexador e exibia várias mensagens de erro. GitHub-30622
- O aplicativo não lança mais um erro quando um plug-in é adicionado a uma classe principal. (O parâmetro
optionsProvider
agora é declarado apósgetContentIdentities
emAssest.php
.) Anteriormente, o aplicativo exibia este erro:Error: Cannot instantiate interface Magento\Framework\Data\OptionSourceInterface
. GitHub-31291
- A execução de
Magento\Framework\Filesystem\Io\Ftp::ls()
em uma pasta vazia agora retorna uma matriz vazia, conforme esperado. Anteriormente, o aplicativo gerou esta exceção:Invalid argument supplied for foreach() in vendor/magento/framework/Filesystem/Io/Ftp.php…
. GitHub-31288
- O método
update
para Função e Regras foi marcado como obsoleto emapp/code/Magento/Authorization/Model/Role.php
. GitHub-30756
- A concatenação dos parâmetros de cookie SameSite foi corrigida. Anteriormente, a concatenação incorreta anexou o sufixo
lex
avalue
,domain
e outros parâmetros. GitHub-26377, GitHub-32440
allure-framework/allure-phpunit
foi atualizado para v1.3.1 em toda a base de código. Anteriormente, o aplicativo exibia este erro:Warning: Use of undefined constant GLOB_BRACE - assumed 'GLOB_BRACE' (this will throw an Error in a future version of PHP) in /var/www/html/src/vendor/allure-framework/allure-phpunit/src/Yandex/Allure/Adapter/AllureAdapter.php:74.
GitHub-24635
- O aplicativo agora exibe mais erros informativos quando ocorrem erros ao executar comandos
bin/magento
no modo de produção. Anteriormente, o aplicativo não exibia mensagens de erro ou exibia mensagens sem informações. GitHub-32786
- O objeto PHP
ArrayIterator
foi atualizado para funcionar conforme esperado com o PHP 7.4. GitHub-32088
- O aplicativo não emite mais um erro quando um cliente tenta concluir um pedido sem transportadoras disponíveis. Em vez disso, ele exibe a página de check-out e esta mensagem:
Sorry, no quotes are available for this order at this time
. Anteriormente, o aplicativo exibia uma página de check-out em branco e registrava esta mensagem no log de exceção:array_keys() expects parameter 1 to be array, null given
. GitHub-30830
- O aplicativo não registra mais cada cookie como um contexto separado. A matriz
$_COOKIE
também foi convertida em uma cadeia de caracteres. Anteriormente, como cada cookie era registrado como um contexto separado, quando o número de cookies excedia 50, o aplicativo registrava esta mensagem:Unable to send the cookie. Maximum number of cookies would be exceeded
. GitHub-31334
Fatura
- Ao criar novas faturas no Administrador, a caixa de seleção Cópia de email de agora funciona conforme esperado. Anteriormente, a caixa de seleção era ignorada se a configuração global para enviar emails de fatura estivesse habilitada em Emails de vendas. Agora ele é consistente e opera da mesma forma que as páginas de criação de memorando de crédito e remessa. GitHub-28511
Galeria de mídia
bin/magento media-gallery:sync
agora falha como esperado ao processar imagens PNG que não possuem informações de XMP.
- As entradas na tabela
catalog_product_entity_media_gallery
são removidas conforme esperado quando os produtos relacionados são excluídos. GitHub-17727
- Os detalhes da imagem agora podem ser atualizados na Galeria de mídia quando a minificação do JavaScript está habilitada. Anteriormente, os detalhes da imagem não eram salvos e o aplicativo exibia este erro:
TypeError: Cannot read property 'call' of undefined in jquery.validate
. GitHub-31633
MFTF
Os novos recursos e correções de bugs principais MFTF estão descritos no Log de Alteração da Estrutura de Teste Funcional.
- Os comandos
magento indexer:reindex
ecache:flush
e o grupo de açãoAdminReindexAndFlushCache
foram removidos dos testes para melhorar a execução dos seguintes módulos:Bundle
,Catalog
,CatalogRule
,CatalogRuleConfigurable
,CatalogUrlRewrite
,Downloadable
,Indexer
,Paypal
eSales
. GitHub-31031
AdminSubmitCategoriesPopupActionGroup
foi adicionado aos testes para evitar falha no teste. GitHub-31251
- Os testes foram refatorados com
StorefrontCheckQuickSearchStringActionGroup
eStorefrontAssertProductNameOnProductMainPageActionGroup
(grupos de ação existentes). GitHub-31251
Testes refatorados
Os testes a seguir foram refatorados para melhorar o tempo de execução:
AddOutOfStockProductToCompareListTest
AdminApplyTierPriceToProductWithPercentageDiscountTest
AdminCheckingCreditMemoTotalsTest
AdminCheckDashboardWithChartsTest
AdminConfigDefaultProductLayoutFromConfigurationSettingTest
AdminCreateInvoiceTest
AdminCreateOrderAddProductCheckboxTest
AdminMassOrdersCancelCompleteAndClosedTest
AdminMassOrdersCancelProcessingAndClosedTest
AdminMassOrdersHoldOnCompleteTest
AdminMassOrdersHoldOnPendingAndProcessingTest
(substituição de AdminMassOrdersHoldOnPendingAndProcessingTest
obsoleto)
AdminMassOrdersUpdateCancelPendingOrderTest
AdminMassProductPriceUpdateTest
AdminMassUpdateProductAttributesMissingRequiredFieldTest
AdminOrdersReleaseInUnholdStatusTest
AdminPanelIsFrozenIfStorefrontIsOpenedViaCustomerViewTest
AdminSortingByWebsitesTest
AdminUpdateSimpleProduct
AdminUpdateSimpleProductWithRegularPriceInStockEnabledFlatTest
AdminValidateShippingTrackingNumberTest
CancelOrdersInOrderSalesReportTest
ProductsQtyReturnAfterOrderCancelTest
StorefrontConfigurableProductBasicInfoTest
Grupos de ação
As ações repetitivas foram substituídas por grupos de ação nestes testes:
AdminCheckConfigurableProductPriceWithDisabledChildProductTest
AdminConfigurableProductCreateTest
AdminConfigurableProductRemoveAnOptionTest
AdminCreateProductDuplicateUrlkeyTest
AdminCreateSimpleProductNegativePriceTest
AdminCreateSimpleProductZeroPriceTest
AdminCreateVirtualProductFillingRequiredFieldsOnlyTest
AdminUpdateSimpleProductWithRegularPriceInStockDisabledProductTest
AdminUpdateSimpleProductWithRegularPriceInStockNotVisibleIndividuallyTest
AdminUpdateSimpleProductWithRegularPriceInStockVisibleInCatalogOnlyTest
Novos grupos de ação
AdminClearFiltersOnGridActionGroup
AdminClickAddNewPageOnPagesGridActionGroup
AdminClickInsertWidgetActionGroup
AdminClickRefundOfflineOnNewMemoPageActionGroup
AdminFillAccountInformationOnCreateOrderPageActionGroup
AdminGoToOrderStatusPageActionGroup
AdminOpenCMSPagesGridActionGroup
AdminSelectAttributeSetOnEditProductPageActionGroup
AssertAdminProductIsAssignedToCategoryActionGroup
(substitui filtrando a Grade de Produtos por SKU e clicando na primeira linha (para diminuir o tempo de execução de teste)
AssertLinkActionGroup
AssertStorefrontCartDiscountActionGroup
ClickPlaceOrderActionGroup
SaveCmsPageActionGroup
StorefrontAssertProductNameIsNotOnProductMainPageActionGroup
StorefrontGuestCheckoutProceedToPaymentStepActionGroup
StorefrontHoverProductOnCategoryPageActionGroup
StorefrontSelectCustomizeAndAddToTheCartButtonActionGroup
Grupos de ação excluídos
- Remoção
CliIndexerReindexActionGroup
(ou valor alterado) dos testes para melhorar o tempo de execução para ,Bundle
Backend
,BundleImportExport
,CatalogRule
Elasticsearch
Indexer
CatalogSearch
Checkout
LayeredNavigation
Elasticsearch6
Downloadable
Catalog
LoginAsCustomer
Newsletter
, ,Sales
SalesRule
,Search
,Store
, ,Swatches
,UrlRewrite
,Weee
, eWishlist
módulos.
- Removido
CliCacheFlushActionGroup
deCatalog
,CatalogUrlRewrite
,Checkout
,Config
,ConfigurableProduct
Contact
,Cookie
,CurrencySymbol
,Customer
,Elasticsearch
Downloadable
, ,Elasticsearch6
,Fedex
, ,Indexer
,LayeredNavigation
LoginAsCustomer
,Msrp
,Multishipping
, ,Sales
,Swatches
,Translation
,UrlRewrite
,Vault
,Weee
eWishlist
módulos.
Boletim informativo
- O aplicativo não envia mais o email do informativo a um cliente que cancelou a assinatura do informativo no período entre a criação da fila de informativos e o envio do informativo. GitHub-32116
- O aplicativo agora atende às configurações de habilitação do informativo (Lojas > Configurações > Configuração > Clientes > Informativo > Opções Gerais). Anteriormente, essas configurações eram sempre recuperadas do escopo padrão em implantações de várias lojas. GitHub-31188
- A GET de chamada REST
/V1/customers/search
agora retorna as informações corretas para os clientes que assinaram vários boletins informativos. GitHub-31168
- O status da assinatura em cache foi removido do plug-in de boletim informativo. GitHub-19345
Pedido
- O aplicativo agora calcula corretamente um saldo de cliente faturado ao retornar o crédito da loja para uma conta de cliente para uma ordem parcialmente faturada.
- O aplicativo agora salva uma ordem modificada conforme esperado quando salva um saldo de cliente reembolsado. GitHub-393
Métodos de pagamento
- O aplicativo agora renderiza blocos de pagamento em
frontend
, independentemente da área da qual o email foi enviado. (A área atual agora é emulada comofrontend
antes do bloco de pagamento ser renderizado.) Anteriormente, os blocos de pagamento eram renderizados na área da qual o email era enviado. Como resultado, independentemente de o email de vendas ter sido acionado pelo Administrador ou pela API REST, as URLs de ativos tentaram carregá-los da área errada (webapi_rest
ouadminhtml
).
- O aplicativo agora envia o link de um produto baixável para o endereço de email especificado durante o check-out. Anteriormente, quando um comprador convidado usava o Check-out do PayPal Express e inseria diferentes endereços de email para enviar o pedido e fazer o check-out, o aplicativo enviava o link do produto disponível para download para o primeiro endereço.
- O aplicativo agora exibe um valor preciso para o crédito de loja disponível na página Método de pagamento em implantações que oferecem suporte a várias moedas.
- A lista de métodos de pagamento agora é atualizada conforme esperado quando um comprador convidado altera o endereço de entrega de um pedido para um país diferente durante o checkout. Anteriormente, a alteração do endereço de faturamento não acionava uma atualização dos métodos de pagamento possíveis.
PayPal
- Os compradores agora podem fazer check-out com sucesso de um pedido PayPal Payflow Pro com um endereço de envio que contém caracteres especiais. Anteriormente, o aplicativo recusava o pagamento desses pedidos.
- Os compradores agora são redirecionados de volta para a página de sucesso do pedido após um pagamento bem-sucedido usando o PayPal. Anteriormente, os compradores eram redirecionados para uma página em branco porque os dados da sessão eram perdidos.
Desempenho
- O desempenho da pesquisa do SKU do administrador em catálogos grandes melhorou. As dicas do otimizador de consultas agora forçam o uso do índice durante a execução da consulta.
- O desempenho do processo
catalog_product_alert
cron
ao ser executado em tabelas grandes (vários milhões de linhas) foi aprimorado. Anteriormente, ocatalog_product_alert
carregava todos os alertas de produto, o que causava uma exceção de falta de memória.
- O aplicativo não carrega mais todas as páginas do CMS quando precisa de apenas uma página de edição para renderizar um formulário de Administrador. Essas páginas agora carregam mais rápido. GitHub-30936
-
Os valores numéricos em expressões
WHERE IN
agora são convertidos como número, não como sequência, o que melhora o desempenho da consulta em algumas versões de MariaDB. GitHub-31135 -
O modo
use_application_lock
permite habilitar a reindexação usando variáveis de ambiente ou configurando o arquivoapp/etc/env.php
. Não é mais necessário redefinir manualmente o indexador após uma falha com esse modo ativado. Quando esse modo não estiver habilitado, você deverá redefinir manualmente o indexador após uma falha. Consulte Usando o modo de bloqueio do aplicativo para processos de reindexação.
Preços
- O aplicativo agora atualiza corretamente o preço de um produto com preços agrupados quando um comprador atualiza a quantidade do produto na loja. GitHub-32669
- Os produtos do pacote agora podem ser salvos quando os produtos tiverem um preço de camada atribuído e
Magento\Framework\Api\ExtensibleDataObjectConverter
for usado para converter dados do produto. Anteriormente, quandoMagento\Framework\Api\ExtensibleDataObjectConverter
era usado para converter dados do produto em uma matriz quando um produto era salvo, o aplicativo não salvava o produto e exibia este erro:Notice: Undefined index: price in app/code/Magento/Catalog/Model/Product/Type/Price.php on line 382.
- As atualizações de preço programadas agora são aplicadas aos produtos que já estão no carrinho do comprador. GitHub-356
- O preço de nível agora é aplicado a um produto conforme esperado, quando quantidade incrementos são ativados e o inventário decimal é menor que 1. Anteriormente, o quantidade de preço mínimo de nível era definido como 1.
Vídeo do produto
- Agora você pode usar o botão Adicionar Vídeo (Admin Catálogo > Produtos) para adicionar vários vídeos consecutivamente. Anteriormente, os campos de vídeo mantinham os detalhes do vídeo anterior.
- Entrar no modo de tela cheia de um vídeo de produto em uma página de produto agora funciona conforme esperado em dispositivos móveis. Anteriormente, entrar no modo de tela cheia fazia com que o vídeo pausasse antes de sair do modo de tela cheia.
- Os botões de seta de navegação (Próximo e Anterior) agora estão visíveis, conforme esperado, nos vídeos de produtos da loja.
- Os comerciantes agora podem adicionar vídeos do Vimeo usando o botão Inserir vídeo na página do produto, conforme esperado. Anteriormente, o aplicativo exibia um erro 404. GitHub-31753
Aspas
- A chamada
/V1/guest-carts/examplecartid/items
agora retorna a exibição de loja solicitada. Anteriormente, retornava a primeira visualização de loja na loja, não a solicitada.
- O envio de fatura agora é configurável. Anteriormente, o envio de faturas não era configurável, e o aplicativo sempre enviava uma fatura após sua criação. Emails de fatura e pedido foram enviados no escopo de um observador. Observadores separados agora controlam o envio de email de pedido e email de fatura. GitHub-27656
Relatórios
- Todos os relatórios do sistema agora podem ser visualizados e baixados no projeto Adobe Commerce na infraestrutura em nuvem. Anteriormente, não era possível baixar relatórios do sistema para Logs, Data, Design ou Lojas.
- A data da Última Revisão em Relatórios > Avaliações > Por Produtos do Administrador agora exibe a data de revisão correta. Anteriormente, o aplicativo exibia a data de criação do produto em vez da data de revisão.
Autorizações de devolução de produto (RMA)
- O atributo RMA
resolution
não é mais exibido como obrigatório quando o valor do campo de atributorequired
é definido como não.
- Agora você pode selecionar vários pedidos para devolução do Administrador. Anteriormente, o aplicativo exibia um erro ao clicar em Enviar depois de selecionar vários retornos e selecionar Fechamento no menu suspenso Ações.
- O aplicativo agora envia uma notificação por email aos clientes, conforme esperado, depois que você altera o status de um retorno usando a API REST.
- O aplicativo agora filtra os registros de acordo com os valores de filtro na grade de retornos do cliente administrador. Anteriormente, o aplicativo direcionava você à página Administrador de Todos os Clientes e, ao clicar no botão Redefinir Filtro, também redirecionava para essa página. GitHub-436
Resenhas
- As estrelas da classificação de análise do produto agora são calculadas corretamente na seção Revisar detalhes da página Minha conta.
- As seções Classificação média do produto e Classificações do produto da página Detalhes da revisão do produto agora são renderizadas corretamente. Anteriormente, a ID de revisão não era definida quando o aplicativo calculava a classificação da loja e o modelo de revisão do produto não era renderizado corretamente.
- O link Seja o primeiro a analisar este produto agora é alterado, conforme esperado, para uma contagem de revisão depois que um administrador aprova uma revisão.
- Agora, os administradores podem classificar as análises dos produtos na seção Análises do produto da página de edição do produto, conforme esperado. GitHub-30270
- As análises agora são salvas com a ID de loja correta depois que um administrador aprova e salva a análise de um domínio diferente da loja. GitHub-17510
Recompensas
- Os comerciantes agora podem cancelar um pedido feito total ou parcialmente, usando pontos de premiação, depois que o cliente que fez o pedido for removido do sistema.
- Os comerciantes agora podem remover pontos de premiação das regras de preço do carrinho. Anteriormente, quando um comerciante tentava definir Pontos de premiação como 0 ao criar uma regra de preço do carrinho, o valor anterior para a quantidade de pontos de premiação persistia.
- Os pontos de premiação para análises de produtos agora estão associados ao site relevante quando várias análises são aprovadas na grade de Admin Marketing > Análises pendentes. Anteriormente, os pontos de premiação não eram exibidos na loja e não estavam vinculados ao site relevante no Administrador.
- O aplicativo agora atualiza a lista de métodos de pagamento quando um comprador que está fazendo check-out com vários endereços marca ou desmarca a opção Armazenar Crédito (Pontos de Recompensa).
Vendas
- Os usuários administradores agora podem fazer pedidos para itens esgotados quando a configuração Pedidos pendentes estiver habilitada (Lojas > Configuração > Catálogo > Inventário > Opções do Estoque de Produtos). Anteriormente, o aplicativo exibia um erro.
- Os compradores agora podem encontrar um pedido na página Pedidos e devoluções quando o sobrenome termina com um espaço em branco.
- Agora as faturas são criadas com o total geral correto quando uma regra de preço do carrinho que atribui um desconto de 100% é aplicada a um pedido que também está sujeito a impostos de produto de catálogo e de desconto e que se qualifica para remessa gratuita. Anteriormente, o pedido tinha o preço correto, mas a fatura não tinha. GitHub-30853
- Filtrar pedidos por data agora retorna resultados precisos. Anteriormente, o aplicativo não retornava um pedido que era feito depois das 00:00 UTC, quando você filtrava pedidos por data do pedido.
- A grade do memorando de crédito agora exibe o símbolo de moeda correto quando o escopo do Site é usado para um atributo de Preço em uma implantação de várias lojas.
- Os botões de opção Métodos de pagamento não desaparecem mais na seção Informações de pagamento e envio do fluxo de trabalho de finalização depois que a página Criar novo pedido pelo administrador é recarregada. GitHub-32106
- O texto árabe agora é exibido corretamente nas faturas.
- O aplicativo agora calcula corretamente os totais de impostos parciais do aviso de crédito para avisos de crédito baseados em um pedido ou em uma fatura em lojas que implantam o PayPal Payment Pro como um gateway de pagamento. Anteriormente, para ordens com várias NFFs, a aplicação aplicava todo o imposto dessa ordem para o cancelamento parcial da NFF no aviso de crédito.
- O aplicativo não cria mais deadlocks aleatórios do banco de dados ao enviar novos emails de pedido aos clientes. Anteriormente, ocorriam bloqueios porque o aplicativo salvava o objeto inteiro e seus objetos relacionados, em vez de atualizar colunas SQL. O aplicativo exibiu este tipo de erro:
SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction
. GitHub-31090
- A página de detalhes do pedido da vitrine agora exibe a quantidade correta do produto entregue. Anteriormente, as quantidades de produto estavam incorretas porque o modelo da página Remessa de pedido renderizava Qtd. Remetida como
int
. Isto foi alterado parafloat
.
- O aplicativo não envia mais cópias por email de uma fatura de pedido quando o botão Cópia por email de fatura está desmarcado. Anteriormente, o aplicativo enviou um email para Cliente e Enviar cópia de email de fatura para. GitHub-28511
- O aplicativo não cria mais entradas de endereço duplicadas para uma conta de cliente ao criar um novo pedido do Administrador para um cliente existente. A caixa de seleção Salvar no Catálogo de Endereços foi renomeada para Adicionar ao Catálogo de Endereços e agora está desmarcada por padrão no Administrador.
- O aplicativo agora usa o logotipo que foi carregado nas configurações Logotipo para Exibição de Impressão do HTML quando os compradores imprimem um pedido da conta. Anteriormente, o aplicativo exibia o logotipo LUMA em vez do logotipo carregado.
- O pager de itens de pedido na loja agora funciona como esperado quando a contagem de itens excede 20. Anteriormente, o pager levava em conta os produtos secundários e a contagem total estava incorreta.
- A aplicativo agora exibe os símbolos corretos de moeda para subtotal e envio e manuseio de valores em grades de página de Página de Pedidos e Memorando de Crédito. GitHub-22662
- Agora, os administradores que usam o Safari podem adicionar um produto a uma solicitar do Administrador. Anteriormente, quando o administrador clicava em Adicionar produtos selecionados para solicitar botão, o aplicativo exibia o ícone de carga de rotação e o página pendente. GitHub-30265
Regra de vendas
- A aplicativo agora aplica carrinho regras de preço com desconto máximo de Qty é aplicado ou condições de etapa de Qty de desconto (Comprar X) corretamente quando várias regras de preço carrinho são aplicadas ao carrinho de compras. Anteriormente, se um preço carrinho regra com desconto máximo de Qty for aplicado ou a etapa de Qty de desconto (Buy X) foi aplicada após outra carrinho preço regra, o desconto total foi reduzido ao valor configurado para o Desconto Máximo de Qty é Aplicado ou Etapa de Qty de Desconto (Buy X) vezes o preço do produto.
- O relatório de cupom agora reflete com precisão cupom atividade em implantações onde um banco de dados dividido é implementado.
- As regras de preço do carrinho que contêm a condição Categoria IS NÃO são aplicadas agora como esperado para produtos secundários/simples configuráveis que não são atribuídos a um categoria mas cujos produtos pai são atribuídos.
- O query GraphQL
cart
retorna o total geral correto para a etapa faturamento de um carrinho quando um cupom é aplicado ao solicitar.
Procurar search-heading
- A categoria página não contém mais essas IDs de elementos HTML duplicado:
modes-label
, , ,toolbar-amount
,sorter
limiter
.mode-list
- A palavra parcial pesquisa resultados não incluem mais correspondências inesperadas ou irrelevantes, e as pesquisas produzem resultados consistentes tanto na vitrine quanto no Administrador. O aplicativo agora usa um analisador diferente sem um stemmer para pesquisas por palavras parciais. Anteriormente, pesquisa resultados exibiam produtos que não incluíam palavras-chave pesquisa. (O analisador padrão anteriormente incluía um stemmer e, como o mesmo analisador era usado em pesquisa momento para pesquisa parciais de palavras, o resultado da pesquisa poderia produzir correspondências inesperadas ou irrelevantes.)
- A pesquisa rápida agora retorna resultados se a consulta de pesquisa tiver várias palavras e o nome do produto estiver configurado como não pesquisável. Anteriormente, se o nome do produto era configurado como não pesquisável, o aplicativo exibia uma exceção de consulta em consultas de pesquisa com várias palavras.
- Os resultados da pesquisa agora incluem o atributo
weight
conforme esperado quando configurado como pesquisável.
- O aplicativo não emite mais um erro quando você visualiza uma página de categoria vazia com o Elasticsearch ativado. Em vez disso, ele renderiza a página conforme esperado e exibe uma mensagem informativa. Anteriormente, um índice de texto completo vazio acionava uma exceção em uma página de categoria.
- O recurso de preenchimento automático do campo pesquisa agora funciona como esperado se um consumidor clicar fora do campo de pesquisa depois de começar seu pesquisa. As sugestões de preenchimento automático agora reaparecem quando o consumidor começa a digitar. Anteriormente, o aplicativo não exibia sugestões de preenchimento automático e clicar na caixa de pesquisa não tornava as sugestões de pesquisa visíveis novamente (embora digitar letras adicionais o fez).
- Pesquisar um produto com base em sua SKU total ou parcial em Avançado Search agora retorna o produto esperado.
- As navegação em camadas filtros agora exibem contagens precisas de produtos. Anteriormente, os valores de contagem de produtos de Elasticsearch não eram filtrados por permissões de catálogo.
- Elasticsearch não gera mais um erro quando a categoria URL página parâmetro excede a paginação. GitHub-23843
- Agora você pode adicionar um mapeador de campo Elasticsearch personalizado a
Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\Resolver\CompositeResolver
. GitHub-24350
- Os desenvolvedores agora podem alterar os mapeamentos de Elasticsearch. Anteriormente, os modelos dinâmicos enviados para o servidor Elasticsearch nos mapeamentos padrão eram codificados, o que impedia os desenvolvedores de indexar no Elasticsearch quaisquer dados extras associados a um módulo personalizado. GitHub-24363
- Os campos de pesquisa (minipesquisa de formulário) agora funcionam como esperado quando as Sugestões de pesquisa estão desativadas. GitHub-30584
Envio
- O aplicativo agora atualiza o preço de envio conforme esperado quando um comprador navega de volta para a página do carrinho depois de excluir um produto durante o checkout com vários endereços.
- O aplicativo agora exibe o preço de envio ajustado correto quando alguns itens no carrinho se qualificam para frete gratuito. Anteriormente, quando um subconjunto de itens no carrinho se qualificava para envio gratuito, o aplicativo não ajusta o preço do envio e exibia o preço total do envio ao comprador.
- Os administradores restritos a um site específico agora podem criar uma remessa para um pedido feito no mesmo site. Anteriormente, o aplicativo gerava essa exceção quando um administrador sem permissão para o modo de exibição de loja padrão tentava enviar um pedido que foi colocado em um modo de exibição de loja ao qual o administrador tinha acesso:
Notice: Undefined offset: 1 in /app/code/Magento/Catalog/Model/Product/Attribute/Backend/GroupPrice/AbstractGroupPrice.php on line 293
.
- O aplicativo agora leva em conta os descontos relevantes da regra de preço do carrinho ao determinar se um pedido atende às condições para frete gratuito da DHL.
- As etiquetas de remessa agora usam a moeda base como esperado em vez da moeda do pedido para lojas que suportam várias moedas quando um pedido é colocado em uma moeda não base. GitHub-31891
- O aplicativo agora exibe o subtotal correto do pedido quando um comprador retorna à página do carrinho durante o checkout após sair da página de vários envios. GitHub-31889
- A edição de informações de faturamento durante a criação do pedido de Admin não altera mais as informações de envio de clientes com endereços de envio e faturamento padrão diferentes. GitHub-31786
- O aplicativo não desmarca mais a caixa de seleção Anexar comentários quando um comprador clica em Obter métodos e taxas de envio e seleciona um método de envio ao criar um pedido com o Administrador. GitHub-30256
- Os compradores agora podem usar o botão Voltar do navegador para retornar à página Selecionar método de envio ao fazer check-out de um pedido com vários endereços. Anteriormente, o aplicativo exibia a página Selecionar método de envio corrompida. GitHub-30268
- A quantidade do produto agora permanece inalterada conforme esperado depois que um comprador altera a quantidade na página Enviar para vários endereços e clica no botão Voltar do navegador. GitHub-31956
- Os encargos do método de envio com taxa uniforme não se tornam mais zero quando uma regra de preço do carrinho é aplicada durante a finalização da compra. GitHub-21832
- O aplicativo não emite mais um erro quando um comerciante tenta enviar um pedido usando DHL quando a caixa de seleção Criar rótulo de remessa está habilitada e o nome do produto contém caracteres unicode. Anteriormente, o aplicativo exibia este erro ao solicitar a criação do rótulo:
The response is in wrong format
. GitHub-31032
- Você pode fazer um pedido com êxito do Administrador em uma implantação multissite na qual o
United States
está habilitado em um site e oDisable all countries
está habilitado como escopo padrão no outro site. Anteriormente, o aplicativo não colocava o pedido e exibia este erro:Please check the shipping address information. "regionId" is required. Enter and try again
. GitHub-30577
Estágios
- O recurso Agendar atualização de bloco agora funciona conforme esperado em implantações que implementam o Fastly. Anteriormente, o aplicativo não atualizava o conteúdo do bloco porque as tags de cache do Fastly não eram invalidadas e o Fastly continuou a fornecer conteúdo desatualizado.
- A pré-visualização do preparo da regra de preço do carrinho agora é carregada no site apropriado quando atribuída a várias exibições de loja do site. Anteriormente, a pré-visualização do preparo da regra de preço do carrinho era carregada na exibição de loja padrão, independentemente dos sites atribuídos.
- Preços especiais para produtos na exibição de loja não padrão agora são definidos como o valor padrão, conforme esperado, após o término de uma atualização agendada.
- Os comerciantes agora podem salvar com êxito um produto baixável com uma amostra vinculada da página de produto baixável depois de criar uma atualização de preparo futura com uma data de término. Anteriormente, o aplicativo não salvava o produto e exibia esta mensagem:
The downloadable sample isn't related to the product. Verify the link and try again
. GitHub-488
- O aplicativo não executa mais grandes consultas de banco de dados que incluem todas as IDs de produto durante a pré-visualização de uma atualização programada de uma categoria. Em vez disso, o filtro de categoria é aplicado à coleção de produtos para criar uma tabela temporária para pré-visualizações da categoria. Anteriormente, o aplicativo inseria todos os produtos em uma tabela temporária para a pré-visualização de preparo, o que degradava o desempenho.
- O módulo
Magento_SalesRuleStaging
não dispara mais erros durante a atualização da versão 2.3.x.
- O aplicativo agora exibe as condições da regra de catálogo com dados corretos quando você exibe uma atualização de programação. Anteriormente, se você visualizava uma atualização de agendamento criada com condições, o aplicativo não exibia condições ou exibia condições com dados incorretos.
- A caixa de seleção Usar valor padrão para um produto permanece marcada depois que uma atualização agendada é desmarcada antes da atualização.
- As regras de preço de catálogo agora se aplicam conforme esperado a produtos com valores de atributo indefinidos. Anteriormente, os descontos criados por meio de uma regra de preço de catálogo não eram aplicados a produtos com atributos indefinidos. GitHub-461
- Agora as regras do catálogo funcionam conforme esperado em implantações de vários sites com lojas em diferentes fusos horários. Anteriormente, o aplicativo aplicava ou desativava regras de catálogo em todos os sites de uma só vez.
- Os preços de nível não são mais removidos quando uma atualização programada é criada para um site específico.
- Agora é possível salvar um produto na página Produto baixável depois de criar uma atualização de preparo futura com uma data de término. Anteriormente, o aplicativo não salvava o produto e exibia esta mensagem:
The downloadable link isn't related to the product. Verify the link and try again
. GitHub-474
Loja
- O aplicativo não trata mais uma cadeia de caracteres de
0
como um valor vazio ao exibir uma home page de repositório. Anteriormente, o aplicativo tratava um valor inteiro no início de um caminho de solicitação como uma ID de loja, o que tinha efeitos não intencionais no SEO.
- Os plug-ins para
\Magento\Framework\App\ActionInterface
emlib/internal/Magento/Framework/App/Action/Plugin
foram removidos para manter a diretriz de que os plug-ins devem ser usados para personalizar o comportamento de um módulo a partir de outro módulo. GitHub-28050
- O aplicativo agora exibe esta mensagem quando você tenta selecionar
Website
como padrão quandoStore View
é desabilitado durante a criação do site:Please enable your Store View before using this Web Site as Default
. Anteriormente, o site travava e o aplicativo não exibia um alerta.
Imposto
- O aplicativo agora leva em conta o imposto oculto durante a validação do valor mínimo do pedido.
- O aplicativo agora exibe Impostos de produto fixos (FPT) conforme esperado quando um comprador navega de volta para o carrinho de compras e prossegue para o checkout após adicionar produtos de pacote ao carrinho. GitHub-30250
- O aplicativo agora preenche os campos de entrada Número IVA para os endereços de faturamento e de envio da seção Informações de Endereço da página Novo pedido de administrador com números IVA salvos quando um administrador cria um pedido para um cliente existente. GitHub-31846
- O aplicativo agora exibe um campo Número de IVA na página de registro do cliente quando
customer/create_account/vat_frontend_visibility
está habilitado. GitHub-31326
Teste
- Os ambientes de teste foram atualizados para Redis 6.0.12.
CacheCleaner::cleanAll();
removido dos testes de integração. GitHub-31074
- Adição de um teste para esse cenário: os usuários administradores podem editar uma conta de cliente quando o cliente é inscrito em um boletim informativo na fila. GitHub-30645
- Removido o comando
cache:flush
dos testes para melhorar o tempo de execução dos módulosCatalog
,CatalogUrlRewrite
eLoginAsCustomer
. GitHub-31056
- Parâmetros redundantes foram removidos e o POST foi alterado para GET onde necessário em
\Magento\Logging\Model\ProcessorTest::testLoggingProcessorLogsActionShipping
.
Tema
- A página de logon do cliente não exibe mais esta mensagem quando a configuração Mover código JS para a parte inferior da página (Armazenamento > Configurações > Avanço > Desenvolvedor > Configurações do JavaScript) e os cookies estão habilitados:
The store will not work correctly in the case when cookies are disabled
.
- Os links de conta nos cabeçalhos agora seguem os padrões da WCAG. Anteriormente, os links de conta nos cabeçalhos continham IDs duplicadas, o que causava a falha da validação da WCAG.
- O aplicativo agora prioriza a configuração da loja para uma imagem de logotipo da loja em relação à configuração de layout. Anteriormente, o tamanho das imagens de logotipo era fixo e não variava de acordo com o armazenamento.
- O aplicativo agora exibe elementos de página de forma consistente nas páginas da loja que usam temas padrão do Adobe Commerce. Anteriormente, nem todos os estilos eram aplicados no tema em branco, portanto, nem todos os elementos da página eram exibidos nas páginas que usavam esse tema. (Por exemplo, nenhum ícone de lente de aumento estava presente no campo de pesquisa da página Meus pedidos.)
Tradução e códigos de idiomas
- Os colchetes adicionados às cadeias de caracteres não são mais escapados quando a tradução em linha está configurada. Anteriormente, o método
escapeHtmlAttr
convertia os colchetes em códigos de entidade HTML. GitHub-32000
- As frases intraduzíveis no Admin agora podem ser traduzidas. (Essa solicitação de pull contribui para esforços contínuos para tornar todas as sequências de caracteres de Administrador localizáveis.) GitHub-11175
- As cadeias de texto no modelo usadas para gerenciar métodos de pagamento armazenados (Minha Conta > Métodos de Pagamento Armazenados ) agora podem ser traduzidas. GitHub-31211
- Os emails de pedidos enviados pelo administrador agora usam o local da loja, não o local associado à conta do administrador. GitHub-26521
IU
- O rodapé do Administrador agora exibe a versão correta do produto.
- A paginação para origens agora está presente, conforme esperado, durante a criação da remessa do Administrador.
- O filtro de grade de produto agora funciona corretamente quando você usa atributos de data personalizados para filtrar produtos e a localidade do usuário Admin é
en_GB
.
- Os gestos de pinçar para zoom agora funcionam como esperado na lente de aumento da galeria de imagens da página do produto em dispositivos iOS.
- A paginação dos resultados de pesquisa da grade de produto do administrador agora começa na página um para cada pesquisa, conforme esperado.
- As anomalias com a exibição do carrinho de compras quando ampliadas foram resolvidas. Anteriormente, os elementos de exibição se sobrepunham quando esta página era ampliada.
- Problemas de alinhamento com as guias da página de convites de Administrador (Admin Marketing > Vendas Particulares > Convites) foram resolvidos. Anteriormente, a exibição de guia dos convites aceitos por um cliente estava desalinhada. GitHub-333
- A página de revisão do pedido exibida durante o check-out com o Check-out expresso do PayPal agora é carregada com sucesso. Anteriormente, o modelo continha o botão Atualizar método de entrega não utilizado, que estava apenas parcialmente oculto pelo script durante a renderização da página. GitHub-32006
- As estrelas de classificação e o texto de revisão na seção Revisões do cliente da página do produto agora ficam espaçados corretamente quando nomes de classificação longos estão presentes. GitHub-31890
- As opções agora são exibidas conforme esperado na lista suspensa Ações nas páginas Arquivar NFFs, Entregas e Avisos de Crédito.
- O aplicativo agora exibe um valor de hora correto quando a opção
timeOnly
do componentedatetime
está definida como sim. GitHub-23157
- Agora você pode remover uma atualização de layout após criar um novo widget em Admin Conteúdo > Widgets. GitHub-29936
- O botão Remover Atualização de Layout agora funciona conforme esperado em qualquer layout adicionado do Administrador Conteúdo > Widgets. Anteriormente, esse botão não funcionava em nenhum layout diferente do primeiro selecionado ao adicionar vários layouts. GitHub-30286
- O aplicativo agora usa o título de página definido no arquivo de layout como o título da página do navegador para o arquivo de Edição de conta do cliente. Anteriormente, a ação do controlador
Magento\Customer\Controller\Account\Edit
impunha o valor do título da página paraAccount Information
. GitHub-30724
-
As caixas de seleção que permitem aos comerciantes alternar entre mostrar e ocultar senhas foram adicionadas a estas páginas:
- Logon do cliente
- Registro do cliente
- Edição de Cliente (seção Alterar Senha)
- Nova senha definida pelo cliente GitHub-31557
- Removido um cabeçalho redundante nas células de grade que aparecia quando um administrador adicionava um produto a um conjunto de produtos agrupado após alterar o conjunto de atributos. GitHub-30911
- O aplicativo agora exibe um filtro
DateRange
na área Logon da página Cliente > Logon. Anteriormente, o aplicativo exibia um filtroText
. GitHub-30328
- O JavaScript foi removido dos arquivos de modelo e movido para arquivos separados para reduzir os problemas de renderização nas páginas de Administrador. Anteriormente, as páginas de Administração não eram renderizadas corretamente em implantações nas quais a minificação de HTML tinha sido habilitada. O aplicativo exibiu este erro:
An error has happened during application run. See exception log for details
. GitHub-32454
- O widget
dropdownDialog
agora carrega somente asjquery-ui
partes arrastáveis e redimensionáveis de que necessita. Anteriormente, carregava grandes quantidades de código desnecessário, o que aumentava o tempo de carregamento e reduzia o desempenho. GitHub-32810
Substituições de URL
- As substituições de URL de produto para um site específico em uma implantação multissite agora são geradas conforme esperado depois que os produtos são atribuídos a um site por atualização em massa.
- O aplicativo agora gera corretamente o caminho da URL para categorias secundárias quando a caixa de seleção Usar valor padrão da chave de URL está habilitada para a categoria principal. Anteriormente, mover uma categoria na hierarquia resultava em um valor
url_path
incorreto ao usar chaves de URL diferentes em uma implantação de exibição de vários armazenamentos. GitHub-16202
- O aplicativo agora atualiza o
url_path
da categoria atribuída a todo o escopo de armazenamento quando você move uma categoria na hierarquia de categorias. Anteriormente, mover uma categoria na hierarquia resultava em umurl_path
incorreto.
- Agora, os redirecionamentos de URL criados pelo Administrador usando um URL personalizado funcionam com sucesso. Anteriormente, o GraphQL armazenava a resposta em cache de uma consulta do GraphQL
urlResolver
e retornava o valor antigo após a atualização de regravação da URL.
- As substituições de URL de produto agora são removidas conforme esperado quando um produto é removido de um site. GitHub-24184
- Adicionada uma referência
main_table
astore_id
na funçãoaddStoreFilter
da coleçãoapp/code/Magento/UrlRewrite/Model/ResourceModel/UrlRewriteCollection.php
. Anteriormente, ocorriam problemas sempre que umjoin
era adicionado à coleção em uma tabela que também continha uma colunastore_id
. GitHub-31853
- O ponto de extremidade REST
PUT /V1/products/:sku
agora gera novamente as substituições de URL do produto, conforme esperado. Anteriormente, o ponto de extremidade gerou novamente os valores do produtourl_key
, mas não substituiu a URL. GitHub-30316
Usuário
- Agora você pode salvar uma nova função de usuário efetiva (Admin Sistema > Permissões > Funções de Usuário) com toda a árvore
Catalog
selecionada, excetoEdit Product Design
( Catálogo > Inventário > Produtos > Editar Design de Produto). Anteriormente, o aplicativo não salvava alterações de produto feitas por um usuário nesta função e exibia este erro:Not allowed to edit the product's design attributes
. GitHub-31973
- O aplicativo agora usa o modelo de email personalizado correto ao gerar emails para novos administradores. Anteriormente, o aplicativo utilizava o antigo modelo padrão, o que omitiu os primeiros e sobrenomes do administrador.
- O aplicativo agora usa o modelo de email correto ao enviar emails para novos usuários. Anteriormente, o aplicativo aplicava o modelo padrão mesmo quando um modelo personalizado era selecionado.
VersionCMS
- O aplicativo agora aplica o tema correto a um página CMS após a alteração do layout. Anteriormente, o aplicativo alterava o tema atribuído ao Luma depois que você salvava as alterações de layout, independentemente do tema atribuído ao página.
- Administradores com funções restritas agora podem adicionar, atualizar ou duplicado com sucesso as páginas às quais ele tem acesso que são atribuídas a um nó de hierarquia. Anteriormente, o aplicativo exibia um erro fatal sob essas condições.
Vídeo
- Os vídeos agora estão disponíveis na galeria de produtos, conforme esperado, quando o agrupamento avançado do JavaScript é ativado e usado. GitHub-32501
- Os vídeos do YouTube para produtos simples que pertencem a um produto configurável agora funcionam conforme esperado. Anteriormente, as imagens eram ordenadas por ID em vez da posição. Consequentemente, alguns vídeos foram tratados como imagens. GitHub-29690
Visual Merchandiser
- O desempenho das cargas da página de categoria de Administrador com o Visual Merchandiser melhorou. O carregamento de páginas de categoria de Administrador não gera mais grandes consultas de banco de dados.
Estrutura da API da Web
- A API do catálogo agora atualiza corretamente os valores de opção personalizados de um produto adicionando novos valores e removendo valores antigos. Anteriormente, a API não excluía os valores antigos.
- O POST
/V1/guest-carts/:cartId/billing-address
agora retorna a ID do endereço como um inteiro, não uma sequência de caracteres.
Restrição de site
- Os compradores agora são redirecionados para a página que estavam tentando acessar antes de serem solicitados a fazer logon. Anteriormente, nas implantações em que as restrições de site eram habilitadas e o Modo de Restrição estava definido como Vendas Privadas: Somente Logon, os compradores eram redirecionados para a home page da loja.
Widget
- Agora, um administrador pode excluir todas as atualizações de layout de um widget. Anteriormente, quando um widget tinha várias atualizações de layout, um administrador podia excluir apenas o primeiro.
- Clicar no botão Adicionar ao carrinho no widget do produto não resulta mais em um recarregamento de página. Anteriormente, clicar no botão Adicionar ao carrinho em um widget de produto fazia com que a página atual fosse recarregada antes de o produto ser adicionado ao carrinho.
- O widget de link do nó de hierarquia do CMS no TinyMCE agora renderiza links de hierarquia conforme esperado quando o campo Texto personalizado de âncora está vazio.
Lista de desejos
- O aplicativo não redefine mais as configurações de um produto definível quando você clica no botão Editar item para o produto de uma lista de desejos. GitHub-32119
- O aplicativo agora exibe o preço correto do produto ao atualizar um produto com uma opção de arquivo personalizável na lista de desejos. Anteriormente, o aplicativo exibia o preço incorreto do produto e não exibia um link para o arquivo carregado.
- A contagem total de produtos em uma lista de desejos para um cliente com várias listas de desejos agora corresponde ao número de itens na lista de desejos. Anteriormente, os produtos indisponíveis eram incluídos na contagem total de produtos.
- O aplicativo agora remove um produto de uma lista de desejos depois de adicioná-lo a um pedido. GitHub-30260
- Os compradores agora podem adicionar produtos relacionados ao carrinho de compras de uma lista de desejos. Anteriormente, o aplicativo adicionava somente o produto configurável, não o produto configurável e seus produtos relacionados, quando um comprador clicava no link Selecionar tudo da seção Produtos Relacionados. GitHub-32274
Problemas conhecidos
Problema: erro do JavaScript quando o reCAPTCHA está desabilitado. Se o reCAPTCHA estiver desativado para check-out, o check-out continuará, mas o aplicativo exibirá um erro Uncaught TypeError
no log do console. Esse problema será corrigido em uma versão posterior.
Problema: Erro na Política de Segurança de Conteúdo. A loja exibe o seguinte erro no log de console: The Content-Security-Policy directive frame-ancestors does not support the source expression unsafe-inline
. O desempenho da vitrine não é afetado.
Problema: Anomalias na exibição de valores de cartão-presente do PayPal Credit. Quando o Crédito do PayPal é ativado e vários valores de cartão-presente são configurados, se um comprador alterar o valor de um cartão-presente, a loja não atualizará o valor dos pagamentos parcelados. Uma correção para esse problema será incluída no Adobe Commerce 2.4.4 e Magento Open Source 2.4.4.
Problema: O botão Adicionar ao pedido não funciona para produtos adicionados ao carrinho pelo SKU. o aplicativo exibe esta mensagem de erro quando você clica no botão Adicionar ao pedido depois de adicionar produtos ao pedido por SKU: An error has happened during application run
. Os produtos não são adicionados ao carrinho. Solução alternativa: usar o recurso Adicionar Produtos.
Problema: as consultas category
e categoryList
do GraphQL ignoram permissões de Categoria que determinam se as categorias em um catálogo compartilhado estão ocultas ou expostas. Atualmente, a loja exibe todas as categorias que foram atribuídas ou não ao catálogo compartilhado. Isso afeta as implantações do Adobe Commerce 2.4.3 que implementam uma vitrine de PWA para a qual catálogos compartilhados B2B foram ativados.
Contribuições da Comunidade
Estamos gratos à comunidade Magento Open Source mais ampla e gostaríamos de reconhecer suas contribuições para esta versão.
A equipe de Engenharia da Comunidade Magento Contributors mantém uma lista dos principais colaboradores individuais e parceiros por mês, trimestre e ano. Nessa página de Contribuidores, você pode seguir os links para as PRs mescladas no GitHub.
Contribuições do parceiro
A tabela a seguir destaca as contribuições feitas pelos Parceiros. Esta tabela lista o Parceiro que contribuiu com a solicitação de pull, a solicitação de pull externa e o número do problema do GitHub associado a ela (se disponível).
Contribuições individuais do contribuinte
A tabela a seguir identifica as contribuições dos membros da comunidade. Esta tabela lista as solicitações de pull externas, o número do problema do GitHub associado a ela (se disponível) e o membro da comunidade que contribuiu com a solicitação de pull.
Requisitos do sistema
Nossa pilha de tecnologia é construída em PHP e MySQL. Para obter mais informações, consulte Requisitos do Sistema.
Instruções de instalação e atualização
Você pode instalar o Adobe Commerce 2.4.3 usando o Composer.
Kits de ferramenta de migração
A Ferramenta de migração de dados ajuda a transferir os dados de armazenamento existentes do Magento 1.x para o Magento 2.x. Essa interface de linha de comando inclui funções de verificação, rastreamento de progresso, registro e teste. Para obter instruções de instalação, consulte Instalar a Ferramenta de Migração de Dados. Considere explorar ou contribuir para o repositório de Migração de Dados.
O Kit de Ferramentas de Migração de Código ajuda a transferir as extensões e personalizações do armazenamento do Magento 1.x existente para o Magento 2.x. A interface de linha de comando inclui scripts para converter módulos e layouts do Magento 1.x.