Notas de versão do Adobe Commerce 2.4.2
O Adobe Commerce 2.4.2 apresenta melhorias de desempenho e segurança, além de melhorias significativas na plataforma. Os aprimoramentos de segurança incluem a expansão do suporte para o atributo SameSite
para todos os cookies. As melhorias B2B se concentram no suporte para pagamentos online para ordens de compra. Elasticsearch 7.9.x e Redis 6.x agora são suportados.
Esta versão inclui mais de 280 novas correções para o código principal e 35 aprimoramentos de segurança. Ele inclui a resolução de quase 290 problemas do GitHub por membros da nossa comunidade. Essas contribuições da comunidade variam desde uma pequena limpeza do código principal até melhorias significativas no GraphQL.
Todos os problemas conhecidos identificados na versão 2.4.1 foram corrigidos nessa versão.
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.
Patch de segurança disponível
Os comerciantes agora podem instalar correções de segurança com prazo confidencial sem aplicar as centenas de correções e aprimoramentos funcionais que uma versão trimestral completa oferece (por exemplo, 2.4.1-p1). O Patch 2.4.0.12 (Pacote do Composer 2.4.1-p1) é um patch de segurança que fornece correções para vulnerabilidades identificadas na versão anterior trimestral, 2.4.1. Todos os hot fixes aplicados à versão 2.4.1 estão incluídos neste patch de segurança. (Um hot fix fornece uma correção para uma versão lançada que aborda um problema ou erro específico.)
Para obter informações gerais sobre patches de segurança, consulte Introdução à Nova Versão do Patch de Segurança. Para obter instruções sobre como baixar e aplicar patches de segurança (incluindo o patch 2.4.1-p1), consulte Instalação rápida no local. Os patches de segurança incluem apenas correções de bugs de segurança, não as melhorias de segurança adicionais incluídas no patch completo.
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.
Destaques
Procure os seguintes destaques nesta versão.
Aprimoramentos substanciais de segurança
Esta versão inclui mais de 35 correções de segurança e melhorias na segurança da plataforma. Todas as correções de segurança tiveram backport para 2.4.1-p1 e 2.3.6-p1.
Mais de 35 aprimoramentos de segurança que ajudam a fechar as vulnerabilidades de execução remota de código (RCE) e criação de script entre sites (XSS)
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 para esta versão incluem:
-
Todos os cookies principais agora oferecem suporte ao atributo
SameSite
. -
O aplicativo agora exibe mensagens que identificam conteúdo potencialmente mal-intencionado nos campos de descrição do produto e da categoria quando o usuário tenta salvar valores nesses campos.
-
As operações do sistema de arquivos nos Componentes foram padronizadas e fortalecidas para evitar uploads mal-intencionados.
-
As violações da Política de Segurança de Conteúdo (CSP) principal foram corrigidas.
Melhorias na infraestrutura
Esta versão inclui aprimoramentos na qualidade principal, que melhoram a qualidade da Estrutura e estas áreas funcionais: Conta do cliente, Catálogo, CMS, OMS, Importação/Exportação, Promoções e direcionamento, Carrinho de compras e Check-out, B2B e Preparo e Pré-visualização.
Aprimoramentos na plataforma
-
Agora há suporte para Elasticsearch 7.9.x. Embora seja recomendável executar o Elasticsearch 7.9.x, a versão 2.4.x permanece compatível com o Elasticsearch 7.4.x.
-
A versão 2.4.2 foi testada com Verniz 6.4. A versão 2.4.x permanece compatível com o Varnish 6.x.
-
Agora há suporte para o Redis 6.x. A versão 2.4.x permanece compatível com o Redis 5.x.
-
A versão 2.4.2 agora é compatível com o Composer 2.x. Recomendamos que os comerciantes migrem para o Composer 2.x. Embora você possa instalar esta versão usando o Composer 1.x, o Composer 1.x logo chegará ao fim da vida útil. Para obter uma visão geral dos recursos do Composer 2.x, consulte O Composer 2.0 já está disponível!
A capacidade de configurar uma instalação para usar um banco de dados dividido foi descontinuada nesta versão. Os comerciantes que atualmente usam o banco de dados dividido devem começar a planejar a reversão para um único banco de dados ou a migração para um único banco de dados ou usar uma abordagem alternativa. Consulte a publicação Deprecation of split database no Adobe Commerce DevBlog para obter uma visão geral desse problema. Consulte Reverter de um banco de dados dividido para um único banco de dados para obter instruções de migração.
Aprimoramentos de desempenho
Esta versão inclui aprimoramentos de código que aumentam o desempenho da API e o tempo de resposta do administrador para implantações com catálogos grandes. Várias melhorias de escalabilidade permitem que a versão 2.4.2 ofereça suporte nativo a catálogos complexos até 20 vezes maior do que nas versões anteriores.
GraphQL
Esta versão inclui a cobertura da GraphQL para os seguintes recursos:
-
Adição de suporte para várias listas de desejos. Você pode usar o GraphQL para criar, excluir e renomear listas de desejos, bem como mover ou copiar itens entre elas.
-
Adição de suporte para autorizações de mercadoria retornada (RMA). Os compradores podem solicitar um retorno. Se o comerciante aceitar a solicitação, ele poderá executar tarefas como adicionar um comentário e adicionar informações de rastreamento.
-
Adição de suporte para os seguintes recursos B2B:
- Empresas. Você pode adicionar administradores, usuários, funções e equipes da empresa.
- Crédito da empresa. A consulta de empresa inclui detalhes sobre o histórico de crédito da empresa.
- Listas de requisições. Você pode criar, excluir e atualizar listas de requisições. O suporte também inclui a capacidade de adicionar, atualizar, excluir, copiar e mover itens em uma lista de requisições, bem como de adicionar itens de lista de requisições ao carrinho.
-
Suporte adicionado para uniões na GraphQL. GitHub-29425
-
Adicionado suporte para listas de comparação. Os compradores podem criar e excluir listas de comparação e adicionar e remover itens para as listas de comparação. Além disso, os compradores que criam uma lista de comparação como convidado podem fazer logon como cliente e manter suas listas de comparação.
-
Adicionada a mutação
generateCustomerTokenAsAdmin
e atualizado o objetoCustomer
para oferecer suporte à assistência à compra remota. -
Adição de suporte à localização nas lojas para suportar tarefas como alteração de idiomas, carrinhos e moedas.
-
O esquema do GraphQL foi aprimorado para otimizar a recuperação de dados de produtos para produtos configuráveis com muitas variantes.
-
As IDs de objeto de tipo inteiro foram substituídas em favor de
uid
atributos de ID de tipo. -
Adição do atributo
staging
aoProductInterface
eCategoryInterface
para determinar se um produto é preparado e exibir suas informações de campanha associadas.
Consulte o Guia do Desenvolvedor do GraphQL para obter detalhes sobre esses aprimoramentos.
B2B
O 2.4.2 apresenta o B2B v1.3.1. Esta versão inclui suporte para pagamentos online para pedidos de compra, bem como várias correções de erros.
As ordens de compra agora podem ser concluídas usando os métodos de pagamento online. Os compradores B2B são solicitados a selecionar seu método de pagamento preferido para cada ordem de compra durante o check-out inicial. Depois que a ordem de compra tiver sido aprovada, os compradores serão solicitados a informar detalhes do pagamento para converter a ordem de compra em uma ordem final.
Para suportar um workflow completo para aceitar pagamentos on-line, este recurso também:
-
Substitui os modelos de método de pagamento existentes durante a finalização inicial para manter a conformidade com o PCI.
-
Mantém a compatibilidade com métodos de pagamento desenvolvidos pela comunidade, personalizados e de terceiros.
-
Notifica os compradores por e-mail quando eles precisam adicionar detalhes de pagamento a uma ordem de compra aprovada.
-
Permite a personalização de emails do Administrador, o que permite que os comerciantes usem modelos consistentes com sua marca.
-
Introduz um estado
Approved – Pending Payment
para ordens de compra para mostrar claramente quando uma ação é necessária. -
Impede que códigos de desconto sejam adicionados ou removidos na etapa final de pagamento, o que garante que o valor total do pedido permaneça inalterado para ordens de compra aprovadas.
-
Permite que os compradores alterem o método de pagamento durante a etapa de pagamento final para manter a flexibilidade e aumentar a conversão.
Esta versão também inclui várias correções de erros. Consulte Notas de versão B2B.
PWA Studio
Esta versão do PWA Studio inclui:
-
Internacionalização e localização. O Venia agora oferece suporte para vários idiomas e moedas.
-
Estrutura de extensibilidade aprimorada para oferecer suporte a alterações de código por meio de extensões.
-
Componentes iniciais para recursos relacionados à Minha Conta, como Lista de Desejos, Pagamentos Salvos, Catálogo de Endereços e Histórico de Pedidos.
-
Várias otimizações de desempenho e correções de erros.
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.
Page Builder
Esta versão inclui aprimoramentos na migração de conteúdo do Page Builder e na personalização de CSS do Page Builder:
-
Os desenvolvedores agora podem estilizar a saída do tipo de conteúdo de forma diferente por visor sem usar a diretiva
!important
. -
O conteúdo migrado para o Page Builder não é mais preenchido com o estilo em linha padrão.
-
O Page Builder não exige mais que todos os tipos de conteúdo sejam colocados em uma linha. O estágio do Page Builder agora está inicialmente em branco e oferece suporte à adição dos seguintes tipos de conteúdo diretamente no estágio: Linhas, Colunas, Guias, Código HTML, Blocos, Blocos dinâmicos.
-
Margens e preenchimentos predefinidos não são mais necessários para tipos de conteúdo.
-
O novo seletor de visor móvel e o escopo de visor para valores de campo de formulário permitem que os usuários e desenvolvedores executem estas ações:
-
Visualizar conteúdo em diferentes portas de visualização ao criar.
-
Otimize o parâmetro de campo de altura mínima em diferentes tipos de conteúdo para cada janela de visualização. (Somente um parâmetro (altura mínima) é compatível imediatamente. Desenvolvimento personalizado necessário para habilitar a otimização móvel para outros parâmetros de conteúdo.)
-
Adicionar escopo de campo a campos e conjuntos de campos personalizados (desenvolvedores).
-
Orientação interativa no produto
O Interative In-Product Guidance fornece aos comerciantes dicas de uso e informações do Administrador sobre anúncios de novos recursos, guias passo a passo, informações de integração e dicas de ferramentas. Os administradores devem aceitar a participação do administrador para receber orientação no produto se este recurso não estiver habilitado. Consulte Coleta de Dados de Uso e Uso do Administrador.
Integração do Adobe Stock
Esta versão inclui a Integração do Adobe Stock v2.1.1.
Galeria de mídia
Novos Recursos de Função para Galeria de Mídia. Esta versão oferece aos comerciantes a capacidade de limitar o acesso do administrador somente à galeria de Mídia e controlar quem pode executar estas ações:
-
Inserir ativos de mídia no conteúdo
-
Fazer upload de ativos
-
Editar detalhes de ativos
-
Excluir ativos da Galeria de mídia
-
Gerenciar estrutura de pastas.
Imagens otimizadas para a Web no conteúdo. Os comerciantes agora podem usar representação de imagem otimizada para a Web em conteúdo, em vez de imagens de alta resolução. A imagem original permanece não modificada na Galeria de mídia e a representação da imagem é gerada dinamicamente quando a imagem é inserida no conteúdo.
Aprimoramentos de suporte ao AWS S3
O suporte ao Amazon Simple Storage Service (AWS S3) foi aprimorado para incluir suporte para:
-
Armazenamento de objetos e extensibilidade futura
-
Armazenando arquivos de mídia no AWS S3
O suporte para o AWS S3 foi adicionado a todos os módulos, incluindo a Integração B2B, PageBuilder e Adobe Stock.
Quadro de testes funcionais (MFTF)
O MFTF 3.2.1 já está disponível. Esta versão introduz tolerância a erros na geração de testes e conjuntos de testes. Aprimoramentos adicionais e correções de erros estão descritos no Log de alterações da estrutura de teste funcional.
Sistema Order Management (OMS)
O conector MCOM é totalmente compatível com o 2.4.2. As correções de erros e os aprimoramentos do conector estão descritos nas Notas de versão do Connector. Esta versão inclui aprimoramentos na interface de linha de comando do OMS, que agora fornece informações detalhadas que os parceiros e as equipes de suporte podem usar para solucionar problemas de processos do retry
, queue_prune
, order_sync
, message process
e catalog export
.
Extensões desenvolvidas pelo fornecedor
Consulte os seguintes artigos para obter atualizações sobre recursos e alterações desta versão:
-
Pagamento do Amazon. O Amazon Pay foi descontinuado nesta versão e será removido no Magento 2.5.0. 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.2.
Instalação, atualização, implantação
- A capacidade de configurar uma instalação para usar um banco de dados dividido foi descontinuada nesta versão. Consulte a Descontinuação da funcionalidade de banco de dados dividido na publicação do DevBlog do Adobe Commerce.
- Os comerciantes agora podem atualizar com êxito uma implantação do Open Source que executa MySQL 8.x para uma implantação do Commerce. Anteriormente, o aplicativo lançava uma exceção quando
AUTO_INCREMENT
valores eram revertidos para valores iniciais de todas as tabelas em querow_id
era adicionado durante a atualização.
- O aplicativo agora exibe uma mensagem de erro que identifica o caminho usado para criar o patch se ocorrer um erro durante a execução do
bin/magento/setup:db:generate-patch
. GitHub-27523
- Os caches
block_html
,full_page
elayout
agora estão desabilitados conforme esperado após a execução debin/magento/setup:upgrade
. GitHub-28186
- A versão mínima necessária do PHP em
bootstrap.php
foi atualizada. GitHub-30004
- Agora você pode executar
bin/magento/setup:upgrade
após a instalação dos dados de exemplo. Anteriormente, quando você tentou executarbin/magento/setup:upgrade
, o aplicativo exibia este erro:unable to apply data patch magento\catalogrulesampledata\setup\patch\data\installcatalogrulesampledata for module magento_catalogrulesampledata
. O aplicativo também exibiu este erro no log do sistema:main.ERROR: Sample Data error: Unable to unserialize value. Error: Syntax error
. GitHub-30685
- Agora é possível definir uma chave de API do YouTube na linha de comando, conforme esperado. Anteriormente, o aplicativo retornava este erro quando você tentava executar
bin/magento config:sensitive:set catalog/product_video/youtube_api_key
:There are no sensitive configurations to fill
.
- O aplicativo agora respeita os valores
maxMessages
definidos emqueue_consumer.xml
. Anteriormente, o aplicativo usava apenas os valores de configuração de implantação. GitHub-29522
- A geração de URL para um novo armazenamento agora funciona como esperado quando o armazenamento é criado usando
bin/magento setup:config:import
. Anteriormente, as substituições de URL não eram geradas em ambientes de produção. GitHub-30025
- O aplicativo não exibe mais esta pergunta quando você executa o
bin/magento setup:install
para se conectar ao banco de dados existente:Overwrite the existing configuration for db-ssl-verify?[Y/n]
. GitHub-29612
AdminGWS
- O botão Adicionar nova classificação e os botões Salvar, Excluir, Redefinir não estão mais disponíveis na página Lojas > Atributo > Classificação para um administrador com permissões restritas.
- O Administrador agora exibe dados somente de sites para os quais o administrador conectado tem permissões. Anteriormente, o Administrador exibia dados de todos os sites na implantação.
- Todos os sites selecionados agora são armazenados em
gws_websites
, independentemente do tamanho da ID do site. Anteriormente, as IDs de site eram truncadas e a lista de sites selecionados não era armazenada no banco de dados. As funções de usuário não foram salvas corretamente, e o aplicativo exibiu este erro quando um comerciante tentou alterar e salvar uma função:The "X" store ID is incorrect. Verify the store ID and try again
.
- O aplicativo agora exibe a contagem correta de itens nas grades de administração para usuários administradores restritos. Anteriormente, as contagens exibidas para essas grades refletiam dados de todos os países, enquanto as próprias grades exibiam dados somente de países específicos. (Essa correção corrige um problema nas grades Segmentos de clientes, Regras de preço de catálogo, Regras de preço de carrinho, Todos os usuários, Usuários bloqueados e Funções de usuário.)
- Os administradores cujas permissões excluírem
Magento_Catalog::edit_product_design
(Editar design de produto) agora podem criar um novo produto salvando um produto existente com um novo nome no modo de exibição de loja selecionado. Anteriormente, o aplicativo exibia este erro:Not allowed to edit the product's design attributes
. GitHub-28106
- O aplicativo não exibe mais o botão Adicionar atributo nas páginas em Lojas > Atributos quando um administrador não tem as permissões apropriadas para criar essas entidades. Anteriormente, o aplicativo exibia um erro 404 quando um administrador de site que não tinha as permissões apropriadas tentava criar um Conjunto de Atributos ou um Cliente atributo.
- O aplicativo não lança mais um erro quando você tenta alterar o
backend-frontname
usando o contêinerssh
após instalar o Adobe Commerce. GitHub-26762
Integração do Adobe Stock
- Adicionado suporte para leitura de
exif_image.png
ouexif-image.jpeg
metadados. GitHub-1449
- O conteúdo exibido ao clicar no marcador Exibição padrão da Galeria de mídia não é mais filtrado. Anteriormente, o modo de exibição padrão continha um filtro aplicado do aplicador
url-filter
. GitHub-1813, GitHub-1789, GitHub-1780
- A lógica foi removida do controlador WYSIWYG OnInsert (
Magento\Cms\Controller\Adminhtml\Wysiwyg\Images\OnInsert::execute()
) e adicionada ao modeloModel\Wysiwyg\Images\PrepareImage::execute()
. GitHub-1504
- A emulação de área foi removida do comando
media-content:sync
(\Magento\MediaContentSynchronization\Console\Command\Synchronize::execute
). GitHub-1784
Analytics
- Os Relatórios avançados agora funcionam como esperado em vários ambientes no mesmo domínio. Anteriormente, os arquivos CSV gerados pelos Relatórios avançados falhavam porque as aspas duplas eram evitadas com barras invertidas em vez de com outras aspas duplas, conforme exigido pelo padrão CSV RFC4180.
- O trabalho
analytics_collect_data
agora é executado com êxito ao usar a porta padrão ou não padrão para se conectar ao MySQL emenv.php
. Anteriormente, oanalytics_collect_data
exibia um erro quando você usava a porta não padrão.
- Os arquivos CSV gerados por
analytics_collect_data
agora são escapados corretamente. Anteriormente, esses arquivos não eram gerados com o escape correto, o que impedia a geração de relatórios de Inventário.
Braintree
-
Os compradores agora podem usar o Apple Pay para fazer um pedido de produtos virtuais com êxito. Anteriormente, o aplicativo exibia este erro:
There are no shipping methods available for you right now. Please try again or use an alternative payment method
. -
O método de pagamento padrão do Check-out expresso do PayPal agora funciona conforme esperado com o método de pagamento do Cartão de Crédito Braintree. Anteriormente, o aplicativo não exibia o botão PayPal quando o método de pagamento com Cartão de Crédito Braintree era habilitado.
Produtos do pacote
- O aplicativo não define mais os preços dos itens filho do produto de pacote de preço fixo entre aspas.
- A classificação de preços agora funciona conforme esperado quando os produtos de pacote incluem produtos indisponíveis. Anteriormente, a classificação do preço em ordem decrescente não exibia os produtos em ordem decrescente de preço.
- O aplicativo agora aplica automaticamente uma quantidade padrão de 1 para opções de pacote de produtos quando muitas opções existem. Anteriormente, os comerciantes tinham que atribuir manualmente uma quantidade padrão a cada opção.
- A página de criação da fatura do pedido agora exibe os produtos secundários para produtos de pacote conforme esperado. GitHub-27350
- O aplicativo agora atribui preços de produtos corretos quando você recompra produtos simples que fazem parte de um pacote de produtos com um preço personalizado. Anteriormente, a definição de um preço personalizado em um pacote de produtos resultava em preços incorretos em produtos simples anexados quando resolicitados. GitHub-30343
- Chamar o POST
/V1/order/{orderId}/ship
para enviar um pedido que contém um produto de pacote agora marca o pedido como concluído conforme esperado. Anteriormente, o aplicativo exibia esta mensagem de erro:You can't create a shipment without products
. GitHub-9762
Carrinho e check-out
- O avaliador de método de envio agora funciona conforme esperado quando atributos de endereço personalizados estão presentes na etapa de envio do fluxo de trabalho de finalização. Anteriormente, o aplicativo exibia esta mensagem de erro:
{"message":"Error occurred during \"custom_attributes\" processing. A custom attribute is specified with a missing attribute code. Verify the code and try again."}
GitHub-27505
- O aplicativo agora exibe a mensagem
You have no items in your shopping cart
no minicarrinho como esperado quando um comprador remove o único item em seu carrinho. Anteriormente, os dados do carrinho não eram atualizados paracheckout/cart/removeFailed
quando um comprador removia o único item, e o aplicativo exibia esta mensagem:1 product requires your attention
.
- O aplicativo não exibe mais o custo de envio de um pedido para um método de envio não aplicável. Anteriormente, o aplicativo exibia um preço de 0 para um método de envio não aplicável no workflow de finalização da compra.
- O endereço de cobrança padrão de um cliente agora é selecionado quando a caixa de seleção Meu endereço de cobrança e de remessa são iguais no fluxo de trabalho de check-out não está selecionada.
- Os administradores podem adicionar um produto a um carrinho de compras por SKU do administrador sem serem redirecionados para longe do administrador. O administrador não é mais redirecionado para uma página da loja e o aplicativo exibe o produto na seção Itens do carrinho de compras do administrador, conforme esperado.
- O aplicativo agora exibe mensagens de erro informativas quando você faz upload de um arquivo CSV que contém vários tipos de erros ao adicionar produtos ao carrinho por SKU. Anteriormente, o aplicativo exibia uma página em branco e uma mensagem de erro genérica ao clicar em Escolher Arquivo em Gerenciar Carrinho de Compras > Adicionar ao Carrinho de Compras por SKU.
- O conteúdo do carrinho não é mais perdido quando um comprador muda de uma loja para outra em um domínio diferente.
- Os compradores agora podem concluir com êxito um pedido usando Check-out com vários endereços ao usar vários métodos de envio. Anteriormente, o aplicativo exibia este erro:
There has been an error processing your request
. GitHub-30197
- O aplicativo agora exibe o país padrão correto na página de remessa do fluxo de trabalho de check-out quando o comprador altera a exibição da loja do carrinho de compras.
- O aplicativo agora exclui a sessão atual ao limpar as sessões do cliente após uma redefinição de senha pós-logout quando um comprador convidado está conectado. Anteriormente, o aplicativo esvaziava o carrinho de compras quando o comprador redefinia a senha.
- O aplicativo agora exibe o país padrão correto para uma exibição de loja quando um comprador altera a exibição da loja no carrinho de compras. Anteriormente, quando a visualização de loja era alterada no carrinho, o país padrão estava incorreto.
- A sequência na qual as permissões do catálogo são configuradas não impede mais que administradores com as permissões corretas adicionem produtos ao carrinho. Anteriormente, o aplicativo não verificava as definições de configuração
addToCart
para o grupo de clientes atual. Como resultado, quando um administrador tentou adicionar um produto ao carrinho, o aplicativo emitiu um erro.
- As chamadas redundantes para o endpoint
/rest/V1/guest-carts/cart_id/totals-information
no carrinho foram removidas, o que melhorou o desempenho do carrinho. Anteriormente, quando um comprador adicionava um produto ao carrinho e, em seguida, visualizava o carrinho, o aplicativo chamava o métodocollectAddressTotals
várias vezes.
- O aplicativo não exibe mais o campo Região para um país no fluxo de trabalho de check-out quando a configuração Permitir para Escolher Estado se for Opcional para o País está desabilitada. GitHub-30747
- O aplicativo não repete mais um endereço de envio no fluxo de trabalho de finalização da loja quando um pedido é reordenado pelo administrador.
- Correção de problemas com o design de
AdminMediaGalleryInsertLargeImageFileSizeTest
.
- Todos os novos registros na tabela
quote
para convidados agora recebem um valor 1 nacustomer_is_guest field
. Anteriormente, para cada novo convidado que adicionava um produto ao carrinho, o registro recebia um 0 no campoquote.customer_is_guest
.
- O botão Enviar na seção Revisar e Pagamentos do fluxo de trabalho de check-out foi movido para dentro de
<form id="purchaseorder-form"...></form>
, o que torna possível o envio implícito de formulários sem alterar qualquer JavaScript. GitHub-27925
- O aplicativo não exibe mais o campo Região no fluxo de trabalho de check-out quando a configuração Permitir para Escolher Estado se for Opcional para o País está desabilitada. GitHub-30747
- O aplicativo agora atualiza corretamente o subtotal do item do carrinho quando um comprador clica em Atualizar carrinho de compras ao fazer check-out com vários endereços. GitHub-30408
- O aplicativo não lança mais uma exceção quando existem
config.xml
nós para métodos de pagamento não instalados no momento. Anteriormente, o aplicativo lançava uma exceção durante o check-out. GitHub-29555
- O aplicativo agora renderiza corretamente nomes de produtos que contêm caracteres especiais no minicarrinho. GitHub-29075
- O aplicativo agora define o pacote de desconto correto para a taxa de tabela. Anteriormente, o aplicativo não aplicava uma regra de carrinho que definia um desconto no carrinho ao calcular a taxa da tabela. GitHub-30169
Regra de preço do carrinho
- As regras de preço do carrinho agora são aplicadas conforme esperado quando os subtotais do pedido são calculados sem incorporar imposto. A nova opção
Subtotal (Incl. Tax)
foi adicionada como uma condição de regra de preço de carrinho.
- A aplicação de uma regra de preço com um cupom usando o GraphQL agora funciona como esperado quando a ação Desconto de valor fixo para carrinho inteiro é usada.
Catálogo
- O aplicativo agora exibe todos os produtos reativados na loja, conforme esperado. Anteriormente, quando um produto era desativado e depois reativado, o aplicativo não exibia o produto até que o cache da página Verniz fosse limpo ou a loja fosse reindexada, pois o cache da página não era invalidado após a reativação de um produto.
- A reindexação parcial de catálogos grandes agora funciona conforme esperado. Anteriormente, os produtos desapareciam aleatoriamente da página de categoria da loja durante a reindexação com o indexador parcial
catalogsearch_fulltext
.
- Os compradores agora podem resolicitar um pedido faturado de um produto com opções personalizáveis, conforme esperado. Anteriormente, o aplicativo exibia este erro quando um comprador tentava reordenar:
{"0":"The product's required option(s) weren't entered. Make sure the options are entered and try again
.
- Agora você pode definir com êxito a configuração Layout na página Design da categoria como Nenhuma atualização de layout. Anteriormente, o aplicativo revertia para Categoria - LarguraTotal quando você atribuiu o valor Nenhuma atualização de layout.
- Problemas com a ordem de classificação de produtos na loja foram resolvidos. Anteriormente, quando o aplicativo indexava os preços dos produtos, ele ocasionalmente definia o
min_price
e omax_price
de um produto configurável como 0 na tabelacatalog_product_index_price
, o que afetava a ordem de classificação de preço na loja.
- O aplicativo agora atualiza com êxito os atributos rotulados como
Product Type
. Anteriormente, como o atributoproduct_type
estava reservado no código, o aplicativo exibia esta mensagem quando você tentava atualizar um atributoProduct Type
:An attribute with the same code (product_type) already exists.
- O aplicativo não altera mais a posição de um vídeo carregado na seção Imagens e vídeos da página de detalhes do produto quando você o salva. Anteriormente, um valor de índice era atribuído à nova posição de imagem (posição na lista) e, se as posições de imagem existentes não estivessem alinhadas aos seus valores de índice, a nova imagem era colocada incorretamente na lista.
- A funcionalidade Adicionar ao carrinho agora funciona conforme esperado sempre que o botão Adicionar ao carrinho está disponível para clicar. Anteriormente, se você clicava nesse botão várias vezes enquanto aguardava o carregamento de uma página de produto, o aplicativo exibia o seguinte erro:
Invalid Form Key. Please refresh the page
.
- O aplicativo não libera mais o cache de categoria quando um comerciante adiciona ou remove produtos desativados de ou para uma categoria. Anteriormente, o aplicativo liberava o cache para categorias relacionadas apesar do status do produto. As categorias também não eram atribuídas quando uma categoria era salva, o que resultava na liberação do cache de categorias.
- A filtragem de produtos de catálogo no escopo Todas as exibições de loja agora funciona corretamente. Anteriormente, os produtos com status
Enabled
ouDisabled
eram exibidos na grade ao filtrar apenas produtos habilitados ou desabilitados.
- A reindexação parcial não resulta mais em produtos perdidos e categorias vazias.
- A reorganização agora funciona como esperado quando Usar Calendário do JavaScript está habilitado (Lojas > Configuração > Catálogo > Opções Personalizadas de Data e Hora). Anteriormente, quando esta configuração era habilitada, o aplicativo exibia este erro quando você tentava reordenar o pedido feito anteriormente do Administrador:
Please specify date required option(s)
.
- O aplicativo agora exibe a moeda correta em implantações de vários sites durante a criação do preço da camada.
- Os atributos personalizados de imagem do produto agora são escapados corretamente. O atributo
data-src
tem o mesmo valor que o atributosrc
, conforme esperado. Anteriormente, os símbolos especiais de URL eram escapados.
- Atualizar uma categoria por meio da API REST não desabilita mais a configuração Usar valor padrão nos atributos Habilitar categoria, Incluir no menu e Chave de URL.
- Habilitar permissões de categoria do administrador não resulta mais em falha ao armazenar páginas de categoria em cache de página inteira durante visitas repetidas à página de categoria. Anteriormente, as visitas subsequentes à página não eram fornecidas do cache conforme esperado e o desempenho era degradado.
- Salvar uma categoria agora libera somente o cache de blocos relacionado a essa categoria. Anteriormente, o aplicativo liberava o cache para todos os blocos de categoria.
- O preço de uma opção personalizada com um preço percentual agora é convertido conforme esperado na moeda base da loja ativa em implantações de várias lojas. Anteriormente, o preço de uma opção personalizada com um preço percentual era convertido incorretamente. GitHub-26432
- O aplicativo agora recria imagens com êxito, e essas imagens ficam visíveis no Administrador como esperado sempre que um comerciante envia dados da galeria de mídia usando o POST
rest/all/V1/products
. Anteriormente, o aplicativo recriava as imagens, mas as excluía quando um comerciante enviava dados da galeria de mídia via POSTrest/all/V1/products
se as imagens fossem excluídas empub/media
, mas ainda havia registros na mídia que continham registros para essas imagens. Como resultado, o comerciante viu apenas espaços reservados no Administrador, pois as imagens foram criadas e excluídas durante o processo de atualização.
- Os registros agora são excluídos conforme esperado quando você desatribui um item de um site. Anteriormente, as imagens eram duplicadas quando o POST
rest/all/V1/products
era executado.
- A chamada
/V1/categories/{categoryId}/products
agora retorna uma lista de todos os produtos que pertencem à categoria pai, conforme esperado. Anteriormente, se um produto pertencia a mais de uma subcategoria da categoria principal, o aplicativo exibia este tipo de erro:Internal Error. Details are available in the application log file. Report ID: webapi-5f8579e37db54
. GitHub-30461
- O ponto de extremidade REST
/V1/products/attributes/:attributeCode/options
agora dá suporte à atualização de uma opção de atributo existente.
- O preço de uma opção personalizada com um preço percentual agora é convertido conforme esperado na moeda base da loja ativa em implantações de várias lojas. Anteriormente, o preço de uma opção personalizada com um preço percentual era convertido incorretamente. GitHub-26432
- Os comerciantes agora podem salvar com sucesso um novo atributo durante a criação do produto. Anteriormente, o aplicativo não salvava o atributo e redirecionava o comerciante para a página inicial de exibição da loja quando tentava salvar o atributo. GitHub-30362
- As grades de produtos nas páginas Vendas > Pedidos e Catálogo > Produtos agora listam todas as lojas relevantes, não apenas a mais recente. GitHub-29267
- O repositório de produtos agora usa
store_id
quando disponível para salvar valores de atributos para um produto existente. Anteriormente, a classe de repositório de produtos substituía a ID da loja de produtos e sempre atribuía a ID da loja padrão. GitHub-29933
Regra de catálogo
- Agora as regras de preço de catálogo funcionam conforme esperado com opções personalizadas nas páginas de detalhes do produto. Anteriormente, os preços dos produtos nessa página não refletiam as regras de preço de catálogo aplicáveis. GitHub-22856
- Os caches de produtos e catálogos agora expiram conforme programado. Anteriormente, os caches expiravam diariamente porque
сron
executava a tarefacatalogrule_apply_all
uma vez por dia, que reindexava todas as regras de catálogo e indexadores dependentes e limpava o cache para todos os produtos e categorias.
Cleanup
Limpeza de gramática e erro de digitação
- O título da página Falha do pedido foi revisado para fins de precisão. Anteriormente, este título da página era: Recebemos seu pedido!. GitHub-29416
- Espaços desnecessários removidos em
app/code/Magento/Contact/view/frontend/templates/form.phtml
. GitHub-29779
- Correção de um erro de digitação na mensagem de ajuda para o subcomando
bin/magento/setup:config:set
. GitHub-28802
- Gramática corrigida no PHPDoc para o arquivo
framework/Registry.php
. GitHub-29661
- Espaço em branco irrelevante removido de
app/code/Magento/Catalog/Helper/Product/View.php
. GitHub-30601
- Correção de um erro de digitação em um nome de função em
app/code/Magento/Ui/view/base/web/js/form/element/ui-select.js
. GitHub-29987
- Correção da pluralização de "item" no minicarrinho e no resumo do pedido de checkout. GitHub-29920
- Espaço em branco removido em elementos em linha nos filtros de navegação em camadas de marcação. GitHub-30448
rl
foi corrigido paraurl
em\Magento\Framework\Filter\Template\Tokenizer\Parameter
. GitHub-29185
Limpeza de código
- Uma marca de HTML
<br>
irrelevante foi removida da área de mensagem Verificar Dados da página Sistema > Importar.
ChangeQuoteControl
foi refatorado. GitHub-29673
AccessChangeQuoteControl
e seus testes de unidade foram refatorados. GitHub-29672
- Corrigido o estilo de código da declaração de tipo de retorno em
app/code/Magento/Captcha/CustomerData/Captcha.php
. GitHub-29712
- Correção da posição da lista de botões na página Novo Atributo.
- Adição da classe de bloco correta para o exemplo de referência
viewModel
de front-end para a classe\Magento\Framework\View\Element\Template
. GitHub-30450
- Um conjunto de campos redundante no formulário Regra de venda foi removido. GitHub-29599
- Código desnecessário foi removido do modelo
hierarchy/edit.phtml
.
- Comentário PHPdoc corrigido em
app/code/Magento/CatalogImportExport/Model/Export/Product.php
. GitHub-30833
- A anotação docblock da mensagem
PublisherInterface
foi corrigida. GitHub-30190
- Argumentos corrigidos no método
getStatusByState
. GitHub-30173
- Descrição de método corrigida em
app/code/Magento/Quote/Model/Cart/Totals/ItemConverter.php
. GitHub-30125
- Remoção de atribuições de variáveis redundantes na mesma linha em vários arquivos. GitHub-30133
- Alterado
@param string $attribute
para@param AbstractAttribute|string[]|string $attribute
emEntityAbstract.php
. GitHub-30191
- Marcas inválidas (por exemplo,
@package
e@subpackage
) foram removidas dos blocos de documentos em toda a base de código. GitHub-30061
- Parâmetros não utilizados na construção da classe
AdvancedPricing
foram removidos. GitHub-29531
Produtos configuráveis
- A filtragem de produtos configuráveis indisponíveis por preço agora exibe os resultados dentro da faixa de preço correta.
- Um produto virtual não altera mais o tipo quando seu status é alterado de ativado para desativado (ou vice-versa). Anteriormente, o aplicativo alterava o tipo de um produto de virtual para simples quando seu status era alterado.
- O método
getValue()
não aciona mais um erro fatal ao atualizar carrinhos.
- Os produtos configuráveis disponíveis em vários sites não mostram mais produtos secundários simples que não estão atribuídos ao site específico. GitHub-28291
- As páginas de produtos da loja agora exibem preços de nível sem impostos, conforme esperado. GitHub-12225
- Os preços de MSRP para produtos configuráveis agora são convertidos corretamente para a moeda escolhida. Anteriormente, o aplicativo exibia os preços na moeda errada e gerava este erro:
Call to a member function setAppliedTaxes() on null
. GitHub-26526, GitHub-29603
- Os comerciantes agora podem salvar um rótulo de opção de atributo de amostra de texto específico do armazenamento com um valor de 0 (zero). Anteriormente, um valor de 0 era substituído pelo valor da opção Admin label. GitHub-30073
- Parâmetros não utilizados na construção da classe
AdvancedPricing
foram removidos. GitHub-29531
cron
- A lista de Mensagens do Sistema agora reflete com precisão as atualizações do produto após a execução de
cron
e o aplicativo ter atualizado os produtos conforme agendado.
- Um índice baseado em
schedule_id
estatus
foi adicionado à tabelacron_schedule
. GitHub-29601
Atributos personalizados do cliente
- O aplicativo agora exibe atributos do cliente do tipo
file
na página Informações da conta após a criação. Anteriormente, ao tentar salvar um novo atributo desse tipo, o aplicativo exibia os seguintes erros:The "newAttribute" attribute value is empty. Set the attribute and try again
eValidation is failed
.
- O aplicativo agora exibe corretamente os valores de atributos personalizados de várias linhas do cliente. Anteriormente, nem todos os dados eram exibidos.
- O aplicativo agora alerta os compradores quando eles inserem uma data de nascimento inválida ao criar uma conta. Anteriormente, o validador desconsiderava as configurações de local e os compradores eram redirecionados para a página Criar nova conta do cliente com um erro de data inválida.
- Os atributos personalizados do endereço agora são incluídos, conforme esperado, na etapa Pagamento do fluxo de trabalho de finalização.
- Os atributos de multisseleção de endereço personalizado agora são exibidos corretamente durante o check-out do convidado e na página de detalhes do pedido de Administrador e Minha conta.
- Os atributos de endereço personalizados agora são exibidos corretamente na área Minha conta e na página Detalhes do pedido de administrador.
- Agora você pode excluir um zero à esquerda em um atributo de cliente personalizado quando
Input Type
está definido comoText
eInput Validation
está definido comoNumeric Only
.
- O aplicativo agora exporta com êxito dados do cliente que incluem um valor de atributo de gênero personalizado.
- O aplicativo agora salva os valores de atributo do cliente personalizados para usuários B2B, conforme esperado. Anteriormente, os atributos personalizados do cliente criados para adicionar ou editar usuários da empresa não eram vinculados ao formulário Adicionar novo usuário e, como resultado, os valores de atributo não eram salvos. Além disso, o atributo de data personalizado era derivado do banco de dados como uma cadeia de caracteres e não era convertido no formato de data adequado para exibição da loja.
Cliente
- O widget de calendário para o campo de data de nascimento da página da conta do cliente da loja agora usa o local da loja designado.
- O aplicativo não salva mais entradas duplicadas de um endereço de cliente durante o check-out de um novo pedido para um cliente existente do administrador.
- A exclusão de todos os endereços de vários clientes do Admin agora exclui todos os endereços da lista de endereços do cliente e remove os endereços padrão de faturamento e envio. Anteriormente, o aplicativo excluía o endereço da lista de endereços do cliente, mas não removia os endereços padrão de cobrança e envio.
- A guia Admin customer address agora exibe corretamente a contagem de endereços depois que um administrador executa uma exclusão em massa de endereços. Anteriormente, o aplicativo incluía endereços excluídos em sua contagem.
- O formato DateTime para o campo Data de Nascimento na página de registro do cliente foi corrigido. Anteriormente, o zero à esquerda que precedia um dia de um dígito estava ausente.
- A validação do formato de data para o campo Data de Nascimento agora funciona antes que o comprador clique no botão Criar uma conta. Anteriormente, um comprador podia inserir um valor em um formato inválido e, ao clicar no botão Criar uma conta, ele era redirecionado para a página Criar nova conta de cliente com um erro de data inválida.
- O aplicativo não lança mais um erro fatal quando um administrador tenta salvar uma nova conta de cliente que contém dados inválidos para um atributo.
- O aplicativo não lança mais um erro 400 quando um cliente tenta acessar o carrinho de compras em uma implantação em que o Magento Shipping foi instalado anteriormente e o tema Luma padrão está implantado no momento. Anteriormente, o aplicativo não filtrava nomes de seção criados por módulos instalados/habilitados anteriormente que não eram compatíveis com o Administrador antes de enviar solicitações ao servidor, o que gerava erros.
- O aplicativo agora exibe uma mensagem conforme esperado quando um comprador cria uma conta de convidado quando a configuração Solicitar Confirmação de Emails está habilitada e
Magento\Customer\Controller\Account\CreatePost
foi substituída. Anteriormente, o aplicativo não permitia esse tipo de personalização do processo de registro do usuário e, nessas condições, o status de confirmação de email de um usuário era considerado concluído, o novo usuário era conectado automaticamente e nenhuma mensagem de erro era exibida.
- O aplicativo agora atribui um comprador ao grupo correto de clientes quando o comprador faz um pedido com um grupo de clientes não padrão em uma loja onde a Habilitar Atribuição automática ao Grupo de Clientes está habilitada. GitHub-26976
- A grade de clientes Admin agora está disponível conforme esperado quando o site não padrão é excluído em uma implantação multissite quando os índices são definidos como Atualizar por Agendamento. Anteriormente, o aplicativo não exibia a grade e exibia este erro:
[2020-12-09 11:31:54] report.CRITICAL: The website with id 2 that was requested wasn't found. Verify the website and try again. \{"exception":"[object] (Magento\\Framework\\Exception\\NoSuchEntityException(code: 0): The website with id 2 that was requested wasn't found. Verify the website and try again. at /var/www/html/magento24ee/vendor/magento/module-store/Model/WebsiteRepository.php:110)"}
dotdigital
-
O tratamento de erros foi aprimorado ao recuperar listas de programas da Dotdigital Engagement Cloud.
-
O valor sincronizado na coluna de nome de armazenamento durante a sincronização do convidado agora é o nome de exibição de armazenamento conforme esperado. Anteriormente, o nome do site era incluído nesta coluna.
-
Adição de uma verificação de matriz antes de executar looping sobre automações de status de pedido depois que um pedido é salvo.
-
Correção de problemas com atualizações do Composer que eram o resultado da dependência do módulo dotdigital no
magento/module-authorization
.
Baixável
- O aplicativo não lista mais um produto baixável na guia Meus produtos de download depois que o produto baixável é parcialmente reembolsado. GitHub-28388
Bloco dinâmico (antigo banner)
- O aplicativo não exibe mais um bloco dinâmico na loja depois que você exclui o segmento de cliente associado ao bloco.
- O aplicativo agora leva em conta corretamente as regras de preço do catálogo ao determinar a exibição de um bloco dinâmico.
EAV
- Os atributos personalizados que usam
\Magento\Eav\Model\Entity\Attribute\Backend\ArrayBackend
agora usam valores padrão se nenhum valor for fornecido na carga quando um produto é criado por chamada de API.
\Magento\Config\Model\Config\Source\Email\Template::toOptionArray
não lança mais um erro quandosetPath()
não é chamado antes detoOptionArray()
. GitHub-29315
- O aplicativo agora converte corretamente o texto sem formatação em HTML ao clicar em Retornar Versão Html ao carregar um modelo de email.
- O email enviado para clientes que contêm faturas parciais agora inclui subtotais precisos de itens. Anteriormente, o subtotal deste email era o total da quantidade solicitada, não o valor total da quantidade faturada.
- O aplicativo agora envia lembretes de email para todos os clientes relevantes com endereços de email válidos. Anteriormente, o aplicativo parava de enviar emails de lembrete para os clientes após encontrar um endereço inválido.
- O envio de emails de vendas no modo assíncrono agora funciona como esperado depois que um produto é removido de um catálogo. Anteriormente, o envio assíncrono de email era bloqueado, e o aplicativo exibia este erro:
main.ERROR: Cron Job sales_send_order_invoice_emails has an error: Call to a member function getData() on null. Statistics: {"sum":0,"count":1,"realmem":0,"emalloc":0,"realmem_start":73400320,"emalloc_start":37177640} [] []main.CRITICAL: Error when running a cron job {"exception":"[object] (RuntimeException(code: 0): Error when running a cron job at /var/www/html/vendor/magento/module-cron/Observer/ProcessCronQueueObserver.php:327, Error(code: 0): Call to a member function getData() on null at /var/www/html/vendor/magento/module-catalog/Helper/Image.php:502)"} []
. GitHub-26878
- O aplicativo não copia mais um cliente no email de confirmação do pedido quando
sales_email/order_comment/enabled
está desabilitado esales_email/order_comment/copy_method
está definido comobcc
. GitHub-29915
Estruturas
- Agora os grupos de filtros personalizados são aplicados corretamente ao pesquisar por clientes. Anteriormente, a função
afterSearch
não possuía filtros OR conforme esperado. GitHub-24576
- As imagens na página inicial de uma loja agora são renderizadas com sucesso. Anteriormente, o HTML de origem da página era corrompido porque as três barras consecutivas no código base64 da imagem eram interpretadas incorretamente como um comentário.
- O DatePicker agora funciona corretamente ao filtrar pedidos na lista Pedidos de administrador nas lojas usando a localidade árabe (
ar_SA - Saudi Arabia
).
- DatePicker agora exibe a data correta depois que um comerciante salva uma regra de preço de carrinho em uma implantação. GitHub-30382
- O aplicativo agora representa corretamente o agrupamento de milhares de árabes e símbolos de separador decimal árabe. Anteriormente, os símbolos árabes eram aparados. GitHub-26676
- O aplicativo agora exclui sessões de banco de dados expiradas da tabela de banco de dados
session
, conforme esperado.
Correções gerais
- Agora você pode configurar um manipulador de sessão nativo que difere do manipulador definido em
php.ini
. Anteriormente,SessionManager
não definia o memcache comosave_handler
, mas usava osession_handler
do arquivo. o aplicativo emitiu este erro:main.CRITICAL: Warning: SessionHandler::read(): open(127.0.0.1:11211/sess_0imeeaqmnvemdg4e3h57tat0ik, O_RDWR) failed: No such file or directory (2) in../vendor/magento/framework/Session/SaveHandler/Native.php on line 22 {"exception":"[object] (Exception(code: 0): Warning: SessionHandler::read(): open(127.0.0.1:11211/sess_0imeeaqmnvemdg4e3h57tat0ik, O_RDWR) failed: No such file or directory (2) in ../vendor/magento/framework/Session/SaveHandler/Native.php on line 22 at ../vendor/magento/framework/App/ErrorHandler.php:61)"}
. GitHub-24717
-
As seguintes melhorias foram realizadas nos módulos
LoginAsCustomer
:-
O plug-in
around
foi substituído porafter
-
Código redundante removido
-
Substituiu
(bool)->getValue()
porisSetFlag
. GitHub-29689
-
- Recarregar todas as seções de dados do cliente com o curinga (*) não faz mais com que as solicitações a
customer/section/load
exibam um erro 400. GitHub-28154
- O aplicativo agora passa exceções que ocorrem quando um layout é renderizado no modo de produção para
var/report
. GitHub-29606
- O aplicativo não redireciona mais os clientes para a página inicial ao alterar a exibição da loja. O método
\Magento\VersionsCmsUrlRewrite\Model\StoreSwitcher::switch()
agora redireciona os compradores para a página inicial somente quando$urlPath
não é encontrado para a segunda exibição de loja.
- O aplicativo agora lança uma exceção quando um cliente que não existe solicita uma redefinição de senha. GitHub-26288
- A aplicação agora exibe uma mensagem de erro informativa quando um administrador tenta salvar uma conta de cliente que contém um valor inválido para um atributo do cliente enquanto carrega um arquivo com esse valor de atributo. Anteriormente, o aplicativo exibia um erro fatal. GitHub-30295
- O aplicativo agora aplica a configuração Logotipo para Exibição de Impressão do HTML para PDF de fatura de vitrine conforme esperado. GitHub-24730
static::
foi substituído porself::
em toda a base de código para acessar constantes privadas. GitHub-30781
- O aplicativo agora abre a página Novo atributo, conforme esperado, quando um comerciante clica no botão Criar novo atributo duas vezes durante a criação do produto. Anteriormente, o aplicativo exibia uma página vazia e exibia um erro. GitHub-30361
- O aplicativo não exibe mais a mensagem
The coupon code has been accepted
após a remoção de um cupom. GitHub-30255
- Os administradores agora podem atribuir widgets a categorias específicas. GitHub-30009
- O seletor de atributo
input[type=datetime]
foi substituído por um seletor de tipo de entrada menos específico. GitHub-30064
- O aplicativo agora exibe valores específicos da loja associados a atributos de categoria personalizados, conforme esperado. GitHub-13440
- O aplicativo agora exibe um prompt perguntando se o grupo de clientes deve ser alterado quando você clicar no botão Validar número IVA na página de criação do pedido quando o endereço da loja e o destino da remessa pertencerem a países diferentes da UE. GitHub-29652
- A classe
\Magento\Catalog\Model\ImageUploader
foi refatorada para usar o novo métodomoveFileFromTmp
. GitHub-29598
- O aplicativo agora exibe uma mensagem de erro mais informativa quando um comerciante tenta criar um atributo de produto com códigos
product_type
etype_id
para ser mais descritivo. GitHub-28479
- Lógica de validação corrigida para os campos Duração do token do cliente (horas) e Duração do token do administrador (horas) na página Lojas > Configurações > Serviços > OAuth do administrador. GitHub-29502
- O aplicativo agora analisa corretamente o texto que contém
}}
no campo de conteúdo do widget. GitHub-12087
- Agora é possível remover um filtro da página Categorias de produto. Anteriormente, ao tentar excluir o filtro, o aplicativo não permitia que você o removesse e exibia este erro:
Something went wrong
. GitHub-8538
Magento\Framework\MessageQueue\ConfigInterface
agora pode ser instanciado quando o módulo opcionalMagento_MessageQueue
está desabilitado. Anteriormente, o aplicativo exibia este erro:PHP Fatal error: Uncaught Error: Cannot instantiate interface Magento\Framework\MessageQueue\ConfigInterface in /var/www/magento2/magento2/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php:121
. GitHub-26080
- A lógica que determina quando o aplicativo pode recuperar o valor do e-mail do armazenamento persistente foi aprimorada. Anteriormente, o aplicativo exibia campos de senha preenchidos na página de check-out quando um usuário não registrado retornava à página de check-out depois de preencher o campo de email pela primeira vez. GitHub-26903
- Um atributo
aclResource
ausente foi adicionado ao bloco da barra de ferramentas do cabeçalho AdminAdminNotification
. Anteriormente, a entrada da barra de ferramentas Notificação do administrador estava visível mesmo quando o usuário administrador não tinha permissões de recurso de função para vê-la. GitHub-29067
- As funções
framework/database/select
where
agora manipulamtype
corretamente. GitHub-29590
- O uso ineficiente de
array_merge
em loops foi aprimorado em toda a base de código, o que melhorou o desempenho em vários lugares, incluindo no processo de implantação de conteúdo estático. GitHub-30183
- O tempo de vida padrão da sessão de Administrador foi movido do módulo de criptografia para o módulo de segurança. GitHub-30859
- O aplicativo agora verifica se há constantes privadas em uma classe e exibe um aviso se houver alguma chamada
static::
para elas. Anteriormente, o aplicativo exibia este erro:Undefined class constant
.
- Regras adicionadas ao
editorconfig
para oferecer suporte ao recuo de dois espaços de arquivos JSON e YAML. GitHub-30066, GitHub-30063
- A classe
FlushCacheByTags
foi atualizada para usar plug-ins subsequentes em vez de plug-ins adjacentes. GitHub-29558
MessageValidator
não falha mais em matrizes de hash que não incluem um elemento0
. GitHub-30563
- O código no arquivo
checkout_index_index.xml
foi aprimorado pela remoção desortOrder
dos componentesmessages
,authentication
,progressBar
,estimation
esidebar checkout
. GitHub-30550
- O conteúdo em
calc
agora tem escape, o que resulta na correção decalc
valores no arquivo de saída CSS. Anteriormente, o aplicativo retornava um valorcalc
incorreto. GitHub-30542
- O gerador de regravação de URL agora define os objetos de categoria
url_key
,url_path
estore_id
como valores de repositório padrão ao salvar regravações de URL de categoria para o escopo global. Anteriormente, ele salvouurl_key
,url_path
estore_id
com os valores da última ID de armazenamento processada. GitHub-29585
\Magento\Widget\Controller\Adminhtml\Widget\Instance\Validate
agora reconhece um valor de resultado de frase como uma mensagem de erro e o envia para o usuário durante a validação do widget. GitHub-27397
- A lista codificada permanentemente de atributos de categoria em
Magento\Catalog\Model\Category\DataProvider::getFieldsMap()
foi substituída por uma lista de atributos gerados do cache. GitHub-13440
- O hash redundante de
req.http.host/client.ip
foi removido e o hash é manipulado pelo VCL integrado do Verniz. GitHub-29988
- Um retorno de chamada de falha foi adicionado ao carregador de arquivos
Magento_Ui
. GitHub-29557
- Uma inconsistência de
acl.xml
que ocorreu quandoMagento_LoginAsCustomerAssistance
foi habilitado, masMagento_LoginAsCustomerAdminUi
ouMagento_LoginAsCustomerLog
foram desabilitados foi corrigida. Anteriormente, quando um administrador com essas credenciais tentou fazer logon no Administrador, o aplicativo exibia uma página em branco e exibia este erro quando:Exception #0 (LogicException): Could not create an acl object: Invalid Document Element 'resource': The attribute 'title' is required but missing. Line: 13
. GitHub-30680
- O aplicativo não lança mais um erro
Undefined class constant
quando umInterceptor
é gerado durante a criação do plug-in. GitHub-28981, GitHub-29879
- O aplicativo agora lida corretamente com mensagens e registros para operações assíncronas em massa. Anteriormente, embora os produtos tenham sido atualizados, as tabelas
magento_operation
equeue_message_status
não foram atualizadas corretamente e as mensagens do sistema estavam incorretas. GitHub-29718
- Um comprador agora é redirecionado para a página Definir uma Nova Senha, conforme esperado, quando clica em Definir uma Nova Senha no email Redefinir Senha quando Exigir Confirmação de Emails está habilitado para o armazenamento. Anteriormente, o comprador era redirecionado de volta ao botão Esqueceu sua senha na página de logon. GitHub-27954
- Erro de conversão de matriz em cadeia de caracteres corrigido ao salvar a configuração do sistema de linhas com valores padrão. GitHub-30314
- Agora você pode definir argumentos para filas de mensagens. GitHub-30216
- O coletor de arquivos base agora respeita
AppState->emulateAreaCode()
. GitHub-39656
- A nova classe
BlockByIdentifier
oferece suporte à recuperação de um bloco de layout com base no identificador de bloco CMS. Como resultado, quando um bloco CMS é removido do cache, o aplicativo também limpa o cache do bloco de layout. GitHub-28309
- Correção de problemas com a conversão de argumento numérico em filas. Anteriormente, ao declarar uma fila com argumentos numéricos
type
emqueue_topology.xml
, o valor do argumento era convertido em cadeia de caracteres. GitHub-29615
Cartões-presente
- Emails que contêm um código de cartão-presente agora são enviados somente depois que o pedido é salvo com êxito quando a configuração Criar uma conta de cartão-presente quando um item do pedido é solicitado é habilitada. Anteriormente, um código de cartão-presente era reutilizado e enviado para clientes diferentes se uma conta de cartão-presente fosse gerada quando os itens eram solicitados, mas ocorria uma exceção após o envio do cartão-presente virtual.
- O aplicativo não duplica mais ordens de cartão-presente. Anteriormente, quando um comprador pedia um vale-presente, o aplicativo entregava dois códigos de presente. Isso ocorreu porque
cron
trabalhos chamaram\Magento\GiftCard\Observer\GenerateGiftCardAccountsInvoice::execute()
, e este método não verificou se os códigos de cartão-presente já tinham sido gerados durante a criação da fatura.
- Os comerciantes agora podem cancelar a atribuição de produtos de categorias conforme esperado. Anteriormente, o aplicativo emitia um erro semelhante a este erro:
Could not save product "4" with position 0 to category 3
.
- Adicionado suporte para
root
com link simbólico em páginas de erros e modo de manutenção. Anteriormente, seroot
oumagento/pub
estivessem vinculados de forma simbólica a um diretório diferente, o processador de erros (Magento\Framework\Error\Processor
) não geraria uma URL de arquivo de exibição correta. GitHub-30296
- Adicionada a matriz
order_data
ausente às classesEmailSender
. Isso alinha essas classes com a recomendação de Magento para usar variáveis escalares em vez de objetos nos modelos de email. GitHub-29604
Gerenciador de tags da Google
- A função do Gerenciador de Tags do Google
productClick
agora funciona conforme esperado. Anteriormente, oproductClick
não era acionado em produtos das páginas de listagem, e o Google Tag Manager não podia capturar esse evento.
- As opções de produto configuráveis do Google Tag Manager agora são atualizadas conforme esperado no datalayer após editar uma opção de produto configurável no carrinho. Anteriormente, os dados do evento
removeFromCart
eram regravados incorretamente quando a opção do produto era alterada e a quantidade permanecia a mesma.
GraphQL
- A consulta
urlResolver
agora trata os parâmetros de consulta corretamente.
- A consulta
urlResolver
não retorna mais NULL quando um nó e uma página CMS personalizados são especificados como entrada. GitHub-30474
- A consulta
category
não retorna mais categorias filhas de uma categoria pai que foi desabilitada. GitHub-30468
- A consulta
category
agora retorna o caminho correto de uma imagem de categoria quando substituições de URL são desabilitadas.
- A mutação
resetPassword
agora retorna uma mensagem mais informativa quando ocorre um erro. GitHub-30179
- Os resultados em cache da consulta
products
são invalidados conforme esperado quando as posições do produto são alteradas. GitHub-30467
- A consulta
products
agora retorna os resultados esperados quando o filtrocategory_id
é especificado com a palavra-chavein
. GitHub-30349
- As consultas
categories
ecategoryList
agora consideram a disponibilidade da categoria com base na configuração de permissões de categoria e na ID da categoria pai. GitHub-29880, GitHub-30624
- A mutação
updateProductsInWishList
agora valida corretamente os itens da lista de desejos. GitHub-30467
-
Vários atributos obsoletos no
ProductInterface
eCategoryInterface
para impedir seu uso na loja. GitHub-30625 -
Os preços agora ficam ocultos nos resultados de consultas de produtos quando as permissões de categoria são definidas para ocultá-los. GitHub-29926
- Agora você pode usar a mutação
addProductsToWishList
para adicionar um produto de pacote com uma quantidade definida pelo usuário a uma lista de desejos.
- As mutações que adicionam produtos a um carrinho agora seguem as permissões do catálogo. GitHub-30179
- O tempo de resposta do GraphQL para operações de adição ao carrinho melhorou.
- A consulta
products
agora retorna valores de preço de camada conforme esperado. GitHub-29168
- Removido um
getMappedNums
redundante de um loop emlib/internal/Magento/Framework/GraphQl/Query/EnumLookup.php
. GitHub-30031
- A consulta
products
não retorna mais um erro quando o produto consultado tem um produto relacionado desabilitado. GitHub-28892
- A consulta
cart
agora retorna preços que foram convertidos para a moeda correta (a moeda de exibição padrão). Anteriormente, a consulta retornava o valor do preço do item na moeda base e o código da moeda era retornado como a moeda de exibição padrão.
- O GraphQL agora respeita as permissões do catálogo. O aplicativo restringe quais itens são retornados para uma consulta
products
com base no grupo de clientes do comprador.
- Adição do atributo
customizable_option
a vários tipos de dados que implementam oCartItemInterface
.
- Adicionados atributos para a consulta
storeConfig
para retornar informações de armazenamento, grupo de armazenamento e site.
- O atributo
SelectedCustomizableOption.type
foi restabelecido. Além disso, o atributocustomizable_options
em várias implementações deCartItemInterface
agora é não nulo.
- A funcionalidade de pesquisa da consulta
products
não retorna mais itens nos quais as permissões de categoria foram habilitadas.
- A consulta
products
retorna a moeda correta para exibições de loja com várias moedas.
- Os rótulos para
products
filtros de consulta agora retornam valores traduzidos, quando aplicável para exibições de armazenamento não padrão.
- Valores monetários de armazenamento fixos em cartões-presente no carrinho.
- Adição do tipo de dados
ConfigurableProductOptionsSelection
, que contém metadados correspondentes às opções configuráveis selecionáveis para um produto. Use este objeto em uma consultaproducts
para minimizar o número de itens da galeria de mídia exibidos à medida que o comprador seleciona opções de produto configuráveis.
Produtos agrupados
- A consulta products agora retorna todos os dados esperados para produtos agrupados. Anteriormente,
product_links
era uma matriz vazia.
- Um produto agrupado agora é listado como indisponível na página de edição do produto quando todos os produtos simples secundários estão indisponíveis.
- O status de um produto agrupado agora é atualizado corretamente na página de edição do produto quando o status de seus produtos simples secundários é alterado para esgotado. Anteriormente, o item de estoque do estoque do pai do produto agrupado não era atualizado depois que seu filho alterava o status do estoque.
Imagens
- As imagens na página inicial de uma loja agora são renderizadas com sucesso. Anteriormente, o HTML de origem da página era corrompido porque as três barras consecutivas no código base64 da imagem eram interpretadas incorretamente como um comentário.
- A dependência na extensão
fileinfo
foi removida do módulo CMS. Anteriormente, o aplicativo exibia um erro ao tentar carregar uma imagem usando o carregador de imagens, que é iniciado quando você clica no botão Inserir Imagem ao adicionar conteúdo. GitHub-24332, GitHub-16531, GitHub-29852
- Adicionado suporte para leitura de
exif_image.png
ouexif-image.jpeg
metadados. GitHub-1449
- As imagens agora são exibidas pelo widget Carrossel de eventos do catálogo após o upload, conforme esperado. Anteriormente, o trabalho de cron
catalog_event_status_checker
excluía imagens carregadas.
- As cores das imagens CMYK agora são renderizadas corretamente. Quando o adaptador Imagick detecta agora que uma imagem aberta tem um espaço de cores CMYK, esse espaço é convertido em SRGB. Antes, essas imagens eram renderizadas com cores invertidas. GitHub-22375
- Os valores booleanos não estão mais definidos para
image_with_border.phtml
. As configuraçõesmax-width
eheight
redundantes foram removidas de.product-image-photo
. (Esses valores já estão definidos globalmente na imagem por meio dos estilos de redefinição.) GitHub-30186
Importar/exportar
- O endereço do cliente
region_id
não recebe mais um valorNULL
quando você importa endereços de clientes usando um arquivo CSV (entity type = "customer address"
eimport behavior = "add/update"
) do qual determinados valores de campo foram excluídos.
- Agora é possível ocultar imagens do produto na loja durante a importação.
- Um processo programado de importação de produto agora atualiza os produtos com campos de dados corretos quando o arquivo CSV também contém entradas incorretas. Anteriormente, nenhuma entrada era atualizada se o arquivo CSV incluísse entradas incorretas quando Em erro: Continuar processamento estava habilitado.
- Quando um produto importado tem o
qty
definido como 0, mas ois_in_stock set
como 1 no arquivo CSV, o produto não é listado na página de categoria e a página de detalhes do produto o identifica como indisponível. Anteriormente, os produtos com esses valores estavam visíveis na loja após a importação.
- A importação de CSV não ignora mais os valores
dropdown
etextarea
para atributos adicionais. Anteriormente, esses valores de atributo não eram atualizados durante a importação.
- O arquivo CSV de exportação do produto agora aparece na lista de administração de arquivos CSV de exportação, conforme esperado. Anteriormente, o aplicativo emitia um erro quando você executava este comando:
bin/magento queue:consumers:start exportProcessor --single-thread --max-messages=10000
.
- O aplicativo não emite mais um erro ao importar dados CSV que incluam caracteres do alfabeto bengali (bengali).
- O aplicativo agora exibe uma mensagem informativa de erro quando um administrador clica em Verificar Dados durante a importação de um arquivo que foi alterado desde a exportação ao trabalhar no Chrome. Anteriormente, o aplicativo exibia um erro de console, mas não informava ao usuário como proceder.
- O aplicativo não duplica mais imagens de produtos quando você importa os mesmos dados CSV de produtos mais de uma vez. GitHub-21885
- O limite de 90 caracteres para nomes de arquivo de imagem em
vendor/magento/framework/File/Uploader.php
foi removido. Anteriormente, o nome do diretório e do arquivo não podiam exceder 255 caracteres. O aplicativo importou produtos com imagens cujo nome de arquivo excedeu esse limite, mas não importou o arquivo de imagem. GitHub-29377
- Os códigos de cupom agora podem ser exportados com êxito para CSV ou XML. Anteriormente, o aplicativo exibia um erro 404 ao clicar em Exportar CSV ou Exportar XML ao tentar exportar cupons. GitHub-29277
- As imagens do produto duplicadas agora são removidas após a importação de um arquivo CSV que contém imagens. GitHub-14398, GitHub-21885
Índice
- Melhoramos o desempenho do indexador parcial. O aplicativo agora limpa as IDs do cache que foram alteradas para cada iteração em lote de 1000 ID. O contexto de cache não acumula mais IDs. Anteriormente, o contexto de cache acumulava IDs de cache para cada iteração em lote de 1000 ID e limpava o mesmo conjunto de IDs em cada iteração.
- As inconsistências entre o sistema de reindexação parcial e o sistema de reindexação completo foram corrigidas. Ambos os sistemas de indexação agora usam o mesmo código, que funciona corretamente. Anteriormente, ambos os sistemas de indexação usavam uma lógica diferente em relação aos indexadores compartilhados, o que potencialmente fazia com que os indexadores fossem invalidados após cada execução do sistema de reindexação parcial. GitHub-29478, GitHub-29297
-
Resolvemos problemas com o indexador manual que resultavam em páginas de categoria vazias ou em uma contagem reduzida de produtos nas páginas de categoria. Problemas com páginas de categoria incompletas ou contagem de produtos ocorreram quando:
-
os indexadores parciais
catalogsearch_fulltext
ecatalog_product_price
foram executados em um catálogo grande até que esses indexadores concluíssem a execução. -
o indexador parcial foi executado em
catalog_category_product
oucatalog_product_category
índices e, ao mesmo tempo, uma reindexação completa foi executada em um desses índices. Esses dois processos de indexação podiam entrar em conflito, o que resultava na ausência de produtos nas páginas de categoria. -
bin/magento indexer:reindex inventory
foi executado em um catálogo grande. Faltavam produtos nas páginas de categoria até que o indexador parcialcatalogsearch_fulltext
concluísse a execução.
-
- Um indexador foi adicionado à tabela MySQL
Magento_Bulk
, o que melhorou o desempenho das operações em massa.
- Os comentários nas tabelas do banco de dados agora refletem com precisão o status da tabela após a reindexação (
bin/magento indexer:reindex
). Anteriormente, os comentários da tabela após a reindexação continham os mesmos valores que os comentários contidos após uma nova instalação.
- A instrução
SELECT entity_id IN
foi aprimorada nas implantações que implementam o MariaDB v.10.3.18, o que melhorou o desempenho da indexação de categorias de catálogos. GitHub-25199
- A Adobe Commerce melhorou o desempenho do cache ao eliminar a liberação de tags várias vezes por instância do indexador. GitHub-29890
Infraestrutura
- Agora você pode usar
app/etc/env.php
para alterar o agente de mensagens de MYSQL para AMQP.
- Problemas com o cálculo dos remanescentes de valores decimais para quantidades de produtos foram corrigidos na biblioteca JavaScript relevante. O aplicativo calculou anteriormente frações decimais de mais de dois dígitos incorretamente e, posteriormente, exibiu uma mensagem incorreta.
- O método
\Magento\Authorization\Model\Rules::update
foi substituído. GitHub-29128
- O aplicativo não lança mais um erro fatal ao converter um objeto de data de UTC. Anteriormente, sob determinadas condições, o método
convertConfigTimeToUtc
gerava uma exceção. GitHub-29525
DataObject
foi substituído pelo modelo de produto em\Magento\MediaGalleryCatalogUi\Ui\Component\Listing\Columns\Thumbnail::prepareDataSource
.GitHub-1711
- O resolvedor
RequireJS
não falha mais ao detectar recursos bloqueados. Anteriormente, o resolvedor não detectava corretamente se todos os recursos em uma página eram carregados ou manipulados adequadamente e a página continuava carregando. GitHub-28116
- A validação do código do Repositório de Atributos agora respeita
Magento\Eav\Model\Entity\Attribute::ATTRIBUTE_CODE_MAX_LENGTH
em vez de um valor embutido em código. GitHub-29017
- A minificação de HTML não remove mais as barras triplas (https://experienceleague.adobe.com//?lang=pt-BR) das strings de HTML em arquivos PHTML. Anteriormente, as barras triplas eram interpretadas como comentários durante a minificação, e o restante da linha era completamente removido no arquivo PHTML gerado após a implantação.
- Os comerciantes agora podem configurar assinaturas de indexador no nível da coluna da tabela, em vez do nível da tabela. Um novo argumento foi adicionado a
\Magento\Framework\Mview\View\Subscription
para permitir que as colunas sejam ignoradas para uma exibição ou combinação de tabelas específica. GitHub-30243
- Clicar no botão Adicionar ao carrinho antes que a página do produto JavaScript seja totalmente inicializada não resulta mais em valores
form_key
duplicados. Anteriormente, um produto podia ser adicionado ao carrinho com um valorform_key
em cache que acionava uma exceção. Quando Adicionar ao carrinho for clicado antes que o JavaScript seja totalmente inicializado, o valorform_key
enviado nos dados de formulário não corresponderá à sessão dos usuários e o produto não será adicionado ao carrinho. GitHub-13746
- O cliente cURL atual agora respeita nomes de cabeçalho que não diferenciam maiúsculas de minúsculas. Anteriormente, a comparação
Set-Cookie
diferenciava maiúsculas de minúsculas, o que poderia causar problemas em alguns servidores HTTP. GitHub-29524
- Formato XSD URN atualizado em
api-functional
e arquivos XML de caso de teste. GitHub-30552
- Um prefixo de evento e um objeto de evento foram adicionados à coleção de valores de opção de produto de catálogo para melhorar a personalização do carregamento da coleção de
\Magento\Catalog\Model\ResourceModel\Product\Option\Value\Collection
. GitHub-29621
- Todas as ocorrências de
array_merge
foram refatoradas para usar o formato recomendado no padrão de codificação. GitHub-30005
- Um bloco
head.additional
do tipo\Magento\Framework\View\Element\Text\ListText
foi adicionado ao layoutadminhtml
default
(pormagento2/module-base
). GitHub-29165
- Adição do método de URL de escape ausente ao widget do módulo de modelo de layout. GitHub-30036
- O método
\Magento\Framework\Filesystem\Io\File::read()
agora é compatível com\Magento\Framework\Filesystem\Io\IoInterface::read()
. GitHub-27866
Klarna
- Remoção da dependência do módulo PayPal. GitHub-29421
Logs
- O módulo
Magento_Logging
agora registrou corretamente novos valores, bem como os valores que os precederam. Anteriormente, os valores na coluna Valor antes da alteração exibiam valores de N/D, independentemente de essa ser a primeira alteração ou a próxima, ou quando o valor padrão era retornado. GitHub-26943
Galeria de mídia
- A página Admin Lojas > Configuração > Avançado > Sistema foi atualizada para exibir o nome de produto correto (Galeria de Mídia). Foram incluídas pequenas reformulações na interface do usuário. GitHub-1738
- Os links na seção Usado em das descrições de imagem da Galeria de mídia agora exibem uma grade que foi filtrada pela imagem selecionada, conforme esperado. Anteriormente, a grade exibida não tinha o título correto e as entradas da lista não eram precisas. GitHub-1694
- Agora é possível editar várias imagens com êxito na Galeria de mídia. Anteriormente, não era possível adicionar tags a uma segunda imagem depois de adicionar tags a uma imagem. GitHub-1755
- O menu suspenso Tags agora fica vazio, conforme esperado, depois de remover tags de uma imagem na Galeria de mídia. GitHub-1703
- O processamento em lote de mensagens da fila de sincronização da Galeria de mídia agora é compatível. GitHub-1724
- O aplicativo agora exibe uma página 404, como esperado, quando você tenta abrir a Galeria de Mídia quando a Galeria de Mídia Aprimorada está desabilitada. GitHub-1760
MediaGalleryMetadata
agora ignora o leitor de segmento se ocorrer uma exceção. Em vez disso, analisa e exibe metadados de imagem conforme esperado. Anteriormente, os metadados da imagem estavam vazios devido a uma exceção do leitor de segmentoexif_read_data
. GitHub-1782
- O comprimento do nome da pasta não impede mais que uma imagem seja carregada na Galeria de mídia. A Galeria de mídia agora define a coluna de caminho como tipo
text
. GitHub-1778
- Agora o carregador de imagens exibe o tamanho de imagem correto quando uma representação é inserida da Galeria de mídia. GitHub-1806
- A verificação de caminho foi adicionada ao plug-in carregador
Mediagallery
. Anteriormente, a validação falhava, e o aplicativo não importava produtos quando Habilitar Galeria de Mídia Antiga estava desabilitado. GitHub-30649
-
Magento_Cms::media_gallery
sub-recursos de ACL foram adicionados e aplicados para que a nova Galeria de Mídia ofereça suporte a permissões configuradas para as seguintes operações distintas:- Fazer upload de ativos
- Inserir ativos no conteúdo
- Excluir ativos
- Criar pastas
- Excluir pastas. GitHub-1487
- Cadeias de caracteres de texto e nomes de pasta longos da Galeria de mídia não são mais cortados. Anteriormente, o aplicativo exibia imagens e texto cortados e esta mensagem:
We couldn't find any records
. GitHub-1763, GitHub-1758
- O aplicativo não exibe mais o botão Adicionar selecionado quando não há imagens selecionadas ao editar o conteúdo de uma nova página. GitHub-1769
- Agora os filtros são aplicados conforme esperado na grade de Categorias Conteúdo > Galeria de Mídia. GitHub-1763
- A configuração de opções de ponto de interrupção de multiplicação da galeria agora funciona conforme esperado. Anteriormente, a configuração das opções de ponto de interrupção não funcionava corretamente porque
mediaCheck
acionou a função de consulta de mídia de saída no carregamento da página. GitHub-29933
MFTF
- Ações repetitivas substituídas por grupos de ações em
CheckStaticBlocksTest
. GitHub-30561
AdminUpdateCategoryAndMakeInactiveTest
eVerifyChildCategoriesShouldNotIncludeInMenuTest
foram refatorados para serem compatíveis com as práticas recomendadas MFTF. GitHub-30058
AdminOpenCMSBlocksGridActionGroup
duplicado removido. GitHub-30896
AdminOpentCmsBlockActionGroup
substituído por AdminOpenCmsBlockActionGroup. GitHub-29839
- Obsoleto
GoToAttributeGridPageActionGroup
. GitHub-30103
- Adicionados grupos de ação ao módulo
Analytics
. GitHub-29500
- Atualização de
CheckCheckoutSuccessPageAsRegisterCustomerTest
eCheckCheckoutSuccessPageAsGuestTest
para cancelar pedidos criados após a execução de testes. GitHub-28324
- Removido
AdminNavigateToPageGridActionGroup
devido à redundância. GitHub-29838
- Um problema com
StorefrontProductListWidgetWithSharedCatalogTest
que fez com que o teste fosse ignorado foi resolvido. GitHub-322
ActionGroup
implementado para navegar até a página de check-out. GitHub-29843
AdminOpenCreateNewCMSPageActionGroup
implementado para navegar para criar uma nova página CMS. GitHub-29824
- Correção de problemas ao ignorar testes MFTF para a página CMS para a Galeria de mídia. GitHub-30164
- Títulos e descrições significativos foram adicionados aos testes MFTF para os módulos
Company
,CompanyCredit
,CompanyPayment
,CompanyShipping
eConfigurableSharedCatalog
. GitHub-30164
Novos testes
- Adição de um teste para ativar o email para um amigo no Administrador. GitHub-29145
- Adição de um teste para exclusão de um bloco CMS de uma grade por um administrador. GitHub-30372
- Adição de um teste para aplicar uma regra de carrinho de compras a um único item do pacote. GitHub-28921
- Adição de testes para verificar se as informações Usado em de uma imagem da Galeria de Mídia são exibidas após a exclusão da entidade. GitHub-1774
Novos grupos de ação
-
AssertStorefrontCustomerLogoutSuccessPageActionGroup
. GitHub-29841 -
AdminOpenConfigurationStoresPageActionGroup
. GitHub-29848 -
ReloadPageActionGroup
. GitHub-30683 -
StorefrontClickRefundTabCustomerOrderViewActionGroup
. GitHub-30032 -
AdminOpenAdminThreeDSecurePageActionGroup
. GitHub-29845 -
AdminCustomerClickFirstRowEditLinkActionGroup
. GitHub-29501 -
StorefrontClickAddToCartButtonActionGroup
. GitHub-29823 -
AdminDeleteTaxRateActionGroup
. GitHub-29940 -
AdminOpenWebConfigurationPageActionGroup
. GitHub-29846 -
AdminOpenGeneralConfigurationPageActionGroup
. GitHub-29847 -
AdminOrderClickSubmitOrderActionGroup
. GitHub-29649 -
AdminOpenCatalogProductPageActionGroup
. GitHub-29941 -
AdminClickInvoiceButtonIntoOrderActionGroup
. GitHub-25399 -
AdminGridBulkActionGroup
. GitHub-28324 -
AdminGridColumnShowActionGroup
. GitHub-28324 -
AdminOpenIndexManagementPageActionGroup
. GitHub-29825 -
AdminOpenCatalogSearchTermIndexPageActionGroup
. GitHub-29844 -
AdminClickAddProductToggleAndSelectProductTypeActionGroup
. GitHub-30917 -
StorefrontCheckoutClickSaveAddressButtonActionGroup
. GitHub-30916 -
AdminOpenCurrencyRatesPageActionGroup
. GitHub-30783 -
AdminClickGetShippingMethodsAndRatesActionGroup
. GitHub-30782 -
AdminSelectFixedShippingMethodActionGroup
. GitHub-30782 -
StorefrontClickProceedToCheckoutActionGroup
. GitHub-30926 -
StorefrontOpenMyAccountPageActionGroup
. GitHub-29842
Informativo
- Os usuários administradores agora podem editar uma conta de cliente conforme esperado quando o cliente é inscrito em um boletim informativo na fila. GitHub-30645
- O aplicativo agora reenvia a confirmação de subscrição do boletim informativo se o comprador não confirmar a subscrição. GitHub-28422
- Agora é possível editar uma conta de cliente conforme esperado quando o cliente estiver inscrito em um boletim informativo na fila. GitHub-30645
Métodos de pagamento
- Os métodos de pagamento agora são carregados no Administrador para todos os sites, conforme esperado em uma implantação de várias lojas.
- O aplicativo não exibe mais a mensagem
Purchase Order number is a required field
acima do campo de código do cupom antes que o comprador insira qualquer informação em implantações em que a Ordem de Compra foi configurada como a única opção de pagamento disponível.
- O aplicativo agora conclui os pagamentos do Payflow Pro com êxito quando o nome do comprador contém letras acentuadas. Anteriormente, o pagamento não era concluído e o aplicativo registrava este erro:
report.CRITICAL: String to be escaped was not valid UTF-8 or could not be converted
.
- Os compradores convidados agora podem fazer pedidos do PayPal quando a Atribuição automática para o grupo de clientes está habilitada. O pagamento é processado no gateway do PayPal, o pedido é criado em Magento e o comprador visualiza a página de agradecimento do pedido. Anteriormente, o pedido era processado com êxito no gateway do PayPal, mas não era criado no Adobe Commerce. Em vez disso, o comprador foi redirecionado para a página de revisão do pedido, onde o aplicativo exibiu este erro:
Failed address validation: %1" error
. GitHub-25399
PayPal
- Os comerciantes agora podem fazer um pedido com êxito do Administrador depois de alternar de um método de pagamento que usa um cartão de crédito para um método de pagamento que não é de cartão de crédito. Anteriormente, quando um comerciante clicava no botão Enviar pedido, o processo de carregamento começava, mas nunca era concluído, e o pedido não era feito.
- O aplicativo não cria mais pedidos duplicados quando um pedido é feito com o PayPal Express. Anteriormente, quando um comprador tentava pagar um pedido com o PayPal Express, mas o PayPal retornava um erro, o aplicativo ainda criava o pedido. Isso resultou em pedidos duplicados no site do comerciante. GitHub-13952
- Os relatórios do Acordo do PayPal agora estão disponíveis em Relatórios > Vendas > Acordo do PayPal, conforme esperado. Anteriormente, o aplicativo não listava esses relatórios na grade de relatórios de liquidação do PayPal e exibia esta mensagem:
We couldn't find any records
.
- Clicar no botão PayPal durante o check-out não dispara mais uma chamada
web-api
redundante. Anteriormente, duas solicitações eram acionadas, o que dobrava o custo do produto.
Desempenho
- Problemas de desempenho em
module-catalog-import-export/Model/Import/Product/Option.php
foram solucionados. O tempo necessário para exportar ou importar mais de 100.000 registros foi reduzido. Consulte o artigo Importação/Exportação demora mais do que o esperado com um grande número de opções de produto da Base de Dados de Conhecimento.
Magento_Csp/Model/BlockCache
foi refatorado para reduzir o consumo de memória e a geração de cadeias de caracteres em cache desnecessariamente grandes. Anteriormente, as páginas que incluíam scripts e estilos dinamicamente na lista de permissões eram frequentemente causadas por problemas de desempenho. GitHub-29964
- Melhoramos o desempenho das exportações programadas de catálogos que incluem mais de 100 mil produtos usando consumidores do.
- O aplicativo não libera mais o cache de categorias quando você adiciona ou salva um produto desativado em uma categoria. Anteriormente, o aplicativo liberava o cache para categorias relacionadas, apesar do status do produto, que afetava o desempenho do servidor.
- O tempo de carregamento da página para atualizar a quantidade do produto no carrinho de compras melhorou. Anteriormente, o aplicativo executava várias consultas separadas para cada produto no carrinho de compras, o que aumentava o tempo de carregamento da página.
- Um indexador foi adicionado à tabela MySQL
Magento_Bulk
, o que melhorou o desempenho das operações em massa.
- O aplicativo agora armazena em cache as IDs secundárias de produtos configuráveis. Isso melhorou o desempenho do carregamento de página ao reduzir o número de solicitações de banco de dados. GitHub-30585
- O carregamento do painel de Administrador foi aprimorado. Anteriormente, o aplicativo exibia os nomes das guias como uma lista antes da página concluir o carregamento.
- O gerenciamento do cache Redis foi aprimorado com a adição de limites de expiração para caches de layout. Anteriormente, os caches Redis atingiam a memória máxima alocada rapidamente em grandes implantações e o aplicativo exibia erros nas operações de gravação.
- O desempenho do check-out foi aprimorado pela remoção de uma consulta de banco de dados redundante em
app/code/Magento/Catalog/Model/CategoryLink.php
. GitHub-29453
Magento\Framework\DB\Adapter\Pdo\Mysql->isTableExists
foi refatorado para melhorar o desempenho. Chamadas redundantes paraSHOW TABLE STATUS
para verificar a existência de uma tabela foram reduzidas. GitHub-29662
getPageLayoutsConfig
agora está salvo em cache, o que melhorou o desempenho do construtor de configurações. GitHub-29546
- O desempenho do Adobe Commerce durante as operações de edição e salvamento para segmentos de clientes que contêm mais de 3.000.000 clientes melhorou.
Persistente
- Os compradores não podem mais fazer um pedido depois que o cookie da sessão expira quando o carrinho persistente está ativado. Em vez disso, o aplicativo exibe a página de logon para que o comprador possa fazer logon. Anteriormente, o aplicativo fez o pedido. O aplicativo não validou corretamente o cliente persistente quando
PHPSESSID
expirou ecustomerSession
foi recriado a partir das informações persistentes.
- O aplicativo agora exibe a mensagem Welcome como esperado depois que um comprador faz logon em uma loja onde o carrinho de compras persistente está ativado. Anteriormente, o aplicativo exibia o Não é você? mensagem após o logon.
- O aplicativo não exibe mais o Não é você? texto quando um cliente seleciona a opção Lembre-se de mim ao fazer logon em uma implantação em que o carrinho de compras persistente está habilitado.
- O aplicativo não exibe mais o conteúdo do carrinho de um cliente depois que a sessão de clientes expira. Anteriormente, o aplicativo exibia este erro quando um cliente convidado tentava fazer check-out quando o carrinho de compras persistente era habilitado:
No such entity with cartid = 0
.
Preços
- As atualizações de preços assíncronas consecutivas não interferem mais entre si, e o status correto é atribuído a cada operação. Anteriormente, se uma atualização de preço assíncrona falhasse, todas as atualizações de preço assíncronas a seguir falhariam até que o consumidor de fila correspondente fosse reiniciado. GitHub-27865
Relatórios
- Relatórios > Marketing > Produtos em Carrinhos agora exibe somente o registro no escopo permitido do usuário que está gerando o relatório. Anteriormente, todos os dados estavam disponíveis para todos os escopos.
- O aplicativo agora usa a moeda especificada no escopo da função do comerciante que gera o relatório ao exibir a moeda do produto no relatório Produtos no carrinho.
- Os recursos do produto Visualizados recentemente e Comparados recentemente agora exibem estatísticas para diferentes lojas e sites na Administração, conforme esperado na implantação de várias lojas. Anteriormente, esses recursos não levavam em conta todas as lojas ou sites.
- Os relatórios Preços em Ordem agora usam o símbolo de moeda correto.
- O aplicativo agora verifica a existência de um token quando um usuário clica no botão Ir para Relatório Avançado do painel de Administração. Se o token existir, o aplicativo exibirá a página Relatórios avançados. Se o token não estiver configurado, o aplicativo exibe uma página informativa no Guia do usuário. GitHub-25411
Autorizações de devolução de produto (RMA)
- As opções selecionadas agora se aplicam aos itens de linha divididos ao dividir uma RMA. Anteriormente, os valores de Motivo da devolução, Condição do item e Resolução não eram salvos.
- Agora é possível excluir informações de rastreamento e envio de uma RMA quando o agrupamento JavaScript está habilitado.
- Os administradores com acesso restrito a apenas produtos em um escopo de site específico agora podem adicionar um item a um retorno mesmo quando esse item não estiver mais no escopo do site.
Resenhas
- O número de classificações exibidas em Lojas > Atributo > Classificação agora corresponde à contagem de classificações em uma implantação multissite. GitHub-30258
- A página Nova revisão agora é carregada conforme esperado quando você clica no botão Nova revisão no Administrador Marketing > Todas as revisões. Clicar em um produto nesta página abre o novo formulário de revisão esperado para esse produto.
- O aplicativo não lança mais este erro quando você tenta editar um pedido do Administrador Marketing > Todas as Avaliações:
Uncaught TypeError: Event.observe is not a function
. GitHub-30388
Recompensas
- Os pontos de recompensa agora são calculados conforme esperado para pedidos tributáveis quando um pedido parcial é concluído.
- Os comerciantes agora podem emitir com êxito um reembolso parcial para um pedido que foi comprado com pontos de recompensa e ainda reembolsar o restante do pedido. Anteriormente, os comerciantes não podiam reembolsar os pontos de recompensa pelo restante da ordem.
- O aplicativo não exibe mais este erro quando um comprador reaplica pontos de premiação após removê-los:
You removed the reward points from this order
.
- Os pontos de premiação agora são calculados corretamente quando um cliente faz um pedido usando uma moeda não base em uma loja que aceita várias moedas.
Vendas
- A coluna
order_created_at
desales_shipment_grid
foi atualizada conforme esperado após cada atualização.
- Agora você pode reordenar com êxito um produto com uma data de opções personalizadas de uma loja para a qual o Usar Calendário do JavaScript está habilitado. Anteriormente, ao tentar reordenar, o aplicativo não adicionava o item ao carrinho e exibia este erro:
Could not add the product with SKU "simp1" to the shopping cart: Please specify date required option(s).
- O aplicativo não fecha mais imediatamente um pedido quando um comprador verifica um pedido que consiste em um produto virtual com um custo total de US$ 0 em implantações em que o método de finalização de subtotal zero está habilitado.
- O aplicativo não arquiva mais um pedido antes de processá-lo. Anteriormente, a ação de seleção múltipla na grade Ordem do administrador afetava os pedidos não selecionados.
- A grade do memorando de crédito agora exibe o símbolo de moeda correto quando o Riyal saudita (SAR) é definido como a moeda base.
- O aplicativo agora exibe consistentemente as informações de endereço de entrega conforme esperado na página do pedido durante a finalização da compra.
- O valor de
total_qty
agora corresponde ao valor detotal_qty_ordered
nas faturas de vendas.
- O envio assíncrono de emails de vendas agora envia email apenas para os pedidos que foram criados após a data da última atualização. Anteriormente, o aplicativo não filtrava emails por data quando o envio assíncrono era ativado.
- O aplicativo agora envia um email de fatura conforme esperado quando um pedido é feito pelo administrador.
- O aplicativo agora apaga os dados de pedido existentes durante uma sessão em que um comerciante cria um novo pedido para um cliente do Administrador.
- Agora você pode alterar o grupo de clientes para novos clientes que são criados por meio de uma ordem de Administrador quando a Habilitar Atribuição automática para o Grupo de clientes está habilitada. Você também pode atribuir um grupo de clientes com base na validação de IVA. Anteriormente, ao validar o número IVA, o objeto de solicitação não verificava a solicitação atribuída
group_id
. Por padrão, ele usou o padrãogroup_id
.
- O aplicativo não altera mais o status de um pedido personalizado com status
Suspected Fraud
paraProcessing
depois que um comerciante cria uma remessa parcial usando a API REST.
Regra de Vendas
- Os códigos de cupom que foram aplicados com base no método de envio não são mais aplicados quando um comprador altera o método de envio. Anteriormente, o aplicativo não limpava os códigos de cupom quando os compradores trocavam de método de envio.
- Os compradores não podem aplicar um código de cupom com mais frequência do que o permitido pela configuração Usos por cliente. Anteriormente, se um comprador tivesse várias janelas do navegador abertas e vários pedidos feitos simultaneamente, cada pedido receberia o desconto, mesmo que a configuração Usos por cliente tivesse um valor de 1.
Pesquisar search-heading
- O Elasticsearch não lança mais um erro de modificador desconhecido quando um comprador pesquisa um sinônimo de pesquisa. Anteriormente, o escapador não tinha um símbolo de barra de escape em expressões regulares, o que resultou em um erro fatal.
- A pesquisa avançada não retorna mais os filhos de produtos configuráveis como resultados de pesquisa individuais quando os produtos filhos foram configurados com visibilidade definida como Não visível individualmente.
- A classificação de Elasticsearch dos nomes de produtos nos resultados de pesquisa não faz mais distinção entre maiúsculas e minúsculas.
- A página de resultados da pesquisa agora é armazenada em cache como esperado quando a configuração definir o Número de resultados de pesquisa principais para armazenar em cache como 0 é habilitada em Admin Lojas > Configuração > Catálogo > Catálogo > Pesquisa de Catálogo.
- O indexador de pesquisa de catálogo agora é executado sem gerar um erro devido ao limite do campo Elasticsearch. Anteriormente, o aplicativo exibia este erro:
Limit of total fields [xxx] in index [m24dev_product_1_v10] has been exceeded
.
- O desempenho da pesquisa de catálogo melhorou. Desabilitar Habilitar Sugestões de Pesquisa (Lojas > Configuração > Catálogo > Pesquisa de Catálogo ) funciona conforme esperado. Anteriormente, o aplicativo consultava a tabela
search_query
do MySQL, em vez do Elasticsearch, para obter sugestões de pesquisa de preenchimento automático. GitHub-25534
- O Elasticsearch agora filtra os preços dos produtos da mesma forma que o MySQL. O tipo de campo
price_*
foi alterado defloat
paradouble
no índice de Elasticsearch para melhorar a precisão e corrigir um erro de ponto flutuante.
- Um ouvinte de eventos de pressionamento de tecla foi adicionado ao Admin para ativar o formulário de pesquisa global quando uma barra é inserida. GitHub-29551
- O Elasticsearch não gera mais um erro, mas não exibe produtos conforme esperado quando um valor
string
é usado para filtrar produtos por atributo com um tipo de back-endinteger
oudecimal
. Anteriormente, o aplicativo exibia este erro emexception.log
:number format exception
.
-
O Elasticsearch não lança mais uma exceção quando um termo de pesquisa contém um
/
. GitHub-25886, GitHub-25110 -
A pesquisa agora está desabilitada conforme esperado para um grupo de clientes selecionado da consulta de produtos quando a configuração Não permitir Pesquisa de Catálogo por nas Permissões de Categoria gerais está habilitada. GitHub-29927
- Os resultados da pesquisa não incluem mais várias citações da mesma palavra. GitHub-30104
Envio
- O processo de finalização não falha mais quando uma interrupção da rede interrompe a conexão com o método de envio da DHL. Em vez disso, o aplicativo exibe outros métodos de envio disponíveis. Anteriormente, o processo de check-out era interrompido quando a conexão com o envio da DHL era interrompida e o aplicativo exibia este erro:
Sorry, no quotes are available for this order at this time
. GitHub-29902
- Os campos que descrevem o método de entrega UPS em Admin Lojas > Configuração > Vendas > Métodos de Entrega agora estão habilitados conforme esperado.
- As remessas criadas através do ponto de extremidade POST
/rest/V1/shipment
agora atualizam os pedidos corretamente. Anteriormente, o aplicativo criava uma remessa, mas o status da remessa permanecia no estado de processamento.
- O aplicativo não remove mais produtos simples do carrinho de compras quando outro produto é removido do carrinho antes do check-out com Enviar para vários endereços. GitHub-30259
- A página Revisão da Ordem agora exibe a quantia de imposto antes da quantia de entrega, conforme esperado para as ordens que estão sendo enviadas para vários endereços.
- O rastreamento de remessa UPS agora indica um status de
Delivered On
somente quando um pacote é entregue. GitHub-30032
- O aplicativo agora exibe o subtotal correto do carrinho para pedidos que contêm um produto virtual quando o comprador navega de volta para o carrinho a partir do check-out com vários endereços.
- Os comerciantes agora podem criar uma etiqueta de remessa a partir da página de remessa de um pedido existente que usa envio FedEx quando o agrupamento JavaScript está habilitado. Anteriormente, o aplicativo exibia um erro quando o comerciante clicava no botão Criar etiqueta de remessa.
- O link de rastreamento de remessa no email de confirmação de remessa enviado aos clientes agora funciona conforme esperado. Anteriormente, esse link retornava um erro 404.
- O aplicativo agora exibe uma mensagem de erro informativa quando um comprador faz o check-out usando vários endereços e, em seguida, remove todos os produtos, exceto um produto virtual. GitHub-25595
- Agora você pode criar uma etiqueta de remessa conforme esperado para um pedido parcial. Anteriormente, quando você tentava criar uma etiqueta de remessa para apenas um item de um pedido, o aplicativo adicionava todos os produtos ao pacote e a validação falhava. GitHub-29552
- A validação do método de envio não é mais ignorada ao chamar
/V1/guest-carts/:cartId/totals-information
. GitHub-25147
Mapa do site
- Os mapas de site gerados por
cron
agora incluem URLs de imagem corretas. Anteriormente, o caminho de imagem em cache gerado estava incorreto em implantações de várias lojas.
Estágios
- A página Editar página inicial agora exibe todas as atualizações programadas conforme esperado quando você procura atualizações programadas da página inicial. Anteriormente, o aplicativo exibia apenas uma das várias atualizações programadas.
- Enviar 0 com o ponto de extremidade de preço especial
/rest/V1/products/special-price-information
agora salva o preço e retorna o agendamento conforme esperado.
- Agora as importações programadas são executadas conforme esperado quando o arquivo CSV de importação contém uma marca de ordem de byte (BOM).
- O aplicativo não remove mais a classe de corpo do layout quando um comerciante programa uma atualização de categoria.
- As alterações de produto reagendadas agora não são mais apagadas após uma execução de
cron
.
- O aplicativo não emite mais um erro quando você tenta agendar uma atualização para uma categoria. Anteriormente, o aplicativo exibia este erro ao clicar em Salvar na página Agendar nova atualização:
Something went wrong while saving the Magento\Catalog\Api\Data\CategoryInterface
.
- A API
rest/V1/products/special-price
agora pode ser usada para agendar preços especiais de produtos para várias lojas. Anteriormente, o aplicativo exibia um erro quando um comerciante agendava uma atualização de preço para várias lojas no mesmo horáriofrom
eto
, quando uma reversão estava disponível no horário de início do novo agendamento.
Loja
- O Admin e o alternador de loja principal agora refletem as alterações feitas na ordem de classificação da loja no Admin. GitHub-13401
- O aplicativo agora cria URLs corretos para categorias e produtos depois que a chave de URL de nível superior de uma visualização da loja é alterada. Anteriormente, quando a árvore de categoria de um modo de exibição de armazenamento continha
url_keys
modificado, se uma chave de categoria não fosse alterada, mas a chave dos pais da categoria o fosse, o código original usaria o modo de exibição de repositório padrão da categoria ao criar URLs. GitHub-28633
Regras do Target
- O carregamento das páginas de detalhes do produto foi otimizado. Adicionamos índices para tabelas de banco de dados que otimizam consultas de condições de regra de destino para muitos casos.
- As regras de destino de produtos relacionados agora funcionam quando a condição
is one of
usada para o recurso Produtos a Serem Exibidos contém várias condições. Anteriormente, quando essa condição continha vários valores, ela não era analisada.
Imposto
- A validação de IVA em uma ordem de convidado não resulta mais na aplicação salvando a cotação com uma Classe de Imposto do Cliente incorreta. GitHub-30018
- Os pedidos enviados para vários endereços agora podem ser salvos durante o check-out quando o FTP estiver configurado. Anteriormente, após concluir um pedido para vários endereços, o aplicativo exibia uma página em branco em vez da página de sucesso do pedido.
- As páginas de detalhes do produto da loja agora exibem preços novos e antigos com e sem impostos, conforme esperado. GitHub-27500, GitHub-11998
Teste
- O
bin/magento dev:tests:run
agora inicia os seguintes testes conforme esperado: all, unit, integration, integration-all, static, static-all, integration, legacy e default.
AdminMediaGalleryInsertLargeImageFileSizeTest
foi refatorado.
- Os testes de unidade agora são compatíveis com o PHPUnit 8. GitHub-29779
\Magento\TestFramework\TestCase\WebapiAbstract
agora contém uma função que oferece suporte à comparação de matrizes grandes aninhadas de resultados esperados e reais em testes. Chaves irrelevantes no resultado agora podem ser ignoradas. GitHub-29498
AdminMediaGalleryCatalogUiEditCategoryGridPageTest
não falha mais aleatoriamente. GitHub-1764
dev/tests/integration/testsuite/Magento/Customer/Controller/AccountTest
foi aprimorado. (assert
agora se baseia no seletorXPath
em vez deassertStringContainsString
.) GitHub-29700
- Adição de cobertura de teste para o módulo
AdminAnalytics
. GitHub-29500
- Os testes funcionais de integração e API agora são compatíveis com o PHPUnit 9.3. GitHub-30146
- Correção de problemas com o teste
testRequestCacheTagsForCategoryListOnMultipleIds
do GraphQL. GitHub-29372
- O teste de disponibilidade de moeda para crédito da Empresa foi automatizado.
- Os valores de cabeçalho que incluem URLs agora são analisados corretamente em
ApiFunctional TestFramewor
k. GitHub-26425
—no-tablespaces
foi adicionado a todas as ocorrências demysqldump
, o que permite que testes de integração sejam executados sem o privilégioPROCESS
(necessário desde que MySQL 5.7.31 / 8.0.21 seja executadomysqldump
por padrão). GitHub-30566
Tema
- Um novo sinalizador
--no-parent
foi adicionado ao comandobin/magento setup:static-content:deploy
que impede que os pais de um tema sejam compilados. Esse novo sinalizador permite melhorar significativamente o desempenho do processo de implantação de conteúdo estático, evitando compilações desnecessárias. Observe que esse novo sinalizador não funciona ao usar a estratégiacompact
. GitHub-30184
- A configuração de design não gera mais operações DDL. Anteriormente, quando a configuração de design era atualizada, a aplicação gerava instruções DDL que podiam disparar erros do MySQL.
- O código redundante no módulo
Magento_ConfigurableProduct
no tema de Administração foi removido. GitHub-29857
- A navegação por estilos menos redundantes e as propriedades não usadas no tema em branco foram removidas. GitHub-29914
- Adição da funcionalidade de navegação recolhível ao Tema em branco na exibição móvel. GitHub-30237
- O carregamento de fontes da Web para temas foi otimizado. GitHub-29526
- Os desenvolvedores agora podem especificar o tipo de fonte ao declarar uma fonte personalizada em um tema. GitHub-29719
Tradução e códigos de idiomas
- O Seletor de data da grade Pedidos do administrador agora funciona como esperado quando a localidade do administrador é árabe (
ar_SA - Saudi Arabia
).
- O aplicativo não exibe mais uma mensagem de erro quando um comprador insere um endereço argentino com um código postal válido ao registrar ou adicionar um novo endereço. Anteriormente, o aplicativo exibia este erro:
Provided Zip/Postal Code seems to be invalid. Example: 1234. If you believe it is the right one you can ignore this notice.
- O aplicativo não emite mais um erro quando um comprador insere um código postal de cinco dígitos para um endereço coreano.
- Adição de suporte para as regiões do Uruguai definidas em ISO 3166-2:UY. GitHub-29729
zip_codes.xml
foi atualizado para impor oito dígitos aos códigos postais brasileiros. GitHub-29984
- Melhoria na localização das frases não localizadas restantes. GitHub-11175
- O espaço reservado de entrada da pesquisa de grade agora pode ser traduzido. GitHub-30510
- O aplicativo agora baixa os módulos JavaScript de traduções integradas somente quando estão ativados. GitHub-29553
IU
- O botão Criar uma Conta na página Criar Nova Conta permanece ativo quando um comprador insere dados inválidos. Anteriormente, esse botão estava desativado, o que impedia os compradores de tentar criar uma conta novamente após cometer um erro. Este foi um problema conhecido na versão 2.4.1. GitHub-30513
- O carregamento da grade de envio na página Admin Order Edit foi aprimorado.
- O aplicativo agora exibe a caixa de seleção Igual ao endereço de cobrança, conforme esperado na página do pedido, quando os produtos são adicionados ao carrinho pelo SKU.
- A classe CSS que definiu a largura limitada agora é aplicada como esperado aos campos Hora de Início no Admin Armazenamento > Configuração > Catálogo > Mapa do Site XML > Configurações de Geração. GitHub-29496
- Problemas de exibição corrigidos com o rótulo da caixa de seleção dos Termos e condições. GitHub-24060
- O aplicativo não exibe mais o código CSS para um bloco de preços de camada na página do produto quando os preços de camada não estão disponíveis. GitHub-29194
- A posição dos botões na página de detalhes da exibição de imagem foi reordenada para estar em conformidade com as diretrizes da interface do usuário. GitHub-1783
- O campo de texto do código do cupom agora é exibido em largura apropriada nos navegadores Internet Explorer/EDGE.
- A variável
@button__border-radius
agora está definida na bibliotecalib/web/css/source/lib/variables/_buttons.less
.border-radius
tem um valor padrão de3px
. Anteriormente,border-radius
era codificado. GitHub-28674
- O botão de envio de pesquisa (lupa) no mini campo de pesquisa agora fica desativado até que o comprimento mínimo da sequência de pesquisa seja atingido. GitHub-29704
- O botão Visualizar Modelo agora funciona conforme esperado na página Editar Fila.
- Ajustada a posição do cursor do meio até o início do campo Mensagem em Minha Conta > Registro de Presentes > Compartilhar Registro de Presentes.
- Problemas de exibição com o layout da coluna na página Adicionar exportação agendada foram resolvidos.
- O aplicativo agora preserva o valor de um atributo quando você move o atributo de um grupo para outro.
- O aplicativo agora exibe um ícone de calendário ao lado do campo de entrada Data, conforme esperado na página Criar uma conta da vitrine.
- Adição de uma variável de espessura de fonte pesada para
lib/web/css/source/lib/variables/_typography.less
. GitHub-29778
- A visibilidade do filtro agora funciona com a visibilidade da coluna, conforme esperado nas grades de administração. GitHub-30345
- O banner que o aplicativo exibe na página Logon do administrador como cliente agora permanece na parte superior da página quando o usuário rola a tela. GitHub-29354
- As opções do componente de seleção da interface do usuário não ficam mais visíveis quando
this.disabled(true)
é definido. GitHub-29098
- A variável
@font-family-name__base
não é mais usada ao carregar a fonte Open Sans. GitHub-29515
- O atributo WAI-ARIA
aria-atomic="true"
foi adicionado à marca do contêiner de erros. GitHub-29560
- As grades do componente de interface do usuário agora exibem uma contagem precisa dos itens selecionados. Anteriormente, as grades indicavam um número incorreto de seleções quando uma pesquisa por palavra-chave selecionava todos os itens de grade e o comprador subsequentemente desmarcava alguns itens antes de marcar a caixa de seleção do cabeçalho. GitHub-29968
- O aplicativo não exibe mais o HTML não renderizado nas páginas de visão geral de fatura e remessa. GitHub-29958
- Clicar em Opções em Lojas do Administrador > Taxas de Moeda agora direciona os usuários para a seção de opções de moeda expandida da página Configuração do sistema. GitHub-29336
- Aprimoramento do suporte para exibir um widget dependendo de outra condição para widgets
adminhtml
ao usar um tipo de widget seletor. GitHub-13316, GitHub-7252, GitHub-6868
- Preenchimento de texto aprimorado nas caixas de diálogo pop-up de confirmação no tema Luma. GitHub-30452
Cofre
- O módulo
Vault
agora reconhece códigos do método de pagamento da solicitação do serviço de gerenciamento de informações de pagamento. Anteriormente, quando um comprador fazia um pedido usando um cartão de crédito de Braintree salvo, o aplicativo exibia esse erro mesmo quando um método de pagamento válido era usado:The requested Payment Method is not available
.
Vértice
-
As sugestões de endereço agora são removidas conforme esperado quando um endereço é modificado.
-
Uma condição de corrida que impedia alguns clientes de salvar o endereço no painel de conta foi resolvida.
-
A validação do endereço de vértice não adiciona mais a página Editar endereço ao cache de página inteira em determinadas condições.
-
O imposto calculado por vértice agora é considerado quando o frete grátis é configurado para um valor que inclui imposto.
Estrutura da API da Web
- Agora você pode usar o POST
V1/invoice/:invoiceId/refund
para reembolsar uma fatura com uma quantidade zero de produtos e encargos de remessa (por exemplo,{"items": [{"qty": 0, "orderItemId": 6, "extensionAttributes": {}}], "appendComment": false, "notify": true, "isOnline": true, "arguments": {"adjustment_negative": 0.0, "adjustment_positive": 0.99, "shipping_amount": 0}}.
). Anteriormente, o aplicativo exibia este erro:You can't create a creditmemo without products
. GitHub-23069
- Agora você pode usar o POST
V1/categories
para criar ou atualizar uma categoria. Anteriormente, o aplicativo não salvava o valor se o valordefault_sort_by
estivesse definido como uma matriz. Quando o valordefault_sort_by
foi definido como uma cadeia de caracteres, o aplicativo emitiu este erro:Error occurred during \"custom_attributes\" processing. Attribute \"default_sort_by\" has invalid value. The \"string\" value's type is invalid. The \"string[]\" type was expected. Verify and try again.
- O uso do POST
V1/invoices/:id/capture
para capturar informações de pagamento agora funciona conforme esperado. Anteriormente, o aplicativo autorizava o pedido, mas o capturava somente no site do gateway de pagamento.
- Quando você usa o POST
V1/order/:orderId/ship
para criar uma remessa parcial, o ponto de extremidade retorna o número correto de produtos remetidos.
- As faturas criadas usando o POST
V1/order/:orderID/invoice
agora refletem com precisão o pagamento parcial por crédito de loja. Anteriormente, quando um pedido era pago parcialmente com crédito de armazenamento, a fatura era criada sem levar em conta o crédito de armazenamento.
- As chamadas de GET
rest/all/V1/categories
e GETrest/all/V1/categories?rootCategoryId=2
agora retornam camposname
eproduct_count
preenchidos conforme esperado para todas as categorias na árvore. Anteriormente, os valores do campo de categoria estavam vazios. O plug-in resolvedor de nome de tabela retornou um nome de tabela incorreto para buscar a contagem de produtos por categoria.
- O ponto de extremidade PUT
V1/categories/:id
agora armazena os dados necessários para criar redirecionamentos 301 para chaves de URL de categoria quando o atributo personalizadosave_rewrites_history
é fornecido. GitHub-29174, GitHub-30240
Lista de desejos
- Os compradores agora podem adicionar um produto a uma lista de desejos quando o produto é atribuído a uma origem de estoque personalizada. GitHub-3018
- Agora os administradores podem acessar a página Gerenciar carrinho de compras na página de cliente Admin depois que um cliente adiciona um produto à lista de desejos da loja. Anteriormente, o aplicativo exibia o seguinte erro quando o administrador clicava no botão Gerenciar carrinho de compras:
An error has occurred. See error log for details
.
- O botão Adicionar ao carrinho na página da lista de desejos compartilhada agora funciona conforme esperado para usuários anônimos, convidados e que não estão conectados.
- Agora, os compradores podem mover um produto de uma lista de desejos para outra com êxito.
- O aplicativo agora exibe as opções de atributo do produto configuráveis selecionadas na página da lista de desejos, conforme esperado. GitHub-24091, GitHub-22503
ActionInterface
implementado para\Magento\Wishlist\Controller\Shared\Allcart
. GitHub-29537
Problemas conhecidos
Problema: o arquivo [magento_root]/index.php
foi removido, e o aplicativo agora é executado de /pub
por padrão para configurações do Apache. Os armazenamentos servidos de subpastas não funcionarão como esperado e podem exibir erros 404. Solução alternativa: use symlinks para emular a instalação em subpastas. O exemplo a seguir usa dois armazenamentos (https://shop01.com/shop/
e https://shop02.com/shop/
) para ilustrar como usar um link simbólico para emular uma instalação em subpastas.
-
Criar um subdiretório para
https://shop01.com/shop/
:code language-bash mkdir magento_root/pub/shop01
code language-bash cd magento_root/pub/shop01
-
Crie symlinks para os diretórios pai do armazenamento no diretório recém-criado:
code language-bash ln -s ../media media
code language-bash ln -s ../static static
code language-bash ln -s ../../../pub pub
code language-bash ln -s ../.htaccess .htaccess
code language-bash ln -s ../health_check.php health_check.php
-
Crie um arquivo
index.php
dentro do novo diretório (magento_root/pub/shop01/index.php
) e adicione este conteúdo:
<?php
require realpath(__DIR__) . '/../../../app/bootstrap.php';
switch ($_SERVER['HTTP_HOST']) {
case 'shop01.com':
case 'www.shop01.com':
$params = $_SERVER;
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = 'shop01';
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);
$app = $bootstrap->createApplication(\Magento\Framework\App\Http::class);
$bootstrap->run($app);
break;
default:
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
/** @var \Magento\Framework\App\Http $app */
$app = $bootstrap->createApplication(\Magento\Framework\App\Http::class);
$bootstrap->run($app);
break;
}
- Configure seu servidor Apache para apontar para o novo subdiretório. As configurações de implantação podem variar bastante. Este é um exemplo de configuração de servidor:
<VirtualHost *:80>
DocumentRoot "magento_root/pub/shop1"
ServerName shop01.com
</VirtualHost>
Problema: os comerciantes devem ativar a funcionalidade Fastly TLS no Administrador para habilitar o redirecionamento global HTTP para HTTPS para todas as páginas de loja. Consulte o artigo da Base de Dados de Conhecimento Redirecionar HTTP para HTTPS para todas as páginas na Nuvem (Forçar TLS).
Problema: você não pode usar a mutação do GraphQL addConfigurableProductToCart
para adicionar um produto configurável ao carrinho em uma exibição de loja não padrão em uma implantação de várias lojas que executa o Inventory. (As vitrines da Luma não são afetadas.) o aplicativo exibe este erro: Could not add item to cart. Please check required options and try again
. Solução alternativa: em vez disso, use a mutação addProductsToCart
. GitHub-31660
Problema: o aplicativo não envia as informações de pagamento conforme esperado quando um comprador insere um código correto no campo CAPTCHA na página Pagamento, mas exibe este erro: There has been an error processing your request
. Isso ocorre somente quando o comprador tenta fazer o pedido sem inserir o código CAPTCHA ou inserindo-o incorretamente. Solução alternativa: atualize a página.
Problema: o aplicativo cria um pedido no Braintree conforme esperado quando um comprador clica em Pagar com Venmo, mas não cria o pedido no Administrador. Solução alternativa: nenhuma. Consulte o artigo 2.4.2 problema conhecido: o pagamento do Braintree Venmo não funciona da Knowledge Base.
Problemas conhecidos B2B
Problema: compradores B2B podem usar métodos de pagamento online para ignorar o fluxo normal da ordem de compra. Esse cenário pode ocorrer se o comprador puder reduzir todo o total do check-out para 0 — por exemplo, por um código promocional ou cartão-presente — e, posteriormente, remover o código ou o cartão-presente. Mesmo nessas condições, o aplicativo ainda coloca a ordem para o valor correto com base nos preços dos itens em seu catálogo atribuído. Solução alternativa: desabilite cartões-presente e códigos de cupom quando os métodos de pagamento online estiverem habilitados para aprovação de ordem de compra.
Problema: os compradores são redirecionados para o carrinho de compras ao tentar fazer um pedido de uma ordem de compra usando o Check-out do PayPal Express quando o Modo em Contexto está desabilitado.
Problema: o aplicativo às vezes exibe um erro 404 quando um comprador cria uma ordem de compra e, em seguida, navega até a página de check-out. Esse erro ocorre quando um comprador criou anteriormente uma ordem de compra diferente com um método de pagamento online antes de navegar até a página de finalização sem concluir a compra anterior. O comprador ainda pode colocar a ordem de compra. Solução alternativa: nenhuma.
Problema: os descontos para um método de pagamento específico persistem durante o check-out de uma ordem de compra mesmo quando o comprador altera seu método de pagamento durante o check-out final. Como resultado, os clientes podem receber um desconto ao qual não têm direito. Isso ocorre porque uma regra de carrinho para o método de pagamento original ainda é aplicada, apesar da alteração no método de pagamento. Solução alternativa: nenhuma. Consulte o 2.4.2 Problema conhecido B2B: o desconto permanece para Ordens de Compra online depois que o método de pagamento é alterado artigo da Knowledge Base.
Problema: a consulta deleteRequisitionListOutput
retorna detalhes sobre a lista de requisições excluídas em vez das listas de requisições restantes.
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.2 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.