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.

NOTE
As versões do Adobe Commerce podem conter alterações incompatíveis com versões anteriores (BICs). Para revisar as alterações incompatíveis com versões anteriores, consulte referência do BIC. Os principais problemas incompatíveis com versões anteriores estão descritos em destaques da BIC. Nem todas as versões introduzem os BICs principais.

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.

NOTE
A partir da versão 2.3.2, atribuiremos e publicaremos números indexados de vulnerabilidades e exposições comuns (CVE) com cada erro de segurança relatado a nós por terceiros. Isso permite que os usuários identifiquem mais facilmente vulnerabilidades não solucionadas na implantação. Você pode saber mais sobre os identificadores CVE em CVE.

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:

  • 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 objeto Customer 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 ao ProductInterface e CategoryInterface 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:

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:

Problemas corrigidos

Corrigimos centenas de problemas no código principal 2.4.2.

Instalação, atualização, implantação

  • 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 que row_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 e layout agora estão desabilitados conforme esperado após a execução de bin/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 executar bin/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 em queue_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êiner ssh após instalar o Adobe Commerce. GitHub-26762

Integração do Adobe Stock

  • Adicionado suporte para leitura de exif_image.png ou exif-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 modelo Model\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 em env.php. Anteriormente, o analytics_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 para checkout/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étodo collectAddressTotals 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 na customer_is_guest field. Anteriormente, para cada novo convidado que adicionava um produto ao carrinho, o registro recebia um 0 no campo quote.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.
  • 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 o max_price de um produto configurável como 0 na tabela catalog_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 atributo product_type estava reservado no código, o aplicativo exibia esta mensagem quando você tentava atualizar um atributo Product 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 ou Disabled 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 atributo src, 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 POST rest/all/V1/products se as imagens fossem excluídas em pub/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
  • 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 tarefa catalogrule_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 para url 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.
  • 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 em EntityAbstract.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 e status foi adicionado à tabela cron_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 e Validation 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 como Text e Input Validation está definido como Numeric 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.

Email

  • \Magento\Config\Model\Config\Source\Email\Template::toOptionArray não lança mais um erro quando setPath() não é chamado antes de toOptionArray(). 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 e sales_email/order_comment/copy_method está definido como bcc. 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 como save_handler, mas usava o session_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 por after

    • Código redundante removido

    • Substituiu (bool)->getValue() por isSetFlag. 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 por self:: 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étodo moveFileFromTmp. 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 e type_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 opcional Magento_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 Admin AdminNotification. 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 manipulam type 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 elemento 0. GitHub-30563
  • O código no arquivo checkout_index_index.xml foi aprimorado pela remoção de sortOrder dos componentes messages, authentication, progressBar, estimation e sidebar checkout. GitHub-30550
  • O conteúdo em calc agora tem escape, o que resulta na correção de calc valores no arquivo de saída CSS. Anteriormente, o aplicativo retornava um valor calc incorreto. GitHub-30542
  • O gerador de regravação de URL agora define os objetos de categoria url_key, url_path e store_id como valores de repositório padrão ao salvar regravações de URL de categoria para o escopo global. Anteriormente, ele salvou url_key, url_path e store_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 quando Magento_LoginAsCustomerAssistance foi habilitado, mas Magento_LoginAsCustomerAdminUi ou Magento_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 um Interceptor é 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 e queue_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 em queue_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, se root ou magento/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 classes EmailSender. 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, o productClick 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 filtro category_id é especificado com a palavra-chave in. GitHub-30349
  • As consultas categories e categoryList 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 e CategoryInterface 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 em lib/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 o CartItemInterface.
  • 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 atributo customizable_options em várias implementações de CartItemInterface 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 consulta products 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 ou exif-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ções max-width e height 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 valor NULL quando você importa endereços de clientes usando um arquivo CSV (entity type = "customer address" e import 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 o is_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 e textarea 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 e catalog_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 ou catalog_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 parcial catalogsearch_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 valor form_key em cache que acionava uma exceção. Quando Adicionar ao carrinho for clicado antes que o JavaScript seja totalmente inicializado, o valor form_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 layout adminhtml default (por magento2/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

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 segmento exif_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 e VerifyChildCategoriesShouldNotIncludeInMenuTest 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
  • Adicionados grupos de ação ao módulo Analytics. GitHub-29500
  • Atualização de CheckCheckoutSuccessPageAsRegisterCustomerTest e CheckCheckoutSuccessPageAsGuestTest 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 e ConfigurableSharedCatalog. 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

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

  • 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 para SHOW 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 e customerSession 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 de sales_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 de total_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ão group_id.
  • O aplicativo não altera mais o status de um pedido personalizado com status Suspected Fraud para Processing 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 de float para double 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-end integer ou decimal. Anteriormente, o aplicativo exibia este erro em exception.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ário from e to, 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 seletor XPath em vez de assertStringContainsString.) 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 TestFramework. GitHub-26425
  • —no-tablespaces foi adicionado a todas as ocorrências de mysqldump, o que permite que testes de integração sejam executados sem o privilégio PROCESS (necessário desde que MySQL 5.7.31 / 8.0.21 seja executado mysqldump por padrão). GitHub-30566

Tema

  • Um novo sinalizador --no-parent foi adicionado ao comando bin/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égia compact. 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.
  • 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 biblioteca lib/web/css/source/lib/variables/_buttons.less. border-radius tem um valor padrão de 3px. 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 valor default_sort_by estivesse definido como uma matriz. Quando o valor default_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 GET rest/all/V1/categories?rootCategoryId=2 agora retornam campos name e product_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 personalizado save_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.

  1. 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
    
  2. 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
    
  3. 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;
   }
  1. 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).

Parceiro
Solicitações Pull
Problemas relacionados do GitHub
Atwix
magento/magento2#29630, magento/magento2#29459, magento/magento2#29703, magento/magento2#29460, magento/magento2#29042, magento/magento2#29482}, magento/magento2#28821, magento/partners-magento2ee#260, magento/magento2#29148, magento/magento2#29634, magento/magento2#29832, 🔗}magento/magento2#29830🔗, magento/magento2#29829, magento/magento2#29828, magento/magento2#29821, magento/magento2#29820, magento/magento magento2#29836, magento/magento2#29831, magento/magento2#29822, magento/magento2#28653, magento/magento2#27391, magento/magento2#2 9833, magento/magento2#29904, magento/partners-magento2ee#264, magento/partners-magento2ee#248, magento/partners-magento2ee#168, magento/magento2#29929 53}, magento/magento2#29962, magento/partners-magento2ee#329, magento/magento2#29931, magento/partners-magento2ee#316, magento/magento2#29835, magento/magento2#29834, magento/magento2#30081, magento/magento2#30030, magento/magento2#29827, magento/magento2#30049, magento /magento2#30217, magento/magento2#27939, magento/partners-magento2ee#279, magento/magento2#30222, magento/partners-magento2ee#349, magento/magento2#2 9868, magento/partners-magento2ee#346, magento/magento2#30079, magento/magento2#30317, magento/magento2#30633, magento/magento2#3061 9, magento/magento2#30359, magento/magento2#30223, magento/magento2#30630, magento/magento2#29675, magento/magento2#33777, magento/magento2#30528, magento/magento2#30525, magento/magento2#30779, magento/magento2#30529, magento/magento2 114}magento/magento2#30694, magento/partners-magento2ee#400, magento/partners-magento2ee#401
magento/magento2#29649, magento/magento2#29712, magento/magento2#29501, magento/magento2#29145, magento/magento2#29500, magento/magento2#28520}, magento/magento2#28558, magento/magento2#29648, magento/magento2#29843, magento/magento2#29845, magento/magento2#29846, 2}magento/magento2#29847, magento/magento2#29824, magento/magento2#29823, magento/magento2#29841, magento/magento2#29844, magento magento2#29825, magento/magento2#29531, magento/magento2#29601, magento/magento2#29839, magento/partners-magento2ee#28551, magento/magento 2#29940, magento/magento2#29982, magento/magento2#29941, magento/magento2#29842, magento/magento2#29838, magento/magento2#33 103, magento/magento2#30032, magento/magento2#29848, magento/magento2#30058, magento/magento2#30031, magento/magento2#3006 1, magento/magento2#30561, magento/magento2#30469, magento/magento2#30468, magento/magento2#30372, magento/magento2#30683}, magento/magento2#30624, magento/magento2#29168, magento/magento2#30783, magento/magento2#30916, magento/magento2#30917, 4}magento/magento2#30782, magento/magento2#30926, magento/magento2#30625, magento/partners-magento2ee#30474, magento/partners-magento2ee#410
Blue Acorn iCi
magento/magento2#29670, magento/magento2#29669, magento/magento2#29564, magento/magento2#27494, magento/magento2#29269, magento/magento2#27609}, magento/magento2#29688, magento/magento2#29081, magento/magento2#28379, magento/magento2#29722, magento/magento2#27077, 2}magento/magento2#30318, magento/magento2#30010
magento/magento2#29672, magento/magento2#29673, magento/magento2#29679, magento/magento2#29537, magento/magento2#25595, magento/magento2#29689}, magento/magento2#28154, magento/magento2#28428, magento/magento2#27397, magento/magento2#29729, magento/magento2#29558, 2}magento/magento2#25110, magento/magento2#25886, magento/magento2#28286, magento/magento2#30009
Compactar
magento/magento2#29814, magento/magento2#29751, magento/partners-magento2ee#337, magento/partners-magento2ee#328, magento/partners-magento2ee#319, magento/magento2#30118, 12}magento/magento2#30019🔗, magento/magento2#29998, magento/magento2#29883
magento/magento2#29718, magento/magento2#29372, magento/magento2#29927, magento/magento2#29930, magento/magento2#29926, magento/magento2#29880}
Gato Branco Rápido
magento/magento2#29413, magento/magento2#28163, magento/magento2#30320, magento/magento2#30355, magento/magento2#28157, magento/magento2#30114}
magento/magento2#24060, magento/magento2#13401, magento/magento2#11175, magento/magento2#30296, magento/magento2#22503, magento/magento2#24091}, magento/magento2#30073
Vaimo
magento/magento2#29339, magento/magento2#28676, magento/magento2#29885
magento/magento2#28633, magento/magento2#29890
Cedcommerce
magento/magento2#27602, magento/magento2#30400, magento/magento2#30391
magento/magento2#27350, magento/magento2#30361, magento/magento2#30362, magento/magento2#30255
COMMERCE MRM
magento/magento2#30120, magento/partners-magento2ee#175
magento/magento2#30133, magento/partners-magento2ee#26943
EY
magento/magento2#30130
Pinpoint
magento/magento2#28687, magento/magento2#28663, magento/magento2#28491
magento/magento2#8538, magento/magento2#28479, magento/magento2#28186
creativestyle
magento/magento2#27696, magento/magento2#25405
magento/magento2#29553, magento/magento2#25399
Olho de peixe
magento/magento2#27940, magento/partners-magento2ee#267, magento/magento2#28216
magento/magento2#29555, magento/magento2#13440
SNOW.DOG
magento/magento2#29934
magento/magento2#29933
integer_net GmbH
magento/magento2#28164
magento/magento2#29585
Zifity
magento/magento2#29353, magento/magento2#27896, magento/magento2#28349
magento/magento2#29194, magento/magento2#29098
Dia do Bluebird
magento/magento2#27832
magento/magento2#11998, magento/magento2#27500
Krish TechnoLabs
magento/magento2#29923
magento/magento2#29920
Grupo nativo
magento/magento2#30109, magento/magento2#30421
magento/magento2#30125
Soluções de orientação
magento/magento2#28818
magento/magento2#29546
Le Site
magento/magento2#25412
magento/magento2#25411
Kensium Solutions LLC
magento/magento2#30230
magento/magento2#30179
Webjump
magento/magento2#27869
magento/magento2#27866
Consultoria em alinhamento
magento/magento2#29692
magento/magento2#30243
Wagento
magento/magento2#30411
magento/magento2#30408
MediaCT
magento/magento2#29210
magento/magento2#29515
eComero
magento/magento2#28917
magento/magento2#29656

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.

Membro da comunidade contribuinte
Solicitações Pull
Problemas relacionados do GitHub
Nazar Klovanych
#29576
1449
Shankar Konar
#29511
29496
Hazel Joie Caquicla
#29494
Hazel Joie Caquicla
#29491
Kos Rafał
#29483
29525
Hazel Joie Caquicla
#29461
Jekabs
#29458
29498
Nazar Klovanych
#29452
jmonteros422
#29435
1711
Shankar Konar
#29433
1738
Nazar Klovanych
#29429
1755, 1694
Bartłomiej Szubert
#29413
24060
Angelo Romano
#29410
29416
Honeymay Louiese Ignacio
#29400
1703
Franciszek Wawrzak
#27478
29606
Lukasz Bajsarowicz
#29670
29672
Lukasz Bajsarowicz
#29669
29673
Nazar Klovanych
#29636
1764
Oleh Usik
#29630
29649
Lukasz Bajsarowicz
#29564
29679
Ihor Sviziev
#29518
29653
Oleh Usik
#29459
Oleksandr Kravchuk
#29339
Will Wright
#29316
29315
Vadim Malesh
#29693
29700
Vadim Malesh
#29682
Andrii Beziazychnyi
#29703
29712
Shankar Konar
#29510
28422
Vadim Malesh
#29474
29267
Oleh Usik
#29460
29501
Dmitry Tsymbal
#29042
29145
Savvas Radevic
#28816
28802
Sascha
#28548
28674
Yan Nasonov
#28512
29661
Rudolf Vince
#27494
29537
Nazar Klovanych
#29684
1769
Nazar Klovanych
#29633
1763
Hazel Joie Caquicla
#29639
jmonteros422
#29632
1760
Oleh Usik
#29482
29500
Sathish Subramanian
#29353
29194
Russell Albin
#29269
25595
Bartłomiej Szubert
#28163
13401
Mateusz Krzeszowiak
#27696
29553
Vitaliy Prokopov
#27691
26903
korostii
#26081
26080
Nazar Klovanych
#29711
1774
Hazel Joie Caquicla
#29411
Wout Kramer
#29210
29515
Eduard Chitoraga
#29148
Oleh Usik
#28821
28558, 28520
Nazar Klovanych
#29783
1780
jmonteros422
#29774
1783
Hazel Joie Caquicla
#29772
Sergii Ivashchenko
#29761
jmonteros422
#29753
1784
Nazar Klovanych
#29743
1782
Nazar Klovanych
#29742
1778
Hazel Joie Caquicla
#29705
jmonteros422
#29677
1504
Ihor Sviziev
#29799
Oleh Usik
#29634
29648
Alexandr Skrashuk
#29348
28921
Vitaliy Prokopov
#28413
28388
Lukasz Bajsarowicz
#27609
korostii
#27579
27523
Cristian Partica
#29426
29425
Michał Derlatka
#28915
26425
Oleh Usik
#29832
29843
Oleh Usik
#29830
29845
Oleh Usik
#29829
29846
Oleh Usik
#29828
29847
Oleh Usik
#29821
29824
Oleh Usik
#29820
29823
Denys Babenko
#28343
29067
Bal
#27269
26288
Andrii Kasian
#27129
25199
Hazel Joie Caquicla
#29875
Hazel Joie Caquicla
#29869
Oleh Usik
#29836
29841
Oleh Usik
#29831
29844
Oleh Usik
#29822
29825
Tu Nguyen
#29044
29526
Vinoth
#28349
bradleybrecher
#27386
29560
Sergii Ivashchenko
#29921
Hazel Joie Caquicla
#29896
Shankar Konar
#29724
29704
Oleh Usik
#28653
29531
Tu Nguyen
#29913
29914
Nazar Klovanych
#29861
1789
Tu Nguyen
#29856
29857
Tu Nguyen
#29771
29779
Eden Duong
#29278
29277
Eden Duong
#29276
29336
Mohamed-Asar
#27896
29098
Honeymay Louiese Ignacio
#29947
toxix
#29925
28981, 29879
Viktor Kopin
#29906
Olga Zakharchuk
#29863
29958
Nikolaj Malevanec
#29006
12087
Abdul Rahman Abouzaid
#28687
8538
KrielkipNL
#27832
11998, 27500
Gaurav Agarwal
#27602
27350
Alexander Taranovsky
#27391
29601
Stanislav Ilnytskyi
#26877
26876
Sergii Ivashchenko
#29889
Nazar Klovanych
#29715
1487
Honeymay Louiese Ignacio
#29543
1724
Oleh Usik
#29833
29839
Porraphit Chuasuk
#28896
28892
Vitaliy Prokopov
#27857
26976
Eduard Chitoraga
#29904
Hazel Joie Caquicla
#30006
Ihor Sviziev
#29993
30004
Viktor Kopin
#29959
1813
Hazel Joie Caquicla
#29909
Lukasz Bajsarowicz
#29688
29689
Shankar Konar
#29415
29354
Hazel Joie Caquicla
#29967
Oleh Usik
#29929
29940
Hazel Joie Caquicla
#29895
ashokadewit
#27446
29603
Pascal Brouwers
#26527
26526
Sergii Ivashchenko
#30076
Hazel Joie Caquicla
#30044
Viktor Kopin
#29979
1806
Janusz Janczy
#29934
29933
Marvin Hinz
#29542
29185
Pieter Zandbergen
#29274
29524
Joe Hobbs
#25510
25147
Benoît Xylo
#25405
25399
Viktor Kopin
#30074
Hazel Joie Caquicla
#30042
Oleh Usik
#29962
29982
Oleh Usik
#29931
29941
Oleh Usik
#29835
29842
Oleh Usik
#29834
29838
Evgeny Levinsky
#27698
28324
Vadim Malesh
#26470
7720
Oleh Usik
#30081
30103
Leandro F. L.
#30014
30013
Taras Gamanov
#29968
24348, 24400
Shankar Konar
#29671
16531, 24332, 29852
Ejaz Alam
#29486
29487, 29502
Oleh Usik
#30030
30032
Eugene Shakhsuvarov
#28117
28116
Serhii Dzhepa
#30095
Hazel Joie Caquicla
#30057
Hazel Joie Caquicla
#30034
Marcos Trama
#29972
29984
Lyzun Oleksandr
#29814
29718
Tu Nguyen
#29794
29075
Greg Harvell
#29081
28154, 28428
Daniel Beitler
#29080
29659
Svyatoslav
#28818
29546
Fabian Schmengler
#28164
29585
Tymoteusz Motylewski
#27980
29590
Alex Gusev
#30077
26762, 29612
Abdul Rahman Abouzaid
#28663
28479
Abdul Rahman Abouzaid
#28491
28186
jiten-patel
#27953
12225
Ihor Sviziev
#30153
30183
Shankar Konar
#30069
30164
Leandro F. L.
#30011
29377
Oleh Usik
#29827
29848
Davide Riccardo Caliendo
#29015
29017
Zach Nanninga
#28379
27397
Bünyamin
#27869
27866
Eden Duong
#27585
29599
David Haecker
#30096
322
Yaroslav Garmash
#30075
312
John Carlo Octabio
#30028
Frédéric MARTINEZ
#30182
30191
Ihor Sviziev
#30170
30146
Rafael Kassner
#30160
Sean van Zuidam
#30139
30186
Bartosz Górski
#30120
30133
Milind Singh
#30109
30125
Kate Kyzyma
#30049
30058
Damián Culotta
#29722
29729
Anton Evers
#28995
29522
Kate Kyzyma
#30217
Nikita Sarychev
#30172
30173
Tu Nguyen
#30108
Alexander Menk
#29205
29174, 30240
Barny Shergold
#28676
28633
Jonas Hünig
#28516
29662
Tu Nguyen
#28177
30237
Alexander Taranovsky
#27939
30031
David Manners
#27581
29598
Navar Barnier
#27077
29558
kolaente
#30180
30190
Peep van Puijenbroek
#29466
29652
Frédéric MARTINEZ
#28588
Petkovski Marjan
#29751
29372
Oleh Usik
#30222
Timon de Groot
#28809
22375
Nirav Patel
#28385
30345
Dan Wallis
#27940
29555
Sean van Zuidam
#30065
30064
Tu Nguyen
#30008
30036
Tu Nguyen
#29726
29719
Gabriel Somoza
#28389
29165
Dan Wallis
#28216
13440
Rafael Corrêa Gomes
#25412
25411
Siim
#29885
29890
Bartosz Kubicki
#27092
29557
Sudheer Singamsetti
#30230
30179
Namrata
#30358
30450
Tu Nguyen
#30333
30448
Wojtek Naruniec
#30318
25110, 25886, 28286
Sean van Zuidam
#30062
30063, 30066
Tu Nguyen
#29773
29778
Pieter Cappelle
#26713
14398, 21885
Bartłomiej Szubert
#30320
11175
Bas van Poppel
#30167
30169
Ihor Sviziev
#30023
30025
Ihor Sviziev
#30002
30005
Eden Duong
#27574
29597
Rafael Kassner
#27454
29604
Nirav Patel
#30458
30452
Tu Nguyen
#30454
30496
solwininfotech
#30405
26133
Bartłomiej Szubert
#30355
30296
Serhii Dzhepa
#30554
Alin Alexandru
#30340
30508
Oleh Usik
#29868
30061
guillaume quintard
#28928
29988
Por
#28172
27925
Bartłomiej Szubert
#28157
22503, 24091
Nikolay Sumrak
#27672
29552
Jonas Hünig
#30502
30566
Yaroslav Bogutsky
#30493
30510
Tu Nguyen
#30453
30542
Sunil Patel
#30402
30388
Oleh Usik
#30079
Jeroen
#29911
29915
Pieter Hoste
#29196
29297, 29478
Johan Lindahl
#28917
29656
Bartosz Kubicki
#26967
29615
Ejaz Alam
#30579
30545
Pieter Hoste
#30570
6868, 7252, 13316
Namrata
#30538
30550
Pratik Oza
#30530
30552
Andrii Kasian
#30521
30563
naitsirch
#30322
30314
Kate Kyzyma
#30317
30561
Stanislav Ilnytskyi
#30198
30601
Cyildirim
#28352
28124
Andrii Beziazychnyi
#30633
30469
Eduard Chitoraga
#30619
30468
Sudheer Singamsetti
#30375
30349
Sagar Dahiwala
#30368
325
Nikolaj Malevanec
#30763
30747
Dmitry Tsymbal
#30359
30372
Oleh Usik
#30223
30683
Lukasz Bajsarowicz
#28147
28309
Matei Purcaru
#27972
27954
Vova Yatsyuk
#27674
29551
Bartosz Kubicki
#26966
30216
Simon Sprankel
#26401
29621
Gabriel da Gama
#30895
30896
Samuel Caçador
#30793
30833
Vova Yatsyuk
#30774
30781, 197
Diego Sanabria
#30681
30680
Evgen Mozok
#30632
24730
Sanjay Patel
#30411
30408
Shikha Mishra
#30400
30361, 30362
Shikha Mishra
#30391
30255
Bartłomiej Szubert
#30114
30073
Michael Bottens
#30010
30009
Tu Nguyen
#29986
29987
Saphal Jha
#29923
29920
Andrii Kasian
#27379
29600
Yaroslav Rogoza
#30630
30624
Oleh Usik
#29675
29168
Andrii Kalinich
#30749
23069
Viktor Kopin
#30727
30645
Thomas Klein
#30825
30859
Oleh Usik
#30777
30783
Oleh Usik
#30528
30916
Oleh Usik
#30525
30917
Ihor Svizievv
#30090
30184
Andrii Kalinich
#30866
24717
Viktor Kopin
#30928
30685
Nitish Singh
#30421
Oleh Usik
#30779
30782
Nazar Klovanych
#30662
30649
Oleh Usik
#30529
30926
Marush Denchev
#30614
30104
Lachlan
#29692
30243
Viktor Kopin
#30947
29128
Andrii Kalinich
#30807
26432
Viktor Kopin
#30961
13746
Nikolaj Malevanec
#30963
30295
Andrii Beziazychnyi
#30694
30625
Alexander Turiak
#30636
30467

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.

recommendation-more-help
1d4eef6c-fef1-4e61-85eb-b58d7b9ac29f