Notas de versão do Adobe Commerce 2.4.7

O Adobe Commerce 2.4.7 apresenta suporte para o PHP 8.3. Ele apresenta centenas de correções de qualidade e melhorias. As dependências do Core Composer e bibliotecas de terceiros foram atualizadas para as versões mais recentes disponíveis. Esta versão inclui melhorias significativas de desempenho, incluindo o carregamento mais rápido de páginas de listagem de produtos para produtos complexos com muitas opções e melhorias para o gerenciamento do indexador. Essa versão aumenta a cobertura do GraphQL para atributos personalizados e caches do resolvedor do GraphQL. Ele também introduz suporte para serviços FedEx e UPS atualizados recentemente.

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.

Outras informações sobre a versão

Embora o código desses recursos esteja incluído nas versões do código principal do Adobe Commerce, vários desses projetos (por exemplo, B2B 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 do Adobe Commerce 2.4.7

Procure os seguintes destaques nesta versão.

Aprimoramentos de segurança

Esta versão inclui as mesmas correções de segurança e melhorias de segurança da plataforma incluídas no Adobe Commerce 2.4.6-p5, 2.4.5-p7 e 2.4.4-p8. Consulte o Boletim de Segurança do Adobe para obter a discussão mais recente sobre esses problemas corrigidos.

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, lembretes para tomar todas as medidas necessárias para proteger seu administrador são:

Aprimoramentos adicionais de segurança

Os aprimoramentos de segurança desta versão melhoram a conformidade com as práticas recomendadas de segurança mais recentes.

  • Alterações no comportamento de chaves de cache não geradas:

    • As chaves de cache não geradas para blocos agora incluem prefixos que diferem dos prefixos para chaves geradas automaticamente. (As chaves de cache não geradas são chaves definidas por meio da sintaxe de diretiva de modelo ou pelos métodos setCacheKey ou setData.)
    • As chaves de cache não geradas para blocos agora devem conter apenas letras, dígitos, hifens (-) e caracteres de sublinhado (_).
  • Limitações sobre o número de códigos de cupom gerados automaticamente. O Commerce agora limita o número de códigos de cupom gerados automaticamente. O máximo padrão é 250.000. Os comerciantes podem usar a nova opção de configuração Code Quantity Limit (Stores > Settings:Configuration > Customers > Promotions) para evitar que o sistema fique sobrecarregado com muitos cupons.

  • Otimização do processo de geração de URL de Administrador padrão. A geração do URL de administrador padrão foi otimizada para aumentar a aleatoriedade, o que torna os URLs gerados menos previsíveis.

  • Suporte para SRI (Integridade de Sub-Recursos) adicionado para atender aos requisitos da PCI 4.0 para verificação de integridade de script em páginas de pagamento. O suporte à Integridade de sub-recursos (SRI) fornece hashes de integridade para todos os ativos do JavaScript que residem no sistema de arquivos local. O recurso SRI padrão é implementado apenas nas páginas de pagamento para as áreas de Administração e vitrine eletrônica. No entanto, os comerciantes podem estender a configuração padrão para outras páginas. Consulte Integridade de sub-recursos no Guia do Desenvolvedor do Commerce PHP.

  • Alterações na Política de Segurança de Conteúdo (CSP)—Atualizações e aprimoramentos de configuração nas Políticas de Segurança de Conteúdo (CSPs) da Adobe Commerce para atender aos requisitos da PCI 4.0. Para obter detalhes, consulte Políticas de Segurança de Conteúdo no Guia do Desenvolvedor do Commerce PHP.

    • A configuração padrão da CSP para páginas de pagamento para o Administrador do Commerce e áreas de vitrine agora é o modo restrict. Para todas as outras páginas, a configuração padrão é o modo report-only. Nas versões anteriores à 2.4.7, o CSP foi configurado no modo report-only para todas as páginas.

    • Adição de um provedor nonce para permitir a execução de scripts integrados em uma CSP. O provedor nonce facilita a geração de cadeias de caracteres nonce exclusivas para cada solicitação. As cadeias de caracteres são anexadas ao cabeçalho da CSP.

    • Adição de opções para configurar URIs personalizados para relatar violações de CSP para a página Criar pedido no Admin e a página Check-out na loja. Você pode adicionar a configuração do Administrador ou adicionando o URI ao arquivo config.xml.

      note note
      NOTE
      Atualizar a configuração da CSP para o modo restrict pode bloquear scripts incorporados existentes nas páginas de pagamento na Administração e na loja, o que causa o seguinte erro do navegador quando uma página é carregada: Refused to execute inline script because it violates the following Content Security Policy directive: "script-src. Corrija esses erros atualizando a configuração da lista de permissões para permitir os scripts necessários. Consulte Solução de problemas no Guia do Desenvolvedor do Commerce PHP.
  • Uma nova configuração de cache de página inteira pode ajudar a reduzir os riscos associados ao ponto de extremidade HTTP {BASE-URL}/page_cache/block/esi. Esse endpoint oferece suporte a fragmentos de conteúdo irrestritos e carregados dinamicamente de manipuladores de layout e estruturas de bloco do Commerce. A nova definição de configuração Handles params size define o valor do parâmetro handles desse ponto de extremidade, que determina o número máximo permitido de identificadores por API. O valor padrão dessa propriedade é 100. Os comerciantes podem alterar esse valor de Admin (Stores > Settings:Configuration > System > Full Page Cache > Handles params size). Consulte Configurar o aplicativo Commerce para usar o Verniz.

  • Limitação de taxa nativa para informações de pagamento transmitidas por meio de APIs REST e GraphQL. Os comerciantes agora podem configurar a limitação de taxa para as informações de pagamento transmitidas usando REST e GraphQL. Essa camada adicional de proteção suporta a prevenção de ataques de cartões e potencialmente diminui o volume de ataques de cartões que testam muitos números de cartão de crédito de uma só vez. Essa é uma alteração no comportamento padrão de um endpoint REST existente. Consulte Limitação de taxa.

  • O comportamento padrão da consulta GraphQL isEmailAvailable e do ponto de extremidade REST (V1/customers/isEmailAvailable) foi alterado. Por padrão, as APIs agora sempre retornam true. Os comerciantes podem habilitar o comportamento original definindo a opção Habilitar Logon de Check-out de Convidado no Administrador para yes, mas isso pode expor as informações do cliente a usuários não autenticados.

Aprimoramentos na plataforma

As atualizações de plataforma para esta versão melhoram a conformidade com as práticas recomendadas de segurança mais recentes.

O Adobe Commerce 2.4.7 inclui as seguintes atualizações de plataforma:

  • Compatibilidade com o PHP 8.3. Esta versão apresenta suporte para o PHP 8.3. O Commerce agora suporta o PHP 8.3 e 8.2. O PHP 8.2 será compatível até sua data de fim de serviço (EOS) em dezembro de 2025. Depois de dezembro de 2025, todos os comerciantes que executam implantações 2.4.7 devem migrar para o PHP 8.3.

O Adobe Commerce 2.4.7 ainda é compatível com o PHP 8.1 apenas para fins de atualização. O PHP 8.1 não é suportado e não é recomendado. O código principal Adobe Commerce 2.4.7, todas as extensões agrupadas e todas as extensões de propriedade do Adobe e serviços SaaS são compatíveis com o PHP 8.3.

  • Suporte ao RabbitMQ 3.13. Esta versão é compatível com a versão mais recente do RabbitMQ 3.13. A compatibilidade permanece com o RabbitMQ 3.11 e 3.12, que são compatíveis até agosto de 2024 e dezembro de 2024, respectivamente, mas o Adobe recomenda usar o Adobe Commerce 2.4.7 somente com o RabbitMQ 3.13.

  • Composer 2.7.x. A compatibilidade com o Composer 2.2.x permanece.

  • Suporte ao cache de verniz 7.4. Esta versão é compatível com a versão mais recente do Varnish Cache 7.4. A compatibilidade permanece com as versões 6.0.x e 7.2.x, mas recomendamos usar o Adobe Commerce 2.4.7 somente com o Cache do Varnish versão 7.4 ou versão 6.0 LTS.

  • Elasticsearch 8.11 compatibilidade

  • Opensearch 2.12 e OpenSearch 1.3 são compatíveis com

  • Redis 7.2

  • A biblioteca extjs foi substituída pela versão mais recente de jsTree.

  • A biblioteca jquery/fileUpload foi removida.

Todas as bibliotecas JavaScript e dependências NPM no código principal do Adobe Commerce foram atualizadas para as versões mais recentes disponíveis. Todas as dependências da biblioteca Laminas foram atualizadas para a versão mais recente que é compatível com o PHP 8.3.

Atualizações adicionais

  • Suporte a vários cupons por pedido. Os comerciantes agora podem configurar o número máximo de cupons que podem ser aplicados por pedido com a nova opção de configuração Maximum number of coupons per order. Esse valor é definido como 1 por padrão. Agora você pode usar o REST ou o GraphQL para aplicar vários cupons a um carrinho.

  • O gateway da API XML do Commerce UPS foi migrado para a nova API REST do Commerce UPS para oferecer suporte às atualizações que o UPS está fazendo no modelo de segurança da API. (O UPS está implementando um modelo de segurança OAuth 2.0 (tokens de portador) para todas as APIs.) Todas as APIs XML do Commerce UPS anteriores foram removidas da base de código do Adobe Commerce 2.4.7.

  • A integração do Adobe Commerce com FedEx foi migrada dos serviços Web FedEx WSDL herdados para as APIs RESTful mais recentes do FedEx. O WSDLS de Rastreamento de Serviços Web da FedEx, Validação de Endereço e Validação de Códigos Postais será desativado em maio de 2024.

  • Adição de suporte para o novo método de envio USPS Ground Advantage. Essa é uma integração imediata com o novo método de envio do USPS, o USPS Ground Advantage, lançado em julho de 2023. Essa nova integração pode ser usada para recuperar taxas de envio e agendar entregas e devoluções por meio do serviço de envio do USPS. O método de envio USPS Ground Advantage substitui esses métodos de envio, que foram retirados quando o método de envio USPS Ground Advantage foi lançado:

    • USPS Retail Ground
    • Serviço de pacote de primeira classe
    • Selecionar terra do pacote
  • Os módulos de envio do Temando foram removidos da base de código principal do Commerce. Este recurso foi descontinuado no Adobe Commerce 2.4.4.

Aprimoramentos de desempenho e escalabilidade

O Commerce 2.4.7 inclui os seguintes aprimoramentos no desempenho e na escalabilidade do Commerce:

  • Os comerciantes corporativos agora podem configurar até um milhão de regras de preço do carrinho baseadas em cupom ativas no Adobe Commerce, sem degradar significativamente o desempenho das operações de carrinho e check-out.

  • Gerenciamento de indexador aprimorado. O novo comando indexer:set-status dá suporte ao gerenciamento dinâmico do status do indexador. Usuários administradores podem usar este comando para alterar o status do indexador para suspended, invalid ou valid. Esse recurso é particularmente útil para gerenciar o desempenho do sistema durante operações extensas em massa, como importações ou atualizações de produtos, permitindo o controle sobre quando os indexadores são acionados automaticamente pelos trabalhos cron do sistema. Consulte Gerenciar os indexadores.

  • Página de listagem de produtos complexos com muitas opções. O tempo de carregamento melhorou para páginas de listagem de produtos que incluem produtos complexos com mais de 100 opções. O desempenho das solicitações do GraphQL para listar produtos por categoria também melhorou.

  • Agora há suporte para o formato JSON para a REST API de Importação. Os comerciantes agora podem importar até 100.000 registros por minuto para o Adobe Commerce no formato JSON.

  • Melhorias no desempenho da regra de vendas. Desempenho aprimorado de implantações corporativas com muitas (aproximadamente 100.000) regras de vendas ativas. As implantações corporativas que implementam promoções com muita frequência implantam muitas regras de carrinho ativas. Esses tipos de implantações empresariais que executam o Commerce 2.4.7 não notarão nenhuma degradação de desempenho relacionada ao número de regras de preço do carrinho configuradas durante as operações de finalização.

  • Operações de salvamento mais rápidas de configurações no nível do armazenamento para implantações com muitos armazenamentos. Salvar as definições de configuração em implantações com mais de 500 armazenamentos pode ser demorado. O novo módulo Configuração Assíncrona habilita operações assíncronas de salvamento de configuração executando um trabalho cron que usa um consumidor para processar a operação de salvamento em uma fila de mensagens. AsyncConfig está desabilitado por padrão.

  • Geração mais rápida do cache de configuração para configurações grandes. O comando bin/magento cache:clean config agora pré-aquece o cache de configuração quando ele está habilitado. Isso reduz o tempo de inatividade necessário para gerar o cache de configuração para configurações grandes. As operações de salvamento de configuração não limpam mais o cache config_scopes antes de gravar dados no cache, o que também reduz o tempo que outras solicitações ficam bloqueadas enquanto os dados de configuração são gravados.

Servidor de aplicativos GraphQL

O GraphQL Application Server permite que o Adobe Commerce mantenha o estado entre as solicitações de API do Commerce GraphQL e elimina a necessidade de bootstrapping, o que resulta em maior taxa de transferência, menor latência e uso eficiente de recursos para todas as APIs do GraphQL. Ao compartilhar o estado do aplicativo entre os processos, as solicitações da API GraphQL tornam-se significativamente mais eficientes e as respostas da API GraphQL são, em média, 30% mais rápidas.

O GraphQL Application Server está disponível somente para o Adobe Commerce. Não está disponível para o Magento Open Source. Você deve enviar um tíquete de Suporte da Adobe Commerce para habilitar o Servidor de Aplicativos GraphQL em projetos Pro.

NOTE
No momento, o GraphQL Application Server não é compatível com Amazon Simple Storage Service (AWS S3). Os clientes do Adobe Commerce na infraestrutura em nuvem que atualmente usam o AWS S3 para armazenamento remoto não podem usar o GraphQL Application Server até que o Adobe libere um hotfix posteriormente em 2024.

Metappackage da extensão do Adobe Commerce

Esta versão apresenta o metapackage de extensão do Adobe Commerce v2.0.0, que agrupa automaticamente extensões selecionadas do Adobe Commerce com esta versão principal. As versões dessas extensões incluídas neste metapackage são instaladas quando o composer update é executado, simplificando o processo de atualização dessas extensões ao atualizar para a versão principal mais recente. Essas extensões mantêm programações de lançamento independentes.

O metapackage de extensão do Adobe Commerce para Adobe Commerce 2.4.7 inclui estas extensões:

As versões futuras deste metapackage de extensão podem conter extensões adicionais.

Webhooks do Adobe Commerce

Os webhooks do Commerce (v1.2.0 ) permitem que os desenvolvedores configurem a lógica síncrona para executar chamadas para sistemas externos quando um evento do Adobe Commerce é acionado. As chamadas síncronas são necessárias quando o Commerce deve calcular ou validar imediatamente um valor, como um total de pedido, imposto ou pagamento usando um endpoint de terceiros e, posteriormente, gravar o resultado de volta no Adobe Commerce.

Agora, os webhooks do Commerce são instalados por padrão. Consulte Visão geral dos webhooks do Adobe Commerce

Adobe Stock

O pacote do Adobe Stock (adobe-stock-integration) agora está empacotado no metapacote de extensões do Commerce (extensions-metapackage) para oferecer suporte a atualizações mais frequentes.

B2B

NOTE
A versão 2.4.7 é compatível com o B2B 1.4.2. No entanto, a Adobe recomenda que os clientes aguardem a próxima versão B2B 1.5.0 GA antes de atualizar, o que inclui suporte para o PHP 8.3. Consulte as notas de versão B2B.

Braintree

  • Vaulted PayPale Pay Later Alterações—Os clientes conectados que já abrigaram/armazenaram sua conta do PayPal têm a opção de pagar com:

    • Pay Now (sem precisar entrar na conta PayPal, o usuário pode pagar com seu cartão padrão)
    • Pagar com uma fonte de financiamento diferente
    • Pagar com uma conta diferente
    • Botão PayPal Pay Later ou PayPal Credit
  • Suporte para 3DS paraGoogle Pay—Suporte para verificação 3DS incluído para Google Pay placas não tokenizadas. Consulte a documentação do Braintree para obter mais informações.

  • Vault Apple Pay Payments — Permitir que os clientes conectados armazenem seus pagamentos do Apple Pay em sua conta da Commerce Store para uso em transações futuras. Isso reduz o número de etapas no check-out e cria uma experiência de check-out mais rápida para o cliente recorrente.

  • Vault Google Pay Payments — Permitir que os clientes conectados armazenem seus pagamentos do Google Pay em sua conta da Commerce Store para uso em transações futuras. Isso reduz o número de etapas no check-out e cria uma experiência de check-out mais rápida para o cliente recorrente.

  • Vault Venmo Payments — Permitir que os clientes conectados armazenem suas contas do Venmo em suas contas do Commerce Store para usar em transações futuras. Isso reduz o número de etapas no check-out e cria uma experiência de check-out mais rápida para o cliente recorrente.

  • Vault ACH Payments — Permitir que os clientes conectados compartilhe/armazenem seus pagamentos de ACH para sua conta de loja da Commerce para usar em transações futuras. Isso reduz o número de etapas no check-out e cria uma experiência de check-out mais rápida para o cliente recorrente.

  • Express Paymentbotões na parte superior do check-out—Para incentivar uma experiência de check-out mais rápida, introduzimos Express Payment opções no início do check-out. Os clientes agora podem pagar por pagamentos de PayPal, PayPal Pay Later, Apple Pay e Google Pay Express.

  • Braintreenotas de versão e links de suporte na Configuração de administração—Os comerciantes agora podem vincular diretamente do Administrador da Commerce ao suporte para Braintree e notas de versão online.

  • Suporte do GraphQL para todos os métodos de pagamento Braintree excetoVenmo — Mais configurações são expostas na API do GraphQL. Isso é particularmente útil para aplicativos headless.

  • Vaultingpagamentos na área de conta—Os clientes conectados agora podem guardar/armazenar novos cartões de crédito/débito e PayPal contas na área de conta do Cliente. Anteriormente, os clientes só podiam realizar o cofre/loja ao salvar seus pagamentos para uso posterior ao concluir uma transação no check-out, agora eles podem fazer o cofre de novos cartões de crédito/débito e contas do PayPal sem precisar criar uma nova transação.

  • Transações sem Fricção—As transações sem fricção aceleram o processo de pagamento reduzindo a quantidade de cliques/etapas do cliente para concluir uma transação de cartão de crédito/débito online. Anteriormente (quando o 3DS era ativado), cada cliente enfrentava o desafio do 3DS. Com o novo recurso de transações sem atrito, os clientes só precisam do 3DS quando o banco o solicitar. Isso reduz o abandono do carrinho, aumenta as taxas de conversão e resulta em mais vendas.

  • Webhooks de contestação — Quando um cliente contesta uma transação no Braintree, o status da contestação agora é passado para o Commerce. Ela pode ser pesquisada na grade Sales > Order e está anexada a cada pedido.

Integração do Commerce com o Adobe IMS

O pacote de integração do Adobe IMS (adobe-commerce/adobe-ims-metapackage) agora está empacotado no metapacote de extensões do Commerce (extensions-metapackage) para oferecer suporte a atualizações mais frequentes.

GraphQL

O Commerce 2.4.7 inclui recursos aprimorados de armazenamento em cache do GraphQL, suporte ao esquema do GraphQL para atributos personalizados, suporte para cancelamento de pedido headless e armazenamento em cache do resolvedor aprimorado.

  • Gerenciamento mais flexível do carrinho. A mutação clearCart agora limpa o conteúdo de um carrinho de compras especificado em uma única ação. Ele substitui a mutação clearCustomerCart, que foi descontinuada.

  • Melhorias em criar mutações no carrinho. A mutação createGuestCart foi adicionada para substituir a mutação createEmptyCart obsoleta. Anteriormente, se você usava o createEmptyCart, não era possível determinar se o carrinho era para um cliente convidado ou conectado.

  • Os itens do pedido agora incluem imagens do produto. O OrderItemInterface expõe as imagens do produto, o que permite que as imagens sejam associadas a produtos solicitados e carregadas de forma mais eficiente. GitHub-32369

  • Suporte expandido para o cache de resolvedor. Os seguintes resolvedores de consulta do GraphQL agora podem ser armazenados em cache no cache de resultados do GraphQL Resolver, que melhora o desempenho quando as consultas são enviadas com solicitações POST:

    • Magento\CustomerGraphQl\Model\Resolver\Customer::resolve
    • Magento\CustomerGraphQl\Model\Resolver\CustomerAddress::resolve
    • Magento\CustomerGraphQl\Model\Resolver\IsSubscribed::resolve
    • Magento\CatalogGraphQl\Model\Resolver\Product\MediaGallery::resolve
  • Suporte para cancelamento de pedido. A mutação cancelOrder permite que um cliente cancele um pedido, transmitindo seu identificador e um motivo de cancelamento.

  • Suporte aprimorado para atributos personalizados. O suporte ao atributo personalizado do GraphQL foi aprimorado com o enriquecimento dos dados da API para oferecer suporte a todos os tipos de atributos. O esquema de atributos do EAV do GraphQL agora oferece suporte à extensão de atributos do cliente e objetos de endereço do cliente no Administrador e à recuperação deles usando o GraphQL. As áreas específicas de aprimoramento incluem:

    • suporte estendido/adicionado a atributos personalizados para áreas específicas, como cliente e endereço do cliente
    • adição de cache para atributos personalizados
    • suporte aprimorado a atributos personalizados existentes para produtos
  • Os recursos aprimorados de cache do GraphQL melhoram a velocidade de carregamento da página. O recurso de armazenamento em cache foi adicionado a essas consultas, melhorando a velocidade do tempo de carregamento da página para a maioria das páginas de PWA:

  • Desempenho de analisador GraphQL aprimorado. O desempenho do analisador do GraphQL foi aprimorado ao reduzir o número de vezes que o método de análise é chamado por solicitação. Agora é chamado uma vez. Anteriormente, o analisador era chamado pelo menos três vezes.

Novos campos para mutações existentes

  • Adição do campo quickorder_active às consultas storeConfig e availableStores. Este campo indica se o recurso de pedido rápido está habilitado.

  • Adição dos seguintes campos às mutações setBillingAddressOnCart e setShippingAddressesOnCart:

    • fax
    • middlename
    • prefix
    • suffix

Novas consultas e mutações

Consultas e mutações obsoletas

Inventory management

O Inventory management (v1.2.7) fornece ferramentas para gerenciar o inventário de produtos. Esse recurso desenvolvido pela comunidade é fornecido com o código principal do Adobe Commerce e do Magento Open Source.

Pagamentos

  • O suporte do GraphQL foi adicionado para operações principais para todos os métodos de pagamento, exceto Venmo. Os novos pontos de extremidade do GraphQL para serviços de pagamento estão descritos em Check-out.

  • A compartimentação de cartão de crédito foi aprimorada para todos os métodos de pagamento, exceto Venmo. Agora, os compradores podem fazer o Vault ou salvar seus pagamentos da ACH e visualizá-los ou excluí-los da página da conta. Os comerciantes podem ativar e desativar os pagamentos com cofre da ACH junto ao Administrador.

  • O fluxo de trabalho de check-out agora inclui uma seção de pagamento expresso que fornece os botões PayPal, Google Pay e Apple Pay Express.

Opções de Pagamento apresenta os métodos de pagamento compatíveis.

PWA Studio

O PWA Studio v14.0 é compatível com o Adobe Commerce 2.4.7. Ele inclui várias melhorias para melhorar a acessibilidade. Para obter informações sobre correções de erros, consulte versões de PWA Studio. Consulte Compatibilidade de versão para obter uma lista de versões do PWA Studio e suas versões principais compatíveis do Adobe Commerce.

Estrutura da API da Web

Trabalhando com vários cupons por carrinho

Os novos endpoints REST oferecem suporte à exibição, adição e exclusão de vários cupons associados a um carrinho.

NOTE
Pela primeira vez, várias rotas de ponto de extremidade REST contêm a cadeia de caracteres V2 em vez de V1. Por exemplo, GET /rest/default/V2/carts/{cartId}/coupons. Para os comerciantes do Commerce, esses endpoints devem substituir as versões V1 dos endpoints. Esses pontos de extremidade estão disponíveis somente no Adobe Commerce.

Retorne todos os códigos de cupom associados ao carrinho:

GET /rest/{store_code}/V2/carts/{cartId}/coupons
GET /rest/{store_code}/V2/carts/mine/coupons

Anexar um código de cupom a um carrinho:

POST /rest/{store_code}/V2/carts/{cartId}/coupons/{couponCode}
POST /rest/{store_code}/V2/carts/mine/coupons/{couponCode}

Substituir códigos de cupom em um carrinho:

PUT /rest/{store_code}/V2/carts/{cartId}/coupons
PUT /rest/{store_code}/V2/carts/mine/coupons

Remover códigos de cupom de um carrinho:

POST /rest/{store_code}/V2/carts/{cartId}/coupons/deleteByCodes
POST /rest/{store_code}/V2/carts/mine/coupons/deleteByCodes

Pontos de extremidade adicionais
Esta versão apresenta dois novos endpoints REST que fornecem uma solução alternativa para uma limitação com os endpoints GET e POST V1/products/attributes da API REST. Esses pontos de extremidade retornam o mesmo valor para o atributo is_filterable para as opções Filterable(with results) e Filterable(no results) da opção Use in Layered Navigation. (A propriedade do atributo is_filterable é do tipo Boolean, o que não permite definir essa propriedade como Filterable(no results).)

Dois novos endpoints de REST foram implementados como solução alternativa:

  • PUT /V1/products/attributes/{attributeCode}/is-filterable/{isFilterable}. Parâmetros de caminho: attributeCode (String) e isFilterable (int valores são: 0 é Não; 1 é Filterable (with results); 2 é Filterable (no results)).
  • GET /V1/products/attributes/{attributeCode}/is-filterable. Parâmetros de caminho: attributeCode (String).

Problemas corrigidos

Corrigimos centenas de problemas no código principal do Adobe Commerce 2.4.7. Um subconjunto dos problemas corrigidos incluídos nesta versão está descrito abaixo. As correções incluídas nas versões anteriores do Commerce 2.4.7-beta também estão descritas.

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

  • A manipulação de cache desnecessária foi removida do processo de configuração. Anteriormente, o Commerce gravava sua configuração no disco desnecessariamente quando bin/magento setup:db-data:upgrade ou bin/magento setup:upgrade era executado, o que causava problemas com alguns módulos durante a instalação. GitHub-38124
  • Problemas de implantação devido à memória insuficiente e a tabelas grandes foram resolvidos. O comando bin/magento setup:upgrade não falha mais devido a erros de memória excedida relacionados a tabelas MySQL grandes.
  • bin/magento setup:install agora é concluído com êxito depois que app/etc/config.php é excluído. Anteriormente, o arquivo ausente não era gerado novamente durante a instalação, e o Commerce emitiu um erro. GitHub-37805
  • bin/magento setup:upgrade foi refatorado para ser executado com êxito ao instalar um novo módulo que instala as tabelas e os indexadores mview associados. GitHub-37304
  • A restauração do banco de dados não falha mais devido a um erro de delimitador. Anteriormente, o Commerce exibia este erro quando bin/magento setup:rollback --db era executado: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'delimiter' at line 1, query was: delimiter ;;.
  • O comando bin/magento setup:upgrade não falha mais com este tipo de erro relacionado ao limite de memória do MySQL: PHP Fatal error: Allowed memory size of 4294967296 bytes exhausted (tried to allocate 20480 bytes). A migração de atributos de seleção múltipla foi otimizada para consumir menos memória durante setup:upgrade.
  • A geração de um backup de banco de dados agora funciona conforme esperado do Admin e da linha de comando. Anteriormente, o Adobe Commerce exibia este erro: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'delimiter' at line 1, query was: delimiter ;;.
  • Executar setup:config:set sem especificar o parâmetro --lock-db-prefix não apaga mais o valor atual do arquivo env.php.
  • A configuração de verniz foi atualizada para impedir que usuários convidados acessem conteúdo em cache relacionado a outros grupos de clientes.
  • Os compradores agora podem fazer um pedido em uma implantação que implementa o banco de dados dividido quando Checkout Async está habilitado. Anteriormente, o Adobe Commerce exibia este erro: An error occurred on the server. Please try to place the order again.
  • bin/magento setup:upgrade agora é concluído com êxito ao instalar um novo módulo que instala tabelas e indexadores mview associados.
  • bin/magento setup:upgrade agora exibe uma mensagem de erro mais informativa quando um tópico da fila de mensagens não inclui um nome de tópico. GitHub-34246
  • bin/magento setup:upgrade agora exibe uma mensagem de erro mais informativa quando os arquivos XML mesclados são inválidos. A mensagem de erro agora inclui o nome do arquivo.

Interface do administrador

  • Os gráficos agora são desativados com sucesso por padrão no painel. GitHub-38430
  • O menu Admin Sales agora exibe os submenus corretamente. Anteriormente, a quebra de coluna não funcionava corretamente e alguns submenus não eram exibidos. GitHub-37812
  • As opções de menu suspenso Select agora estão visíveis no Administrador Content > Pages quando várias páginas são selecionadas na grade. GitHub-35386
  • Correção do caminho para o valor padrão de system/dashboard/enable_charts nas definições de configuração. Os gráficos agora são exibidos no Admin, conforme esperado. GitHub-37668
  • Correção de um problema de exibição com as grades do Cliente Admin. Anteriormente, as colunas de grade não estavam completamente contidas na página exibida.
  • As cores de focalização agora são aplicadas conforme esperado nas linhas de grades estáticas de Administração. GitHub-35358
  • O fluxo de trabalho de check-out não exibe mais um aviso quando um comprador insere um código postal para a Grécia que não contém um espaço em branco. GitHub-36676
  • O link Administrador It's time to change your password agora redireciona para a página Alterar Senha de Administrador conforme esperado. GitHub-37902
  • Os títulos dos submenus agora indicam irmãos, independentemente do nível de acesso atribuído ao usuário. Anteriormente, essas informações estavam ocultas dos usuários administradores com acesso limitado, mesmo se vários grupos irmãos existissem para o submenu.
  • Os sufixos de título de página agora estão incluídos nas marcas title e meta title para páginas de produto. GitHub-37680
  • A condição de status do estoque do produto agora é aplicada corretamente para as regras de produtos relacionadas.
  • O botão Login as Customer agora é exibido corretamente em dispositivos móveis.
  • O Adobe Commerce não exibe mais o botão Admin Add new customer group se o usuário administrador conectado não tiver permissão para adicionar um novo grupo de clientes.
  • Um usuário administrador com permissões restritas agora pode salvar um produto secundário cujo produto principal está atribuído a um escopo diferente. Anteriormente, o Commerce invalidava o cache de um produto principal que não estava atribuído ao escopo no qual o produto secundário era alterado.
  • Agora, os usuários administradores podem alternar entre as exibições de filtro Admin sem que os dados de exibição sejam corrompidos ou perdidos com êxito. GitHub-37529
  • A grade de pedido arquivada agora é atualizada de forma assíncrona com novos status de pedido, conforme esperado. Uma abordagem baseada em eventos para atualizar o status do pedido na grade de arquivamento resulta em um status de pedido preciso, incluindo reembolsos de aviso de pós-crédito.
  • O menu suspenso de ações da Grade de administração agora pode passar o mouse como esperado sobre um link selecionado para Content > Pages (e catálogos compartilhados no módulo B2B). Anteriormente, esse menu era parcialmente oculto e os usuários administradores tinham que rolar a tela para ver as opções. GitHub-36710

Analytics

  • As propriedades meta itemprop="image" e meta itemprop="description" da página de detalhes do produto estão disponíveis para a imagem principal do produto. GitHub-37497
  • A seção Relatório da grade Produtos em Carrinhos agora exibe o preço correto do produto quando Catalog Price Scope está definido como Website. Anteriormente, o preço do produto era exibido como zero quando o produto era atribuído a um site diferente do site padrão.
  • Os relatórios de receita agora são exibidos conforme esperado no portal Google Analytics (GA4). GitHub-37605
  • price e quantity valores na camada de dados do Gerenciador de tags da Google agora são enviados como valores numéricos, conforme esperado para Google Analytics. Anteriormente, esses valores eram enviados como cadeias de caracteres.
  • Erros ao manipular dados de cabeçalho ao enviar dados de implantação para o módulo New Relic foram resolvidos.
  • Google Analytics 3 tags agora são acionadas conforme esperado quando as Google Analytics 4 tags estão desativadas.
  • Refatoração do modo como o conteúdo do banner é carregado para remover consultas excessivas ao banco de dados, resultando em tempos de carregamento do carrinho aprimorados.

Produtos do pacote

  • A contagem de produtos da categoria agora contabiliza corretamente os produtos agrupados quando o Display Out Of Stock* está habilitado.
  • A consulta customerCart agora retorna todos os descontos aplicados em produtos agrupados conforme esperado. Anteriormente, os descontos totais aplicados a um produto de pacote eram retornados como zero.
  • As páginas de detalhes do produto agora exibem o preço correto para produtos de pacote para os quais um desconto de 100% foi aplicado. Anteriormente, a Commerce não aplicava um desconto de 100% aos preços de pacote do produto.
  • As regras de preço do carrinho agora são aplicadas aos pacotes de produtos, em vez de a cada produto secundário para produtos agrupados com preço dinâmico.
  • Correção de um erro que ocorre ao usar o ponto de extremidade POST V1/shipment para criar uma remessa contendo um produto do pacote. O ponto de extremidade agora adiciona itens conforme esperado e não retorna mais este erro: The shipment couldn't be saved.
  • Agora é possível salvar uma atualização agendada de um pacote de produtos que inclui um produto simples que tem uma atualização agendada indefinida. Quando o instantâneo do produto incorporado é criado, os produtos vinculados agora são capturados pela ID, ID da entidade e também pelo SKU. Anteriormente, a versão original do produto simples era verificada quando a atualização programada no produto incluído era salva, em vez da versão atual do produto simples.
  • Agora você pode usar a rota de API GET V1/shipment/ para criar uma remessa com um produto de pacote quando o produto tiver o tipo de remessa together definido. Os produtos do pacote agora também são validados com base na propriedade do tipo de remessa.
  • Os compradores agora podem editar a quantidade de um produto agrupado no carrinho de compras da vitrine. Anteriormente, o Adobe Commerce não tratava valores nulos para ItemId quando os produtos eram editados no carrinho de compras da loja e exibiam um erro. GitHub-37696
  • Os produtos do pacote agora podem ser adicionados com êxito a um pedido de Admin usando SKUs que contêm um caractere de barra (/). Anteriormente, os usuários administradores não podiam usar esse método para adicionar produtos a um pedido de Administrador, e o Commerce gerou um erro no JavaScript.
  • Os usuários administradores agora podem definir valores padrão decimais para opções de pacotes recém-adicionados quando Qty Uses Decimal é habilitado para o produto simples correspondente. Anteriormente, os valores decimais podiam ser definidos somente para seleções salvas.
  • Desempenho otimizado para salvar produtos de pacote com um grande número de opções
  • Os produtos do pacote agora são importados com êxito sem duplicar SKUs nas opções do produto. Anteriormente, a Adobe Commerce criava vários SKUs duplicados nas opções do produto quando você importava produtos agrupados com entradas duplicadas.
  • O preço do produto em pacote agora é calculado corretamente quando um dos produtos no pacote está esgotado. Anteriormente, se um produto que fazia parte do pacote estivesse esgotado, ele seria removido do cálculo de preço.
  • Os produtos do pacote agora são exibidos como indisponíveis quando os últimos produtos secundários necessários são comprados. Anteriormente, os produtos do pacote eram exibidos como em estoque na loja quando seus produtos simples estavam indisponíveis.
  • Problemas de desempenho ao adicionar produtos de pacote com opções não necessárias ao carrinho usando a mutação addBundleProductsToCart foram resolvidos.
  • A consulta categoryList agora retorna todas as opções do pacote conforme esperado quando a definição de configuração Show out-of-stock products está habilitada. Anteriormente, as opções indisponíveis não eram incluídas na resposta da consulta.
  • Os produtos do pacote criados com POST V1/products agora têm êxito quando o escopo do preço de catálogo está definido como website. Anteriormente, ocorria uma violação de restrição de integridade. GitHub-35595

Cache

  • As categorias agora estão visíveis para compradores em lojas onde o cache está definido como Fastly CDN (Caching Application=Fastly CDN). Isso afetou tanto os compradores convidados quanto os clientes registrados.
  • Os cookies de cache após o logon agora são os mesmos após a navegação no site. Anteriormente, o controlador de logon enviava o cookie de cache incorreto e as páginas podiam ter sido armazenadas em cache várias vezes.
  • As respostas das operações do GraphQL GET em páginas CMS que contêm blocos CMS agora são apagadas conforme esperado no cache do Fastly. As atualizações de programação subsequentes agora mostram um conteúdo preciso e atualizado dessas páginas.
  • O cache da página agora é limpo conforme esperado para um produto principal quando um de seus produtos secundários foi salvo do administrador. Uma verificação de plug-in foi introduzida para atingir a invalidação de cache para variantes configuráveis, semelhantes a outros tipos de produtos, independentemente do estado do indexador (agendado ou tempo real). Anteriormente, os preços não eram atualizados corretamente na loja depois que uma variação configurável era atualizada do administrador.
  • Adição de um mecanismo de cache para credenciais do AWS. Um provedor de credenciais agora usa o cache do Commerce para armazenar em cache credenciais recuperadas do AWS para configuração EC2.
  • O plug-in cujo objetivo é adicionar a tag de cache configurável quando um produto simples associado a um produto configurável é salvo agora funciona conforme esperado. Todas as marcas de cache relevantes e configuráveis são removidas conforme esperado quando um produto simples é atualizado por POST V1/products. Anteriormente, nem todos os preços eram atualizados na loja e os caches tinham que ser limpos manualmente. GitHub-36726

Carrinho e check-out

  • O Commerce agora otimiza o desempenho, não carregando dados de cotação específicos do usuário ao gerar páginas completas armazenáveis em cache, como Páginas de detalhes do produto (PDP) e Páginas CMS, quando o carrinho persistente está ativado. Anteriormente, o sistema carregava desnecessariamente dados de sessão e cotação específicos do usuário durante a geração dessas páginas, o que afetava o desempenho.
  • Os atributos personalizados do endereço personalizado agora são salvos conforme esperado no banco de dados. Anteriormente, os valores de atributo salvos no banco de dados eram anexados ao código de atributo.
  • A geração de texto de filtro de regras do carrinho para atributos de produto foi aprimorada. Os produtos individuais não são mais carregados várias vezes.
  • O Adobe Commerce agora exibe uma mensagem de erro informativa quando um erro ocorre durante o check-out e não retorna mais o comprador a uma etapa de check-out anterior. Anteriormente, o comprador retornava à página de remessa.
  • A consulta cart não retorna mais o método e o endereço de envio para carrinhos virtuais. Anteriormente, quando um carrinho continha produtos físicos e virtuais e todos os produtos físicos eram removidos, a resposta de consulta do carrinho continuava a incluir informações de envio.
  • O Commerce agora exibe mensagens informativas quando uma ação complementar é acionada. Anteriormente, o The requested qty is not available nem sempre era exibido conforme necessário na loja.
  • Os tempos de carregamento da página de check-out foram aprimorados para clientes com catálogos de endereços grandes. O Commerce agora processa apenas o número de endereços de clientes especificados na configuração Customer Addresses Limit. Anteriormente, o Commerce carregava todo o catálogo de endereços.
  • A quantidade do produto agora pode ser alterada no carrinho conforme esperado para itens em estoque quando um item está esgotado. Anteriormente, os compradores não podiam alterar a quantidade de nenhum item do produto quando um estava indisponível.
  • O filtro de atributo de produto AdvancedSalesRule agora funciona corretamente com o tipo de back-end de atributo decimal. Como resultado, as regras de carrinho com Coupon Type definidas como No Coupon agora funcionam conforme esperado.
  • A quantidade total de um desconto de carrinho inteiro agora é aplicada conforme esperado em carrinhos que contêm produtos agrupados e configuráveis.
  • Os cookies de Seção do cliente agora seguem a configuração de domínio do cookie. Anteriormente, o minicarrinho não era atualizado conforme esperado em armazenamentos que continham subdomínios, mesmo que a sessão tivesse sido compartilhada.
  • Enviar um pedido para vários endereços não aciona mais um erro durante o processamento da ID da região.
  • Os valores de desconto fixo aplicados no nível do carrinho agora estão corretos.GitHub-37496
  • Os cupons agora são aplicados com êxito a um pedido quando um comprador aplica o cupom depois de selecionar o método de envio de taxa uniforme em que uma regra de preço do carrinho com método de envio definido como uma condição é aplicável. Anteriormente, a página do carrinho exibia o erro O cupom não é válido e o cupom não era aplicado. GitHub-34866
  • A caixa de seleção My billing and shipping address are the same agora permanece marcada por padrão quando um comprador usa o preenchimento automático do Chrome para preencher seu endereço de envio e clica em Avançar antes que o bloco de métodos de envio seja recarregado. GitHub-33725
  • O valor applied_rule_ids na tabela quote_item agora inclui uma lista correta de IDs de regra aplicadas. Anteriormente, esse valor continha somente a última ID de regra aplicada.
  • Agora, os dados do minicarrinho e do cliente no armazenamento local são redefinidos quando uma sessão é removida do servidor. Anteriormente, esses dados ainda apareciam quando o arquivo de sessão era removido.
  • Os carrinhos discretos não são mais mesclados por engano do Administrador quando o carrinho persistente está ativado.
  • O endereço de entrega padrão na etapa de entrega da finalização da compra não é mais preenchido com o endereço de separação na loja selecionado anteriormente.
  • Os produtos no carrinho não são mais excluídos das listas de produtos relacionados e de venda adicional depois que o cache é liberado.
  • O avaliador de imposto do carrinho e de remessa agora reflete com precisão a configuração de destino padrão. Anteriormente, ao definir as configurações padrão de cálculo de destino do imposto e especificar Estado/Região e CEP, somente o valor CEP era exibido no carrinho em Estimate Tax and Shipping. Isso era resultado da definição pela Adobe Commerce da ID da região como indefinida antes da chamada da declaração condicional que definia a ID da região padrão do Administrador.
  • A Adobe Commerce não lança mais este erro durante o check-out quando o carrinho de compras persistente está habilitado: Invalid state change requested. Anteriormente, quando esse erro era gerado, vários pedidos com o mesmo quote_id eram criados ocasionalmente.
  • O minicarrinho agora exibe os preços de produtos agrupados que refletem as configurações de imposto do carrinho. Anteriormente, o minicarrinho sempre incluía impostos nos preços dos pacotes de produtos.
  • O desempenho das regras de segmento do cliente que dependem dos carrinhos ativos foi aprimorado, o que reduziu o tempo necessário para adicionar um produto ao carrinho.
  • A estimativa de envio fornecida na página do carrinho agora é precisa. collectShippingRates agora é definido apenas uma vez. Anteriormente, a estimativa de envio era duplicada. GitHub-36648
  • A consulta cart não retorna mais um erro quando um produto no carrinho especificado está indisponível. Anteriormente, os compradores que usavam essa query para fazer uma compra não podiam concluir sua compra quando um item estava esgotado e sua página de check-out estava em branco.
  • As solicitações da API Convidada para POST V1/guest-carts/<cartId>/shipping-information não retornam mais um status cancel se a página for recarregada durante o logon em um ambiente móvel. Anteriormente, o Adobe Commerce emitiu um erro 500 e registrou esta exceção: TypeError: Argument 2 passed to Magento\CustomerCustomAttributes\Model\Plugin\ProcessCustomerShippingAddressCustomAttributes::beforeSaveAddressInformation() must be of the type string, null given.
  • A qualificação para envio gratuito agora é calculada conforme esperado quando a condição Subtotal (Excl. Tax) para regras de carrinho é aplicada. GitHub-36760
  • A consulta cart agora retorna o preço de camada correto para um produto. GitHub-29655
  • Mensagens de erro informativas foram adicionadas à página de check-out para orientar os compradores quando a aplicação de um cupom na página de envio entra em conflito com o método de envio selecionado. Anteriormente, uma mensagem instruía os compradores a retornar à página anterior.
  • O pop-up de autenticação agora é inicializado somente quando é necessário, em vez de sempre que o check-out do convidado está habilitado. Agora ele é inicializado quando o comprador convidado tenta prosseguir para o check-out e o check-out do convidado é desativado. GitHub-30672

Regra de preço do carrinho

  • A condição de subseleção do produto da regra de preço do carrinho agora inclui a opção total (incl.tax), conforme esperado. GitHub-34871
  • A condição de regra de preço de catálogo If an item is FOUND/NOT FOUND in the cart with ALL/ANY of these conditions true agora funciona corretamente com atributos de categoria e SKU. Anteriormente, essa condição não era aplicada corretamente na lógica do cupom de preço do carrinho e os cupons inválidos eram aplicados aos pedidos. GitHub-37660
  • Agora você pode salvar com êxito uma nova regra de preço do carrinho com a extensão Magento_OfflineShipping desabilitada. Anteriormente, o Adobe Commerce exibia este erro: report.ERROR: Warning: Undefined array key "simple_free_shipping". GitHub-37580
  • As regras de preço do carrinho agora são aplicadas conforme esperado quando uma regra de preço do carrinho relacionada a um método de envio é configurada para a loja e esse método de envio é alterado para outro durante o check-out. Anteriormente, o valor applied_rule_ids nunca era alterado na tabela sales_order_item, e a regra de preço do carrinho não era aplicada ao pedido.
  • A execução de bin/magento cache:clean ou bin/magento cache:flush não libera mais todo o cache interno ou de página inteira do Verniz, a menos que seja especificado. GitHub-38301
  • Os comerciantes agora podem usar o Carrossel de Produtos para criar blocos de CMS quando catalog_product_price dimensions-mode estiver definido como website. Anteriormente, o Commerce não salvava o bloco e gerava este erro SLQ: report.CRITICAL: PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table.
  • O Commerce não exibe mais imagens duplicadas quando a cor do produto é alterada em uma página de detalhes do produto. GitHub-36243
  • Otimizado o algoritmo para sincronizar valores específicos do site após adicionar uma nova loja ou alterar uma existente em ambientes grandes de várias lojas.
  • O processo de limpeza de arquivos de imagem em cache foi aprimorado para evitar a criação de diretórios ocultos na pasta pub/media/catalog/product. Anteriormente, os diretórios ocultos causavam problemas de espaço em disco durante as operações de limpeza. A operação pôde ser encerrada, o que deixou para trás diretórios ocultos temporários que nunca foram excluídos.
  • Agora os preços do pacote de produtos são calculados corretamente e um problema com a ordem das operações ao calcular preços foi resolvido. GitHub-35665
  • Uma cláusula desnecessária foi removida das consultas de índice catalog_product_price, o que melhorou o desempenho desse indexador em lojas com catálogos grandes. GitHub-32382
  • O Commerce não insere mais o texto de descrição do produto no campo da página de detalhes do produto Meta Description quando esse campo fica vazio. Anteriormente, quando uma descrição do produto continha o código HTML gerado pelo Page Builder ou outro editor de HTML, o HTML era exibido no campo Meta Description e não era possível deixar esse campo vazio.
  • As opções de produto configuráveis nas páginas PDP de produto configuráveis não são mais afetadas por outras opções de produtos configuráveis na página. Anteriormente, os produtos configuráveis com atributos suspensos não acionavam mais uma exceção quando um carrossel de produtos estava presente na página Detalhes do produto. As opções de produto configuráveis não podiam ser selecionadas quando outros produtos configuráveis com opções de amostra estavam presentes na página.
  • As informações do produto visualizadas recentemente agora são exibidas de acordo com a configuração de visualização da loja. Anteriormente, os dados do produto visualizados recentemente não eram atualizados por exibição da loja, incluindo nome e idioma preferido.
  • Os vídeos do Vimeo agora são reproduzidos, conforme esperado, nas páginas de produtos, na visualização móvel em navegadores da Web com base em Chromium.
  • O comando bin/magento catalog:images:resize agora gera corretamente imagens de produtos para os produtos atribuídos a um site personalizado com um tema personalizado.
  • Os metadados com valores NULL ou NOT NULL agora são salvos para o armazenamento padrão de acordo com a caixa de seleção Usar valor padrão, conforme esperado. Anteriormente, os metadados com o valor NULL não eram salvos quando essa caixa de seleção estava desmarcada.
  • Os comerciantes agora podem excluir com sucesso uma imagem existente da página de detalhes do produto e, em seguida, fazer upload de uma nova imagem com o mesmo nome. Anteriormente, nessas circunstâncias, a página do produto da loja não exibia a imagem correta.
  • A consulta productDetail agora retorna o nome do produto em vez de nulo quando o atributo de imagem do produto alt é definido como vazio.
  • Os pedidos que incluem produtos baixáveis e físicos agora incluem links de trabalho para o produto baixável assim que o pedido é concluído. Anteriormente, os links para produtos baixáveis não estavam disponíveis até que os produtos físicos na mesma ordem fossem enviados.
  • As substituições de URL agora são atualizadas quando uma categoria é movida de uma categoria de armazenamento/raiz para outra categoria de armazenamento/raiz. As entradas obsoletas do banco de dados agora são removidas quando as subcategorias são transferidas para novas categorias pai. O banco de dados agora inclui somente entradas relevantes. Anteriormente, o url_path não era atualizado com a ID de armazenamento apropriada.
  • O ponto de extremidade REST V1/products/<sku>/media agora pode processar o carregamento simultâneo de várias imagens de mídia. Anteriormente, ao processar várias solicitações simultaneamente, dados inconsistentes eram criados e o Commerce exibia um erro quando esses dados eram salvos no banco de dados.
  • Os banners do segmento do cliente agora se comportam conforme esperado quando um comprador que está usando uma conta de cliente recém-criada faz logoff. Anteriormente, os banners criados para o segmento de cliente conectado eram exibidos mesmo após a sessão dessa conta terminar (ou seja, o comprador registrado era desconectado).
  • O desempenho da reindexação parcial dos indexadores de Produtos de categoria e Categorias de produto foi aprimorado. Anteriormente, o trabalho do cron indexer_update_all_views executava indexadores várias vezes por produto ou categoria individual.
  • Quando o status do estoque do produto é atualizado automaticamente para esgotado com base na configuração de estoque (quantidade), o status do estoque será atualizado subsequentemente para em estoque quando a quantidade de estoque for atualizada. Anteriormente, a configuração stock_status_changed_auto era ignorada quando a configuração de estoque de um produto era atualizada para em estoque.
  • A classificação da barra de ferramentas agora funciona conforme esperado nas páginas de Pesquisa quando a configuração Remember Category Pagination está habilitada. GitHub-33220
  • Os atributos de seleção múltipla agora são salvos conforme esperado quando a caixa de seleção Use Default Value no escopo de exibição de loja é selecionada. Anteriormente, essa caixa de seleção era desmarcada quando o produto era editado e o valor padrão era salvo.
  • Os usuários administradores com acesso limitado ao site agora podem adicionar Imagens a um produto que se enquadra em seu escopo. Se o usuário administrador não tiver direitos de acesso ao produto, o Commerce exibirá uma mensagem informativa. Anteriormente, os usuários administradores com acesso limitado ao site não podiam adicionar imagens aos produtos aos quais tinham acesso.
  • Os valores special_from_date, special_to_date, news_from_date e news_to_date definidos pelo usuário não são substituídos quando um produto é editado no escopo de exibição de loja.
  • O Commerce agora exibe o nome correto após classificar produtos por nome em Administração > Category > Products in category em implantações de várias lojas onde os nomes de produtos variam de acordo com a loja. GitHub-36208
  • A mutação addProductsToCart agora retorna opções personalizáveis com dados. Anteriormente, retornava apenas opções personalizáveis vazias. GitHub-37599
  • A posição do produto e a seleção da ID agora são exibidas corretamente quando um usuário administrador adiciona um novo produto a uma categoria após limpar o cache, mas não recarregar a página da categoria. Anteriormente, a posição e a seleção do produto eram incompatíveis e eram exibidas incorretamente.
  • Os comerciantes agora podem atualizar a data ou hora de início futura de uma alteração agendada para um produto baixável. Anteriormente, o Adobe Commerce exibia esse erro durante a atualização da data ou hora de início futura do produto disponível para download: The downloadable link isn't related to the product. Verify the link and try again.
  • O status do produto com backorder agora é exibido corretamente na loja. Anteriormente, os produtos que estavam disponíveis para remessa eram identificados incorretamente como em backorder.
  • Acessar produtos baixáveis do Administrador não resulta mais em erro quando o usuário administrador altera a exibição da loja da exibição usada durante a criação do produto para outra exibição da loja. Os preços do produto agora são convertidos com sucesso em flutuante quando um usuário administrador alterna a exibição da loja de todas as exibições para a exibição padrão da loja. Anteriormente, o Adobe Commerce emitia um erro. GitHub-37519
  • Os produtos exportados agora têm o valor manage_stock correto quando o valor use_config_manage_stock é igual a 1. Anteriormente, esse valor padrão estava incorreto.
  • O Adobe Commerce não exibe mais uma mensagem de aviso quando você salva um produto que foi criado com opções personalizadas após excluir a imagem.
  • As imagens em miniatura do produto agora são exibidas conforme esperado no email de alerta de estoque do produto enviado quando um produto é colocado de volta no estoque. Anteriormente, essa imagem não era exibida no email de alerta
  • A contagem de produtos na árvore de categorias (Administrador Catalog > Category) agora é precisa. Anteriormente, a contagem de produtos da categoria não pôde ser recuperada da tabela catalog_category_product_index. O erro de digitação que acionou esse erro foi corrigido. GitHub-35417
  • A imagem principal do produto na página de detalhes do produto não é mais visivelmente deslocada para baixo durante o carregamento da página quando o product_image_white_borders no tema view.xml está desabilitado. Anteriormente, a imagem do produto deslocou-se visivelmente para baixo durante o carregamento da página devido a configurações incorretas de altura no Fotorama JS.
  • Agora os clientes são notificados sobre quedas no preço do produto quando assinam alertas de queda de preço. Anteriormente, as notificações de queda de preço nem sempre eram enviadas devido ao armazenamento em cache no nível do aplicativo.
  • A validação do lado do servidor foi adicionada ao processo de criação de atributos de produto por meio da API da Web. Você não pode habilitar o campo Use in Layered Navigation Catalog quando o valor do campo Catalog Input Type for Store Owner é Text Field, Text Area, Text Editor, Date ou Date and Time. Anteriormente, os produtos eram omitidos das categorias e dos resultados da pesquisa.
  • A página de categoria agora é recarregada com a paginação correta depois que um comprador abre a página, altera a paginação, navega até uma página de produto e retorna à página de categoria. GitHub-36563
  • Os produtos simples esgotados que são opções de um produto configurável agora são exibidos como desabilitados na loja quando Display Out of Stock Products está definido como Sim. Anteriormente, todas as opções eram exibidas como disponíveis, apesar do status e da disponibilidade real.
  • A atualização do atributo de escopo do site em uma exibição de armazenamento específica não substitui mais o valor desse atributo no escopo global. Anteriormente, a importação de preços de produtos quando várias linhas estavam disponíveis com o mesmo SKU e store_view_code resultava em preços imprecisos para os escopos de exibição padrão e Todas as lojas.
  • Os comerciantes agora podem adicionar uma imagem de GIF à galeria de imagens de um produto do Administrador. Anteriormente, o Adobe Commerce exibia este erro: imagecolorsforindex(): Argument #2 ($color) is out of range.
  • Foram adicionadas verificações para manipular erros que resultam de chaves de matriz indefinidas. Anteriormente, um erro ocorria durante a geração da lista de permissões do esquema declarativo.
  • O Adobe Commerce agora retorna um resultado válido para a data personalizada 01/01/1970. Anteriormente, o atributo personalizado retornava este erro: Invalid input datetime format of value '1/01/1970. GitHub-37274
  • routes consultas que usam fragmentos agora retornam informações de categoria conforme esperado. Anteriormente, ocorria um erro interno do servidor na página de categoria. GitHub-35906
  • Problemas com o processo de reindexação parcial cataloginventory_stock foram resolvidos e o desempenho do indexador foi aprimorado. Anteriormente, as categorias de estoque e produto não eram atualizadas com precisão.
  • O Adobe Commerce agora gera um redirecionamento 301 para um produto quando a categoria à qual ele pertence é movida para um novo pai. GitHub-37039
  • Agora as regras do catálogo são indexadas corretamente quando ativadas pela atualização de agendamento. Como resultado, os preços com desconto agora são gerados e indexados corretamente. Anteriormente, quando duas regras de catálogo estavam disponíveis e uma regra era ativada após a primeira regra, antes da conclusão da primeira operação de indexação da regra de catálogo, os preços de desconto da regra de catálogo não eram gerados para a segunda regra de catálogo.
  • As regras do catálogo agora são aplicadas conforme esperado em um ambiente de vários sites.

Produtos configuráveis

  • Os comerciantes agora podem selecionar Skip quantity at this time e Skip image uploading at this time ao configurar um produto configurável sem afetar a origem dos produtos simples associados. Anteriormente, selecionar Skip quantity at this time resultava no desaparecimento das origens do produto.
  • O rótulo As low as não é mais exibido para um preço de produto configurável quando todas as opções têm o mesmo preço.
  • Os usuários administradores com permissões de site agora podem salvar um produto secundário que faz parte de um produto configurável em um contexto de loja diferente. Os processos de reindexação agora ignoram esse tipo de produto configurável.
  • Os produtos configuráveis com dois produtos secundários não são mais marcados como indisponíveis quando um produto secundário é desativado por uma atualização programada.
  • O desempenho das operações de salvamento de produtos configuráveis com várias opções melhorou. Anteriormente, os tempos limite podiam ocorrer durante as operações de salvamento do produto. GitHub-36928
  • A exibição da loja de preços de produtos configuráveis agora muda conforme esperado quando um comprador seleciona uma opção de produto. GitHub-37378

Cupons

  • Os códigos de cupom com um número limitado de usos por cliente agora podem ser usados uma segunda vez quando o pedido para o qual foram usados anteriormente falhar. Anteriormente, o código promocional não era liberado quando o pedido anterior era cancelado.
  • Os códigos de cupom que contêm caracteres de espaço não são mais invalidados. Anteriormente, se um código de cupom continha um caractere de espaço (antes ou depois do código real), a validação falhava. GitHub-38048
  • Os compradores agora podem usar dois códigos de cupom gerados automaticamente separados que foram gerados pela mesma regra de preço do carrinho. O campo Uses per Coupon agora está habilitado quando o tipo de cupom é selecionado para Auto (semelhante para o tipo de cupom =Specific Coupon). Isso, por sua vez, permite que o comprador aplique vários códigos de cupom ao mesmo preço do carrinho se os códigos forem diferentes.
  • O valor do cupom de uso único de um comprador agora é restaurado conforme esperado quando o pedido ao qual ele foi aplicado é cancelado.
  • O ponto de extremidade GET V1/coupons/<couponId> agora retorna a resposta completa esperada para cupons criados manualmente, da mesma forma que para cupons gerados automaticamente. Anteriormente, alguns campos eram omitidos (por exemplo, usage_limit, usage_per_customer e created_at).

cron

  • O trabalho do cron aggregate_sales_report_bestsellers_data não cria mais tabelas MySQL temporárias muito grandes e agora é concluído com êxito. Esse trabalho cron agora insere dados por loja, não para todas as lojas de uma só vez. Anteriormente, este trabalho cron podia resultar em No space left on device erros.
  • O número de registros pendentes na tabela cron_schedule foi reduzido ao impedir que os trabalhos cron tentem adquirir bloqueios de trabalhos cron desnecessários. Anteriormente, os trabalhos cron tentavam adquirir bloqueios quando era tarde demais para executar o trabalho. Os trabalhos Cron em cron_schedule não foram marcados como perdidos mesmo que já tivessem passado o tempo agendado. O Commerce também exibiu este erro repetidamente no log de erros: report.WARNING: Could not acquire lock for cron job: indexer_update_all_views.
  • Correção do erro fatal de divisão por zero em expressões cron. GitHub-37804
  • O processo cron sales_clean_quotes foi otimizado para execução mais rápida ao adicionar um índice composto em store_id e updated_at columns na tabela de aspas. Essa alteração melhora o desempenho do trabalho cron ao processar muitas cotações.
  • Os usuários administradores agora podem exibir qual tarefa o processo bin/magento cron:run está executando no momento. O título do processo atualmente em execução agora lista os nomes do grupo e do trabalho. GitHub-34321

Cliente

  • O Adobe Commerce agora exibe os campos Date of Birth, Tax/VAT Number, Gender, Telephone, Company e Fax na página editar cliente com base nas definições de configuração. GitHub-36196

Segmentos de clientes

  • As condições de segmento do cliente agora carregam todos os clientes correspondentes conforme esperado. Anteriormente, a lista de clientes correspondentes ao segmento do cliente não continha todos os clientes correspondentes.

EAV

  • O indexador EAV não requer mais a exclusão das entidades não visíveis durante o processamento em lote. Por padrão, o indexador não agrupa mais produtos não visíveis e o desempenho do indexador melhorou.

Email

  • Emails que contêm sinais diacríticos ou acentos (ou seja, email utf8) agora são suportados para clientes e empresas, bem como para fazer pedidos de clientes e clientes registrados. Anteriormente, o Commerce não salvava registros de clientes que continham sinais diacríticos e exibia este erro: Something went wrong while saving the customer.
  • Os nomes dos remetentes de email não podem mais incluir dois-pontos. Uma nova regra de validação agora impede o salvamento de nomes de remetentes que contêm caracteres de dois-pontos da seção Armazenar Endereços de Email do Administrador Stores > General. Anteriormente, os comerciantes podiam salvar um nome de remetente que continha um caractere de dois pontos, o que resultava em erros no servidor de email.
  • As opções de imagem não são mais exibidas como marcação HTML nos emails de clientes de Devoluções (modelo padrão) para produtos com opções de imagem personalizadas.
  • Os detalhes do Administrador da empresa agora são salvos conforme esperado e os administradores são redirecionados corretamente, quando os emails de Administrador da empresa atribuído contêm uma variável CMS Block URL.
  • Os endereços de email do cliente agora podem incluir sinais diacríticos. Anteriormente, a validação de front-end proibia a criação de um usuário com sinais diacríticos em seu endereço de email. GitHub-12075
  • Os emails de alerta de estoque e preço agora são traduzidos de acordo com o idioma configurado para a exibição de loja padrão do site. Anteriormente, esses emails não eram traduzidos.
  • POST V1/order/notify-orders-are-ready-for-pickup agora envia um email alertando aos clientes que um pedido está pronto para retirada somente quando o pedido está pronto. Agora, o email é acionado somente quando a solicitação é atendida sem uma exceção.

Estruturas

  • A depuração aprimorada adicionando o valor UNCACHEABLE ao gerar um cabeçalho HTTP com Verniz está em uso. Anteriormente, somente HIT ou MISS valores eram gerados. GitHub-37912
  • Adição de código para oferecer suporte ao manuseio de compactação padrão Varnish. GitHub-38309
  • O comando bin/magento varnish:vcl:generate agora inclui um input-file argument. Isso permite a adição de um VCL personalizado a um repositório Git, relativo à raiz do Commerce. GitHub-37363
  • O suporte para o Varnish 4.x e 5.x foi removido da base de código. GitHub-38304
  • phpcodesniffer-composer-installer em composer.json foi atualizado para v1.0.0. GitHub-36913
  • Os caracteres que não estão em conformidade com RFC3986 foram removidos da base de código. GitHub-38355
  • Correção de uma tag doc PHP incorreta na classe Magento\Reports\Block\Adminhtml\Shopcart\Product\Grid. GitHub-38186
  • Código refatorado em toda a base de código que foi criada quando a prática de codificação ditava que qualquer seção de cache incluída no arquivo app/etc/env.php incluiria uma seção de front-end. Essa refatoração aborda possíveis problemas ao atualizar implantações anteriores à versão 2.4.4 do Commerce. GitHub-38363
  • Esclarecimento sobre a mensagem de erro associada ao StockItemValidator.php quando uma ID do estoque com valor 0 é fornecida durante uma chamada de API. GitHub-31107
  • Adição de uma matriz vazia padrão a $tagGenerators em CompositeTagGenerator para evitar erros durante a compilação da injeção de dependência. Anteriormente, a execução do comando bin/magento setup:upgrade quando os módulos Magento_DirectoryGraphQl e Magento_StoreGraphQl estavam desabilitados resultou em um erro. GitHub-38165
  • A classe AlgorithmProviderFactory não usada foi removida, assim como as dependências dessa classe em classes, incluindo JweAlgorithmManagerFactory.php, JweContentAlgorithmManagerFactory.php e JwsAlgorithmManagerFactory. GitHub-37783
  • O arquivo var/log/system.log não contém mais main.INFO error mensagens. O log de entrada de menu foi movido do nível INFO para DEBUG. Anteriormente, o arquivo var/log/system.log era inundado com mensagens como esta: Add of item with id Magento_Theme::design_config was processed … .
  • O pré-carregamento de Redis não falha mais quando exec() retorna falso. A verificação foi adicionada ao processo de pré-carregamento para impedir que array_combine receba false como segundo argumento. Como resultado, o pré-carregamento continuará a ser executado quando exec() retornar false. GitHub-37509
  • Refatorado o módulo Magento_CatalogWidget para substituir $block funções de escape por $escaper funções de escape. GitHub-37107
  • Swaziland foi atualizado para Eswatini em toda a base de código. GitHub-37873
  • Adição da nova moeda nicaraguense (NIO) à lista de moedas disponíveis.
  • Alterado o nome da variável reponseBody para responseBody em app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewConditionHtml.php.GitHub-38093
  • Correção de erros de arredondamento de subtotal que ocorriam em transações para produtos para os quais a quantidade decimal tinha sido habilitada. GitHub-37817
  • O filtro de datas para a grade de cliente Administração agora funciona como esperado de acordo com a localidade especificada.
  • O comando bin/magento setup:upgrade não falha mais devido ao tipo de dados da variável $schemaPatch. Anteriormente, o valor da cadeia de caracteres era passado para a função get_class, o que causava o erro. GitHub-37545
  • Falhas críticas de leitura do banco de dados quando synchronous_replication está habilitado para conexões subordinadas no Adobe Commerce Cloud não ocorrem mais.
  • A conexão com o banco de dados MySQL agora será restaurada se o tempo limite da conexão for atingido durante uma transação quando você definir max_messages = 0 para o consumidor. Anteriormente, a conexão era encerrada.
  • O módulo principal magento/module-release-notification foi marcado como obsoleto no código 2.4-develop com este comentário: Starting from Magento 2.4.7, Magento_ReleaseNotification module is deprecated in favor of another in-product messaging mechanism.
  • A geração de código de proxy agora gera arquivos Proxy e Fatory, conforme esperado, para implantações executadas no modo de produção. GitHub-35252
  • O estado indiano de Ladakh agora está listado como uma opção nos menus suspensos Endereço de administrador State. GitHub-33698
  • O ticker de contagem regressiva do evento agora é exibido conforme esperado na página de categoria.
  • A marca @author proibida foi removida da base de código, incluindo estes módulos: Magento_user-variable-wee, Magento_Catalog e Magento_Customer, Magento_Wishlist, Magento_Review Tax e em toda a estrutura. GitHub-37245, GitHub-37246, GitHub-37249, GitHub-37263
  • O serializador JSON no módulo User foi substituído por um novo serializador mais preciso (JsonHexTag). Anteriormente, o Commerce às vezes falhava ao tentar usar dados serializados pelo serializador regular quando continha elementos sem escape. GitHub-31377
  • Os erros de pipeline quebrados não ocorrem mais ao executar uma reindexação completa (bin/magento indexer:reindex). As conexões AMPQ agora são fechadas antes que o gerenciador de processos bifurque processos.
  • O validador de mensagens da fila agora valida o subtipo de todos os elementos de matriz. Anteriormente, o Commerce lançava uma exceção.
  • A configuração de conexão de fila por tópico em app/etc/env.php agora funciona corretamente. Anteriormente, a fila de alerta do produto não era gerada corretamente quando uma nova fila de mensagens era criada com uma troca personalizada. Se a conexão da fila para um tópico foi configurada em app/etc/env.php com uma troca personalizada, uma nova associação foi criada para todos os tópicos com essa troca personalizada. Os comerciantes não puderam processar alertas de produtos.
  • Formatos temporários marcados com um comentário /* mariadb-5.3 */ não causam mais erros durante bin/magento setup:install durante a atualização do servidor MariaDB para a versão 10.5.1 ou superior.
  • O driver AwsS3 agora funciona conforme esperado como uma substituição da implementação base padrão de armazenamento de arquivos. Anteriormente, os dados podiam ser corrompidos quando esse driver era configurado para armazenamento de arquivos. GitHub-37844
  • Os comandos bin/magento config:show e set que usam variáveis $_ENV agora oferecem suporte ao uso de códigos de site e armazenamento que contêm caracteres camelcase ou maiúsculos.
  • Foram adicionadas classes com !important, conforme usadas no Tailwind 3 para suporte a layout CSS. GitHub-37568
  • Uma dependência jQuery ausente foi adicionada ao arquivo trim-input.js. GitHub-37683
  • Detalhes específicos do evento agora são passados como um segundo atributo (context) do método log. GitHub-37879
  • Os valores de proporção foram adicionados às imagens do catálogo e os scripts desnecessários foram removidos da estrutura da interface do usuário. GitHub-37691
  • Mensagens de erro revisadas acionadas pela configuração XML inválida para serem mais informativas. GitHub-37788
  • Código obsoleto refatorado relacionado à criação de propriedades dinâmicas em toda a base de código.
  • O desempenho dos indexadores para grandes lojas com bancos de dados de produtos extremamente ativos melhorou. Agora, os indexadores indexam as informações mais recentes do produto uma vez para cada índice, em vez de várias vezes. Anteriormente, os produtos desapareciam do site e os dados do produto podiam estar desatualizados no site. GitHub-30012
  • O status do registro mview_state agora indica com precisão o estado baseado na atividade changelog quando uma conexão de banco de dados subordinada está disponível. Anteriormente, esses registros permaneciam em um estado waiting em implantações na nuvem, mesmo quando não havia novas entradas no changelog.
  • Adicionado suporte para a opção precision para o formato de moeda para preservar a paridade de recursos com a classe ZendCurrency obsoleta.
  • As mensagens de cookie foram convertidas em atributos observáveis e os desenvolvedores agora podem manipular o estado, o que pode acionar alterações na interface do usuário. Anteriormente, os cookies eram somente leitura e não podiam ser manipulados. GitHub-37308
  • Os usuários administradores agora podem gerar uma fatura quando sua instância do Commerce estiver conectada ao armazenamento S3. Anteriormente, o Commerce exibia este erro: Cannot create image resource. File not found. GitHub-35706
  • O Adobe Commerce agora registra uma mensagem de exceção conforme esperado quando a validação do número IVA pelo serviço de validação VIES falha. GitHub-36065
  • O nome Administrators foi removido da consulta usada para buscar uma função de administrador durante a criação da função de administrador. GitHub-36998
  • O comando bin/magento setup:config:set não falha mais quando um nome de usuário de banco de dados inválido é incluído no arquivo app/etc/env.php. GitHub-37409
  • A classificação por coluna em palavras reservadas em um componente padrão da interface do Administrador não resulta mais em um erro SQL em var/log/exception.log. GitHub-37423
  • Adicionado AddDataForCostaRica.php para fornecer informações de estado para a Costa Rica. GitHub-37382.
  • Mensagem de erro aprimorada para o cenário em que o usuário tenta acessar um URL inválido do Administrador. GitHub-35682.
  • A Param $options[posição] para símbolos de moeda agora funciona como esperado e oferece suporte à personalização da posição do símbolo de moeda. Anteriormente, após a migração do Zend Framework 1, o método toCurrency ignorava o parâmetro position. Esse problema ocorria em toda a interface do Administrador.
  • Código obsoleto refatorado relacionado à criação de propriedades dinâmicas em toda a base de código.
  • Os formatos de estilo personalizado criados com a extensão do editor TinyMCE nas versões do Adobe Commerce e Magento Open Source anteriores à 2.4.6 agora estão disponíveis, conforme esperado, no tipo de conteúdo text do Page Builder. Anteriormente, o formato de estilo personalizado era ignorado e somente os formatos padrão eram carregados após a atualização para o Adobe Commerce 2.4.6-p1. GitHub-36950
  • Adição da seguinte observação informativa ao arquivo quote.php: Important: This method also copies customer data to quote and removes quote addresses. GitHub-37400
  • A instanciação do provedor de bloqueio agora passa pela classe \Magento\Framework\Lock\Proxy. O provedor de bloqueio agora está configurado com a configuração lock por meio do arquivo app/etc/env.php.
  • O mutex foi implementado para pedidos para evitar condições de corrida durante a atualização por solicitações simultâneas. Anteriormente, as solicitações simultâneas (condições de corrida) para cancelamentos de pedidos causavam entradas duplicadas na tabela inventory_reservation.
  • A função populateWithArray agora transforma as propriedades de objeto em caso de cobra corretamente, tornando-a compatível com os getters e setters AbstractModel. Anteriormente, a formatação de caso de cobra estava incorreta quando o nome do atributo de dados continha várias letras maiúsculas em uma linha.
  • O valor de incremento automático na tabela catalog_product_entity_varchar agora é incrementado corretamente depois que um produto é salvo. Anteriormente, esse valor aumentava em dez.
  • O Adobe Commerce não lança mais esta exceção do sistema de arquivos quando você tenta liberar o cache do JavaScript/CSS: No such file or directory.
  • O valor de value_id em customer_entity_int agora está incrementado corretamente. Uma consulta atualização é executada em vez de insert on duplicate key update ao atualizar uma entidade que incorpora esses atributos. Como resultado, as colunas de incremento automático usadas no modelo EAV agora crescem de forma linear. Anteriormente, o processo de incremento automático para colunas ignorava valores devido a consultas de inserção com falha. GitHub-28387
  • Remoção de espaço em branco desnecessário de id atributos que não o necessitam. (Esse bug foi introduzido por uma alteração de código 2.4.6 do Adobe Commerce.)
  • Os códigos de armazenamento não aparecem mais na URL de armazenamento quando o armazenamento está no modo de armazenamento único. GitHub-36831
  • Foram feitas pequenas atualizações nos plug-ins do around. GitHub-31443
  • As amostras Helper foram refatoradas para remover aliases de importação enganosos. GitHub-31373
  • Os usuários administradores agora podem excluir ou renomear um arquivo sitemap.xml conforme esperado. Anteriormente, um usuário administrador podia excluir o arquivo do Administrador, mas ele permanecia no sistema de arquivos. GitHub-37468
  • Os cupons não são mais sinalizados como usados quando o pagamento falha para a ordem à qual foram aplicados. As mensagens em fila agora são processadas na ordem em que são publicadas quando o consumidor é iniciado. Anteriormente, a primeira mensagem era retirada da fila para simplesmente verificar se as mensagens estavam na fila, e era rejeitada posteriormente, o que fazia com que a primeira mensagem fosse processada por último.
  • O Adobe Commerce não lança mais uma exceção no arquivo de registro quando um usuário tenta imprimir uma etiqueta de remessa. Anteriormente, se uma extensão modificava cabeçalhos de resposta que continham um anexo, o sistema lançava uma exceção no arquivo de log.
  • O suporte para mais classes de HTML foi adicionado a elements.xsd. GitHub-36891

Correções gerais

  • Alterado o nome da variável reponseBody para responseBody em app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewConditionHtml.php.GitHub-38093
  • O agendamento de atualizações de produtos não apaga mais os dados de atributos de seleção múltipla. Anteriormente, quando uma atualização era agendada para um produto, os dados do atributo de seleção múltipla do produto eram apagados incorretamente. GitHub-37675
  • Salvar um produto com um escopo de armazenamento não padrão não resulta mais em atributos inalterados tornando-se de escopo de armazenamento quando carregados usando ProductRepository. GitHub-8897
  • Os compradores agora podem acessar páginas configuradas como nós de hierarquia quando as restrições de acesso estão ativadas. Anteriormente, ocorria um loop de redirecionamento infinito e o navegador exibia este erro: ERR_TOO_MANY_REDIRECTS.
  • Mensagens de erro informativas foram adicionadas à validação de campo personalizado nas páginas de detalhes do produto. GitHub-38006
  • Caracteres especiais agora podem ser usados em campos de nome. Anteriormente, o caractere E comercial (&) era restrito no validador de nome, que bloqueava operações de adição ou edição de clientes quando o nome do cliente continha um E comercial. GitHub-38080
  • Os usuários administradores com acesso restrito a uma loja específica agora podem usar uma ação de atualização em massa para atualizar análises de produtos. Anteriormente, o Commerce lançou esta exceção: report.CRITICAL: TypeError: array_intersect(): Argument #1 ($array) must be of type array, null given in app/code/Magento/AdminGws/Model/Models.php:439.
  • A funcionalidade Mostrar senha da página de logon da loja agora exibe senhas conforme esperado. Anteriormente, as senhas não eram exibidas. GitHub-37432
  • A lista de comparação de produtos agora é sempre específica do site para compradores convidados e não contém produtos que foram adicionados dos outros sites, incluindo produtos que foram atribuídos a ambos os sites.
  • Os blocos de conteúdo do CMS que contêm emojis não são mais truncados após o emoji quando salvos no banco de dados. Anteriormente, o conteúdo era truncado após o emoji porque a configuração padrão do banco de dados não suportava caracteres de quatro bytes.
  • A condição É um de da regra de produto relacionada agora funciona corretamente quando configurada com a configuração Produtos para correspondência. Anteriormente, essa regra não identificava nenhum produto.
  • A grade da página do CMS agora filtra páginas com base na exibição de loja atribuída ao usuário administrador. Anteriormente, o escopo da função não era aplicado.
  • As senhas agora são exibidas conforme esperado quando a caixa de seleção Show Password na página de logon está ativa.
  • O atributo de sistema Redefinir Token de Senha da validação de entidade do cliente (rp_token) foi removido da validação de atributo durante a criação da conta do cliente, e a validação de diacríticos é incluída somente no email do cliente resultante. Anteriormente, o Commerce não salvava o registro do cliente e exibia este erro: Something went wrong while saving the customer.
  • Agora é possível salvar as edições na grade Páginas de administração e Bloquear após excluir uma coluna. GitHub-37525
  • Agora, os administradores de empresas podem adicionar usuários de empresas pela loja. Anteriormente, o Commerce registrava este erro quando o usuário administrador tentou adicionar um novo usuário: report.CRITICAL: Error: Call to a member function __toArray() on null in app/code/Magento/LoginAsCustomerLogging/Observer/LogSaveCustomerObserver.php:123.
  • Agora, os clientes podem fazer logon com êxito com uma nova senha de um dispositivo depois de redefinir a senha em outro dispositivo.
  • O campo Endereço do cliente do administrador Estado/Província agora retém o último valor salvo conforme esperado. Anteriormente, ao remover o valor deste campo, o Commerce continuava a exibir o valor excluído no campo Estado/Província. GitHub-36846
  • O Adobe Commerce não lança mais um erro de violação de restrição ao desmarcar pela primeira vez e, em seguida, selecionar uma página CMS recém-criada.
  • Uma raiz de site de hierarquia agora é atribuída corretamente a uma página CMS recém-criada. Anteriormente, a seleção da raiz do site de hierarquia era incompatível nas páginas CMS recém-criadas.
  • Os erros não ocorrem mais durante solicitações de um feed RSS para categorias quando RSS Feed Top Level Category está habilitado. Anteriormente, a navegação na página de categoria do feed RSS resultava em erros Elasticsearch CRITICAL nos arquivos de log quando RSS Feed Top Level Category era habilitado.
  • O valor correto agora é salvo para gws_store_groups quando o escopo da função é alterado durante a criação da função do usuário. Anteriormente, quando o escopo de função era selecionado como All, o valor gws_store_groups era salvo como nulo durante a criação do usuário, mas não durante a edição da função. Além disso, se o escopo de função foi selecionado como Custom, então o valor gws_store_groups sempre foi salvo como nulo.
  • A página de redefinição de senha agora pode ser acessada clicando no link de redefinição de senha do Administrador na página de logon do Administrador quando a configuração Add Store Code to Urls estiver habilitada. O link Admin reset password abria anteriormente a página de logon ou a página 404.
  • O intervalo de datas no painel Estatísticas do administrador agora é calculado com base no fuso horário definido nas configurações e, em seguida, convertido em UTC para buscar dados do banco de dados.
  • O filtro de hierarquia CMS funciona como esperado depois de filtrar um modo de exibição de repositório e clicar em Save no Administrador Content > Hierarchy. Anteriormente, clicar em Save atualizava a página, mas o contexto era perdido e o modo de exibição de armazenamento selecionado não era mais exibido.
  • Clicar no botão Send invitation (Administrador Marketing > Private sales > Invitation) agora envia uma solicitação de POST junto com a chave de formulário e envia o convite com êxito. Anteriormente, ao clicar nesse botão, nem o método HTTP POST nem a chave de formulário estavam presentes.
  • Agora os arquivos de zero bytes podem ser copiados com êxito para o armazenamento remoto com o AWS S3.
  • Os usuários administradores agora podem adicionar um novo endereço de cliente do Administrador quando esse cliente for criado para outro site cuja ID da loja não corresponde à ID do site. Anteriormente, o Adobe Commerce exibia esta mensagem pop-up: Something went wrong. GitHub-36582
  • A página do editor de bloco do CMS agora exibe o widget correto block_id valor. GitHub-29644

Cartões-presente e invólucro

  • Os comerciantes não podem mais criar um vale-presente com um valor negativo.
  • A mutação setGiftOptionsOnCart agora remove o invólucro do presente de um pedido, conforme esperado. O valor de gift_wrapping_id agora não está definido no nível do carrinho. Anteriormente, o gift_wrapping_id era atualizado para seu valor anterior depois que o pedido era feito, mesmo quando esse valor não estava definido no nível do carrinho.
  • As contas de cartão-presente agora permanecem ativas conforme esperado quando o reembolso parcial de um produto simples é processado a partir do pedido ao qual o cartão foi aplicado. Anteriormente, a conta do cartão-presente era excluída.
  • A mutação setGiftOptionsOnCart agora atualiza com êxito o banco de dados ao remover uma mensagem de presente do carrinho. Anteriormente, os detalhes da mensagem não eram atualizados no banco de dados e a mensagem de presente não era removida do carrinho.
  • O rótulo Event Information do Registro de presente agora é traduzido conforme esperado.
  • Os subtotais agora são calculados corretamente para valores de cartão-presente personalizados.
  • Os cartões-presente agora são aplicados corretamente durante o check-out com vários endereços. Anteriormente, os valores de cartão-presente eram aplicados incorretamente para remessas de vários endereços, o que resultava em valores inválidos de cartão-presente.
  • A emulação agora inicia durante send() chamadas assim que a emulação é concluída durante a chamada getInfoBlockHtml() e nenhum erro é registrado. Anteriormente, o arquivo system.log estava inundado com este erro: main.ERROR: Environment emulation nesting is not allowed. GitHub-35603
  • Agora você pode usar a mutação updateCartItems para atualizar um cartão-presente em um carrinho de compras. Anteriormente, somente a quantidade do cartão podia ser atualizada no carrinho por essa mutação.
  • O invólucro do presente agora é incluído, conforme esperado, em uma cotação baseada em carrinhos mesclados. Anteriormente, as mensagens de presente eram mescladas com êxito, mas não as seleções de quebra automática.
  • A mutação addProductsToCart agora adiciona com êxito um cartão-presente a um carrinho. Anteriormente, essa consulta esperava o nome do recipient do cartão-presente, mas o nome do remetente foi retornado. O Adobe Commerce emitiu este erro: Please specify a recipient name. GitHub-36665

Gerenciador de tags da Google

  • O módulo Tag do Google agora envia os dados corretos para a camada de dados. Anteriormente, os dados de impressões de página não eram enviados para a camada de dados.

GraphQL

  • A consulta getCustomerWishlist não resulta mais em um erro interno do servidor ao consultar listas que contêm produtos configuráveis.
  • A consulta customerCart agora retorna todos os descontos aplicados em produtos agrupados conforme esperado. Anteriormente, os descontos totais aplicados a um produto de pacote eram retornados como zero.
  • A consulta getCustomerWishlist não resulta mais em um erro interno do servidor ao consultar listas que contêm produtos configuráveis.
  • A declaração do sinalizador is_subscribed, seu resolvedor, cache e testes associados foi movida do módulo CustomerGraphQl para o módulo NewsletterGraphQl.
  • A mutação addProductsToCart não relata mais erros não relacionados em user_errors. Anteriormente, os erros relacionados ao carrinho eram incluídos em user_errors junto com os erros de operação esperados. GitHub-37908
  • O filtro de produto de consulta products agora pode retornar resultados de correspondência parcial, bem como correspondências completas. O novo atributo match_type (PARCIAL, FULL) dá suporte à especificação do tipo de correspondência. Anteriormente, a consulta retornava somente correspondências completas.
  • Mutex foi adicionado à consulta addConfigurableProductsToCart para evitar condições de corrida durante uma atualização por solicitações simultâneas. Anteriormente, quando um comerciante enviava duas solicitações paralelas para adicionar o mesmo produto configurável ao carrinho, dois itens separados com o mesmo SKU de produto eram adicionados. GitHub-37847
  • A agregação de produtos nas respostas do GraphQL agora inclui valores diferentes de zero para atributos quando Use in Layered Navigation está definido como Filterable (no results). Anteriormente, somente valores diferentes de zero eram retornados.
  • Melhorou o desempenho da consulta setShippingAddressForEstimate para operações relacionadas ao carrinho que envolvem atributos de produto personalizados. Anteriormente, a consulta carregava todos os atributos de produto quando os parâmetros eram enviados como variáveis.
  • O campo products consulta ConfigurableProduct.configurable_options agora retorna somente valores que tenham pelo menos um produto habilitado. Anteriormente, esse campo retornava produtos simples desativados.
  • Desempenho aprimorado do GetCategories query ao reduzir o número de consultas SQL desnecessárias geradas.
  • A manipulação de erros de endereço para componentes de bibliotecas do GraphQL agora funciona conforme esperado.
  • A consulta products agora retorna todos os detalhes relevantes de preço da loja quando o preço dinâmico é definido como não e os descontos são aplicados. Anteriormente, a faixa de preços dos produtos não era retornada. GitHub-35649
  • Os nomes de transações do GraphQL agora incluem nomes de consulta de nível superior apenas nos logs do New Relic. Anteriormente, os nomes de transação também incluíam nomes de consulta secundários.
  • A manipulação de erros de endereço para componentes de bibliotecas do GraphQL agora funciona conforme esperado.
  • Quando a configuração de Visibilidade de um produto está definida como Catalog, products consultas nesse produto agora resolvem a configuração corretamente. Anteriormente, qualquer filtro fornecido era alternado para a configuração Visibility: Catalog. GitHub-36591
  • A consulta customer agora retorna um campo product_sale_price que inclui imposto sobre pedidos quando o preço do produto foi configurado para incluir imposto. GitHub-36946
  • Os atributos de produto do tipo DateTime agora são mapeados para o filtro FilterRangeTypeInput em consultas de produtos. Anteriormente, esses atributos eram mapeados para FilterMatchTypeInput. Como resultado dessa alteração, as consultas que filtram os atributos DateTime exigem valores from e to em vez de valores correspondentes.
  • A consulta customer agora retorna somente análises de clientes relacionadas a uma visualização de loja específica, conforme esperado quando filtrada por ID de loja.
  • A consulta categories não retorna mais um erro quando o valor de resposta items.redirect_code contém um valor nulo. GitHub-36675
  • Os produtos relacionados com base em regras agora são carregados conforme esperado nas respostas do GraphQL após uma limpeza completa do cache. Anteriormente, os atributos de EAV do produto que eram responsáveis por correspondências baseadas em regras não eram carregados para a entidade solicitada, embora fossem carregados após o recarregamento da página de produto da loja.
  • A mutação changeCustomerPassword agora aciona o email conforme esperado após redefinir uma senha com êxito.
  • urlResolver e route consultas agora retornam um resultado quando o Target Path de reescrita de URL é uma URL absoluta. Anteriormente, a consulta urlResolver retornava NULL quando você a usava para recuperar dados de redirecionamento.
  • A consulta products agora retorna os rótulos corretos quando existem várias exibições de armazenamento. GitHub-29635
  • A consulta categoryList agora retorna uma seção product preenchida do bloco options para produtos filho de produtos agrupados, conforme esperado. Anteriormente, nenhuma informação sobre pacotes de produtos derivados era retornada.
  • A consulta route agora retorna rotas para categorias e produtos conforme esperado, sem um erro interno do servidor. GitHub-36544
  • A consulta products agora busca url_key valores quando várias categorias são selecionadas.
  • product consultas agora retornam agregações somente para produtos atribuídos ao catálogo compartilhado especificado. Anteriormente, os dados de agregação de produtos não atribuídos a um catálogo compartilhado apareciam na navegação em camadas.
  • O método OptionValueProvider class get() agora retorna um valor de opção de atributo com base no option_id especificado, conforme esperado. Anteriormente, retornava um erro. GitHub-35910
  • A consulta products agora retorna todas as agregações (filtros) disponíveis e seus rótulos traduzidos corretamente. Anteriormente, os rótulos de agregação de categoria e preço não eram traduzidos conforme esperado. GitHub-36140
  • Agora você pode usar um fragmento ProductCard ao consultar related_products, upsell_products e crosssell_products em ProductInterface. GitHub-29769
  • A consulta products agora retorna produtos relacionados, de venda adicional e de venda cruzada na ordem em que foram salvos. GitHub-36461
  • As consultas do GraphQL agora retornam dados de produtos relacionados classificados por posição. GitHub-33010
  • category_url_path foi adicionado a ProductAttributeFilterInput, que oferece suporte à solicitação de todos os produtos para uma categoria em uma única consulta. GitHub-32460
  • Correção de um erro em que o método que define o armazenamento atual em uma mutação GraphQL executada antes do método que lida com a validação. GitHub-31336

Imagem

  • O formulário de carregamento de ícone de favicon de Administrador agora oferece suporte a .ico tipos de arquivos. GitHub-34858

Importar/exportar

  • O processo de importação do produto agora analisa os valores com o separador correto. Anteriormente, o processo de importação usava o operador de barra vertical ("|") para analisar valores de seleção múltipla até que o separador de valor determinado não fosse igual ao valor padrão. O processo de importação falhou posteriormente.
  • 301 redirecionamentos agora são criados automaticamente quando URL Key valores são atualizados pela importação de CSV.
  • As taxas da tabela de remessa agora são atualizadas conforme esperado no arquivo CSV de importação de taxa de tabela. O arquivo de upload da taxa de tabela é armazenado temporariamente até que o trabalho cron do processador de configuração assíncrono seja executado. Este trabalho cron seleciona o novo local do arquivo e o processa adequadamente. Anteriormente, as taxas da tabela não eram atualizadas conforme esperado porque o processador assíncrono procurava o arquivo no local errado.
  • A grade Exportar arquivos agora mostra todos os arquivos exportados, independentemente do carimbo de data e hora. Anteriormente, a grade não exibia todos os arquivos exportados que tinham o mesmo carimbo de data e hora. GitHub-36951
  • Os produtos com opções personalizáveis agora podem ser importados com sucesso. Anteriormente, os dados de opções eram perdidos durante a importação. GitHub-37598
  • Caracteres especiais em arquivos CSV exportados agora são representados conforme esperado no Excel. GitHub-37921
  • Importando fontes de estoque e endereços de clientes usando o Customers and Addresses (single file) agora a opção é concluída com sucesso.
  • A importação do produto não falha mais devido à falta de memória. Anteriormente, a importação de qualquer número de produtos para um banco de dados que já contém aproximadamente dez milhões de produtos falhava devido à falta de memória.
  • As verificações de validação agora interrompem o processo de importação conforme esperado, quando não há dados válidos a serem importados, e o Commerce agora exibe este erro: There are no valid rows to import. Anteriormente, a validação passava sob estas condições, mas o processo de importação falhou com esta mensagem: entity values are mixed. GitHub-32905
  • A importação de chaves de URL com o mesmo produto não substitui nem exclui chaves de exibição de loja padrão existentes. As substituições de URL agora são geradas novamente para exibições de armazenamento somente quando não há valor url_key substituído. Anteriormente, a importação de regravações de URL com a mesma chave de URL substituía a chave de URL de exibição de loja padrão existente. (key_store regravações de URL foram excluídas, mas a regravação de URL no nível de exibição da loja padrão do produto ainda estava definida como key_store.)
  • A contagem de produtos não é mais alterada inesperadamente durante a importação. A liberação de cache agora é adiada para depois do processo de importação.
  • O status das ações de importação agendadas agora representa com precisão o sucesso ou a falha da operação de importação. Anteriormente, todas as ações eram registradas como bem-sucedidas.
  • O Commerce agora leva em consideração a configuração Disable Automatic Group Change Based on VAT ID durante a importação de registros de clientes. Anteriormente, o valor disable_auto_group_change nos arquivos de importação era ignorado. GitHub-36409
  • Magento\Framework\Convert\Excel agora manipula com êxito números que são precedidos por um espaço. O XML do Excel agora codifica campos como um String. Anteriormente, o gravador do Excel codificava esses valores como number, o que resultava em arquivos inválidos. GitHub-33422
  • Os comerciantes agora podem especificar o local em que os dados de importação são apresentados e como os validadores de dados devem analisar esses dados. Se um valor de local não for especificado, o Adobe Commerce usará o local de configuração padrão (não a exibição de armazenamento padrão) para analisar os dados. No Admin, os processos de importação e exportação continuam a usar o local da interface do usuário do administrador para importar, analisar e formatar dados, respectivamente.
  • A importação de produtos com atributos country_of_manufacture que foram criados por um usuário administrador com uma configuração de localidade diferente do usuário administrador que está importando os produtos não gera mais um erro de validação. Anteriormente, essa operação de importação poderia resultar em um erro de validação no atributo country_of_manufacture.
  • Os dados de origem do estoque agora são importados com êxito pelo processo de importação do armazenamento, e o Commerce agora exibe uma mensagem de notificação completa quando o processo de importação é concluído. Anteriormente, a mensagem de notificação estava ausente.
  • A invalidação do indexador redundante foi removida quando os indexadores estão no modo agendado.
  • Os produtos exportados agora têm o valor manage_stock correto quando o valor use_config_manage_stock é igual a 1. Anteriormente, esse valor padrão estava incorreto.
  • O Adobe Commerce agora exibe uma mensagem de erro informativa na grade de importação agendada quando uma imagem não é importada com êxito durante uma operação de importação agendada. Anteriormente, nenhuma mensagem de erro era exibida.
  • O processo de importação do produto não é mais interrompido quando as imagens do produto estão ausentes. Anteriormente, quando uma imagem do produto estava ausente durante a importação de um serviço de terceiros usando um arquivo CSV, o Adobe Commerce exibia este erro: Maximum error count has been reached or a system error is occurred!.
  • O desempenho da exportação do cliente a partir da grade do Cliente foi aprimorado em implantações em que o B2B está habilitado.
  • O processo de importação de produto não lança mais um erro de validação quando um valor de atributo na coluna configurable_variations contém uma vírgula.
  • A decodificação foi excluída do processo de exportação. O texto do arquivo de exportação de arquivos CSV permanece inalterado após a importação. Como resultado, a descrição não é alterada após a reimportação. Anteriormente, as tags HTML eram removidas do editor do Page Builder após a exportação e importação do produto.
  • Configurações não padrão (escopo de site ou de repositório) que são adicionadas como variáveis de ambiente não interrompem mais o processo app:config:import com um erro de recursão.
  • A pesquisa no catálogo e os indexadores de preço no modo Atualizar ao salvar não são mais invalidados após a importação. Anteriormente, a versão do documento do Indexador de Elasticsearch mudava quando produtos novos e existentes eram importados.
  • Os relatórios de produtos agora são exportados para o diretório var. Anteriormente, esses relatórios eram exportados para o diretório raiz do documento, que é um diretório somente leitura em instâncias da nuvem.
  • Campos vazios de endereço de vários clientes selecionados não interrompem ou interrompem o processo de exportação.

Índice

  • Desempenho aprimorado do indexador catalogrule_product quando nenhuma regra de catálogo está definida. GitHub-34784
  • Problemas com o desempenho do indexador de preços foram resolvidos. O desempenho do indexador não é mais degradado gradualmente. O indexador foi refatorado para aumentar a velocidade de processamento do indexador, alterando a forma como as tabelas temporárias são criadas. Essas tabelas temporárias agora são recriadas em vez de serem endereçadas por instruções DELETE mais demoradas.
  • O desempenho do indexador de preços foi aprimorado. Uma dica de índice foi adicionada ao indexador de preço que melhora os tempos de execução de consultas MySQL que são acionadas durante a indexação.
  • Todos os indexadores agora usam as mesmas cores para representar o estado do indexador. GitHub-34648
  • O desempenho do indexador do Produto de regra de catálogo em implantações em que as regras não são atribuídas a todos os sites foi aprimorado.
  • Criar um tipo de produto personalizado quando os indexadores estiverem definidos como Update on schedule não causa mais falha na tarefa de atualização de índice cron. GitHub-36471
  • Problemas de exibição na página de detalhes do produto da loja provocados pela indexação de permissões de catálogo foram resolvidos. Anteriormente, a Adobe Commerce limpava a tabela de índice primeiro e depois reindexava durante um processo de indexação completo do catalogpermissions_product ou do catalogpermissions_category. As permissões de catálogo não funcionavam como esperado na loja até que a reindexação fosse concluída.
  • bin/magento indexer:reindex customer_grid não falha mais com um erro MySQL quando a grade do cliente inclui atributos personalizados recém-criados do cliente. GitHub-36233
  • A alteração do modo do indexador para vários indexadores (isto é, uma alteração do modo do indexador de ação em massa) agora altera o modo de um indexador somente quando o modo atual é diferente daquele que está sendo aplicado. Isso melhora o desempenho, evitando viagens desnecessárias ao banco de dados. GitHub-36823

Infraestrutura

  • Adição de uma instrução return ausente ao controlador de habilitação de uso de Admin. Anteriormente, não havia instrução return e o controlador na classe FrontendController era manipulado incorretamente. GitHub-31374
  • MySQL CREATE TEMPORARY TABLE ... LIKE substituído por CREATE TEMPORARY TABLE refatorado para conformidade com MySQL 8.x. GitHub-37926
  • O Adobe Commerce não inclui mais o caminho completo para a raiz do servidor na mensagem de erro exibida quando uma solicitação HTTP malformada foi enviada ao servidor. Somente as cadeias de caracteres agora são passadas para o método explode como segundo argumento.
  • restricted_classes.php substituiu Zend_Validate_File_Upload. Anteriormente, o validador falhou durante o carregamento de um arquivo de importação maior que o valor configurado em php.ini . GitHub-37281
  • As opções de atributo fornecidas pelo modelo de fonte de dados e instaladas usando o patch de dados de configuração (normalmente de módulos de terceiros) agora podem ser usadas com regras de segmento do cliente. Anteriormente, essa combinação não retornava a lista de clientes que correspondiam ao segmento configurado.
  • O mecanismo de modelo de email agora pode processar corretamente determinadas diretivas aninhadas (por exemplo, {{if}}{{depend}}...{{/depend}}{{/if}}). GitHub-36438
  • product consultas com dados de agregação agora retornam os valores de rótulo corretos para atributos de produto do tipo Booleano. GitHub-29123
  • Os arquivos CSS não estão mais corrompidos quando mesclados quando var/tmp e pub/static estão em sistemas de arquivos diferentes e CSS Merging Enabled está habilitado. Foram criados arquivos temporários no mesmo diretório estático do arquivo de destino para garantir que ambos os arquivos estejam no mesmo sistema de arquivos. Como resultado, a chamada para renomeá-lo é atômica. GitHub-29172
  • Correção de um erro potencial ao chamar uma função de membro getId() em int, que ocasionalmente disparava uma exceção quando um cliente era visualizado no Administrador.
  • As verificações de tipo agora são aplicadas para o tipo de matriz no processador de configuração do tema de design. GitHub-34440

Inventory management

  • Os produtos agora são automaticamente retornados ao status Em estoque após um aviso de crédito que inclui um retorno da quantidade do produto. Anteriormente, se um produto estava esgotado, mas um aviso de crédito devolvia o estoque desse produto, os comerciantes tinham que alterar manualmente o status do estoque do produto.
  • Desempenho aprimorado do indexador de inventário no modo assíncrono, removendo solicitações redundantes para reindexar itens de origem padrão.
  • Correção de problemas com o indexador de Inventário que afetavam a precisão da contagem de estoque da loja de produtos configuráveis. GitHub-36421
  • A atualização de itens de origem de estoque via REST V1/inventory/source-items agora funciona mais rápido. A chamada não aciona mais uma operação de reindexação ou de cache limpo em produtos de inventário inalterados.
  • REST V1/products/<sku> agora aciona uma reindexação automática de estoque ao atualizar o status de estoque de um produto. Anteriormente, uma reindexação de estoque não era acionada para o produto que estava sendo atualizado.
  • O status configurável do estoque do produto foi atualizado na loja conforme esperado quando os produtos derivados são atualizados por V1/inventory/source-items.
  • A chamada REST POST <store_code>/V1/inventory/source-items agora valida a carga de espaço em branco em itens de origem de estoque retornados e envia uma mensagem de erro sobre a validação, conforme necessário.
  • Os comerciantes agora podem notificar os compradores de que um pedido está pronto para retirada quando a configuração No Manage Stock estiver habilitada para um produto. Anteriormente, quando esta configuração era habilitada, o Commerce exibia esta mensagem de erro: Your order is not ready for pickup.
  • Os comerciantes agora podem criar um aviso de crédito para pedidos dos quais um produto simples associado a um produto configurável foi excluído. Anteriormente, os comerciantes não podiam criar o memorando de crédito, e o Commerce lançou uma exceção TypeError.
  • A contagem de origem da grade de administração agora retorna registros válidos após a aplicação de um filtro. Anteriormente, o método getSourcesCount sempre retornava o número total de origens após a aplicação de um filtro.
  • A página Categoria não redireciona mais para o painel Administrador ao classificar produtos usando a opção "Mover do estoque para o final". O problema foi resolvido colocando a instrução de junção SQL dentro da instrução condicional somente depois de garantir que ela já não esteja incluída. Anteriormente, a página era redirecionada para o Painel de administração com a mensagem:Invalid security or form key. Please refresh the page.
  • AUTO_INCREMENT da tabela inventory_source_item não aumenta mais com cada operação UPDATE. Anteriormente, cada atualização aumentava o AUTO_INCREMENT desta tabela, o que eventualmente fazia com que o valor AUTO_INCREMENT ficasse fora do intervalo ao adicionar um novo registro ao inventory_source_item table. Como resultado, usuários administradores receberam o seguinte erro ao tentar criar um novo produto pelo Administrador: Numeric value out of range....
  • Os usuários administradores agora podem adicionar um produto a um carrinho do cliente a partir do Administrador para um escopo de exibição de loja específico com o Inventory management. Anteriormente, a ID do estoque não era determinada corretamente e os usuários administradores não podiam adicionar o produto ao carrinho do cliente.
  • A sincronização entre o Inventário e o catálogo não depende mais da configuração Synchronize with Catalog. Anteriormente, os produtos eram sincronizados corretamente somente quando essa configuração era ativada.
  • O Adobe Commerce não lança mais um erro após o recarregamento da página quando um comprador deduz uma quantidade de produto de um pedido que está dentro da faixa de produto disponível ao selecionar a origem do envio.
  • O status do estoque de produtos configuráveis agora é atualizado corretamente quando o valor de um produto configurável e seus produtos derivados Stock Availability é atualizado por uma atualização de estoque em massa. Anteriormente, não era possível devolver um produto configurável e seus produtos derivados ao estoque por atualização em massa.
  • O tipo de dados para fontes fora do padrão foi atualizado para DECIMAL (12, 4) para suportar até oito dígitos inteiros, que é o mesmo limite implementado para o estoque padrão. Esse valor agora está sincronizado com as páginas Admin adicionar e editar produto, que oferecem suporte à validação de entrada para até oito dígitos para todos os tipos de fontes de inventário. Anteriormente, só havia suporte para até seis dígitos na entrada do campo Quantity (para fontes não padrão).
  • As origens padrão e não-padrão agora exibem as informações corretas para a quantidade comercializável do produto quando uma origem não-padrão solicitada na loja é processada para entrega. Anteriormente, o Adobe Commerce exibia status de estoque incorreto para fontes de produtos.
  • \Magento\Catalog\Model\Product::getIsSalable() agora retorna o status de estoque com base no escopo definido no objeto de produto (\Magento\Catalog\Model\Product::getStoreId()). Anteriormente, getIsSalable() retornava o status do estoque com base no escopo atual, independentemente do objeto do produto.

Logs

  • Atualização do formato de data e hora no recurso Relatórios do sistema para incluir registros de arquivos de log em relatórios.
  • Os usuários administradores agora podem ver os logs de ações em massa criadas por integrações na seção Log de ações em massa do Administrador.

Logon

  • Redefinir uma senha em um navegador e fazer logon posteriormente por um navegador diferente não resulta mais em uma exceção. GitHub-36447
  • Os clientes agora são redirecionados para a página de logon após ativar uma conta conforme esperado. Antes, os clientes eram conectados automaticamente.

Galeria de mídia

  • Os comerciantes agora podem fazer upload de imagens com o mesmo nome, mas com caracteres em maiúsculas e minúsculas diferentes (uma combinação de caracteres em maiúsculas e minúsculas) na Galeria de mídia. Anteriormente, os nomes dos arquivos de imagem não diferenciavam maiúsculas de minúsculas no Page Builder e os arquivos com os mesmos nomes, exceto maiúsculas e minúsculas, eram substituídos no armazenamento de mídia do Commerce, que era hospedado em sistemas de arquivos que diferenciavam maiúsculas de minúsculas.

Informativo

  • O Commerce agora verifica se a funcionalidade de assinatura do boletim informativo está ativada antes de aceitar novos assinantes para um boletim informativo. GitHub-33040

Pedidos

  • Os produtos movidos do carrinho de compras de Administrador para a lista de itens a serem solicitados agora são excluídos, conforme esperado, do carrinho de compras. GitHub-37538
  • Os comerciantes agora podem criar avisos de crédito conforme esperado para o retorno parcial de pedidos que foram pagos em parte por pontos de recompensa. Anteriormente, quando um comerciante criava uma devolução parcial, o status do pedido era identificado incorretamente como fechado, e a página de pedido do administrador não exibia opções de aviso de crédito.
  • A rotação do log de ação do administrador agora funciona conforme esperado quando a frequência de arquivamento do log de rotação é definida como intervalos semanais ou mensais. Anteriormente, quando os intervalos semanais ou mensais eram definidos, os logs não eram girados.
  • O Commerce agora aplica o valor de desconto correto a pedidos parcialmente cancelados. Anteriormente, o valor do desconto conforme calculado na coluna base_discount_cancelled era calculado incorretamente quando um pedido era alterado. O suporte para valores negativos foi adicionado às faturas de pedidos com desconto.
  • O ponto de extremidade REST V1/orders agora aplica cartões-presente conforme esperado ao importar pedidos. Anteriormente, as alterações nos atributos de extensão do cartão-presente neste endpoint não eram salvas.
  • O Commerce agora classifica atributos personalizados de endereço do cliente com base na ordem de classificação fornecida quando o usuário administrador criou o pedido no Administrador.
  • A página Grade de Ordens de Venda de Administrador agora é carregada conforme esperado quando um comerciante inicia uma pesquisa nessa página. Anteriormente, quando um comerciante tentava pesquisar pedidos dessa tabela, a página congelava e o Commerce exibia um erro Request-URI Too Long no console do navegador.
  • O status do pedido agora é marcado como fechado em vez de concluído quando o valor inteiro do pedido é reembolsado com crédito de armazenamento mais um método de pagamento adicional. Anteriormente, o status do pedido era marcado como concluído porque o valor reembolsado era calculado incorretamente.
  • Melhorou o desempenho do método OrderRepository::get() ao reduzir o número de vezes que ele carrega um pedido do banco de dados. Anteriormente, esse método carregava um pedido várias vezes. GitHub-36636
  • Os comerciantes agora podem gerar avisos de crédito para ordens que contêm alguns itens com um total zero quando outros itens da ordem estiverem disponíveis para reembolso. Anteriormente, os comerciantes não podiam realizar vários reembolsos quando um cliente tinha um desconto de 100% em alguns itens no pedido.
  • Os links entre produtos filho e pai agora são exibidos na página do pedido durante a reorganização do produto filho do Administrador. GitHub-37028
  • A seção de cabeçalho da página do pedido agora contém as informações esperadas sobre a fatura enviada, o aviso de crédito e a remessa. GitHub-27474
  • Os avisos de crédito para pedidos que contêm apenas um produto configurável agora são gerados corretamente. Anteriormente, a função isLast() não retornava true conforme esperado. GitHub-36722
  • Desempenho aprimorado do trabalho cron aggregate_sales_report_bestsellers_data ao otimizar a consulta de dados principal.
  • O Adobe Commerce não lança mais um erro ao criar um aviso de crédito com um reembolso offline para um saldo de cliente quando o usuário administrador não tem permissão para acessar o site do cliente. Anteriormente, o Adobe Commerce exibia este erro: More permissions are needed to view this item, e o usuário administrador não podia criar um reembolso de crédito da loja.
  • O status do pedido agora está correto quando um pedido que contém produtos agrupados foi reembolsado parcialmente. Anteriormente, o status do pedido era listado como concluído após a emissão de um reembolso parcial, mesmo que o pedido restante não estivesse completo. GitHub-37377
  • Os compradores não podem mais solicitar um produto usando um preço personalizado quando um pedido é gerado pela primeira vez pelo administrador usando o preço personalizado único. Anteriormente, se um pedido continha um item com preços personalizados, esse preço personalizado era aplicado a outros pedidos feitos com a funcionalidade de novo pedido.
  • Os compradores não podem mais salvar status de pedidos incorretos na página de pedidos. O status do pedido não é mais alterado de Concluído para Processamento quando um item é entregue. Anteriormente, o Adobe Commerce não verificava o status atual do pedido antes de salvar o status do pedido depois que um comprador inseria um comentário. GitHub-36562
  • O Adobe Commerce não lança mais um erro na página de devolução de pedidos de vitrine quando o produto configurável que está sendo devolvido foi excluído. Anteriormente, o Adobe Commerce registrava este erro: report.CRITICAL: Error: Call to a member function getShipmentType() on null in magento2ee/app/code/Magento/Rma/view/frontend/templates/return/create.phtml:52.
  • A grade da ordem de venda agora é sincronizada de forma assíncrona com todas as ordens, conforme esperado. GitHub-36562
  • A funcionalidade filtrar por data de compra na seção pedidos do cliente da página pedidos agora funciona conforme esperado. Anteriormente, um erro de JavaScript ocorria quando a lógica de conversão de fuso horário exibia um erro quando o mesmo fuso horário era fornecido ao método.
  • O painel do Adobe Commerce agora exibe as estatísticas de pedidos corretas na primeira carga. Anteriormente, o painel exibia informações incorretas sobre a ordem, mas exibia as informações corretas depois que o período era atualizado.
  • Os usuários administradores agora são redirecionados como esperado para a página de pedido depois de selecionar uma visualização de loja durante a criação de novo pedido pelo Administrador.
  • O ponto de extremidade GET V1/orders/<OrderID> agora retorna informações sobre os produtos configuráveis e simples do pedido, independentemente do status do estoque dos produtos simples. Os usuários administradores agora só podem fazer pedidos se os itens selecionados (produtos) estiverem em estoque ou forem comercializáveis. Anteriormente, essa API retornava informações apenas sobre os produtos que estavam em estoque.
  • A página de aviso de crédito não trava mais quando o frete gratuito está habilitado quando o preço do frete inclui imposto e os cálculos de imposto são aplicados após os descontos. Anteriormente, o Adobe Commerce lançava uma exceção Division by zero. GitHub-36800
  • Usar o ponto de extremidade rest/V1/orders/{id}/comments para postar um comentário sobre um pedido sem fornecer o status do pedido não afeta mais a exibição do pedido. Anteriormente, o status do pedido era registrado como NULL nas tabelas sales_order e sales_order_grid, e nem a página Meus pedidos nem a grade de pedidos do administrador exibiam o pedido. GitHub-34180
  • As faturas, remessas e avisos de crédito agora podem ser movidos de volta com êxito do arquivo junto com suas ordens associadas quando as IDs que eles incluem diferem das IDs da ordem. Anteriormente, se um pedido fosse movido para o arquivo e restaurado, os registros de fatura, remessa e aviso de crédito ficariam ausentes desse pedido se os números de ID não correspondessem. GitHub-36847

Page Builder

  • Agora as imagens mantêm a proporção correta quando redimensionadas no Page Builder. GitHub-37493
  • O Page Builder agora exibe mensagens de erro conforme necessário quando você tenta fazer upload de uma imagem maior do que o tamanho máximo de arquivo especificado. Anteriormente, o Commerce exibia uma mensagem pop-up de alerta para arquivos de imagem carregados que eram menores que o máximo especificado.
  • Os controles deslizantes de produto da página CMS agora incluem os produtos principais de qualquer produto secundário que foi selecionado para inclusão no controle deslizante. Anteriormente, os produtos principais eram excluídos do controle deslizante.
  • O conteúdo convertido em HTML agora é exibido em modelos de email conforme esperado quando o módulo Magento_AsyncConfig é desativado. Anteriormente, os templates de email continham apenas HTML bruto.
  • O desempenho das operações de salvamento do Page Builder no navegador do Chrome melhorou.
  • Agora você pode usar a opção Page Builder em Admin > Content > Pages para inserir texto copiado em todos os estilos usando o elemento text. Anteriormente, o Page Builder exibia somente texto sem formatação e não salvava estilos.
  • Os erros do CORS não aparecem mais durante a edição do conteúdo do produto com o Page Builder quando o usuário administrador tem uma ACL específica. O usuário administrador agora pode salvar o produto. Anteriormente, o Page Builder não salvava o produto e o processo de salvamento congelava.
  • Informações precisas sobre o tamanho do arquivo agora são incluídas na pré-visualização da imagem de imagens carregadas no Page Builder.
  • Os elementos de página do Page Builder agora são renderizados em uma velocidade aceitável no navegador Chrome (v112). Anteriormente, o salvamento de conteúdo com o Page Builder em execução no navegador Chrome era lento, e o Commerce registrou este erro no console do navegador: [ERROR] Page Builder was rendering for 5 seconds without releasing locks.
  • A reprodução automática do elemento de vídeo do Page Builder agora funciona conforme esperado em navegadores móveis Safari no iOS quando o elemento é vinculado diretamente a um arquivo de vídeo remoto. Anteriormente, nenhuma imagem de visualização era exibida.
  • O Page Builder agora funciona conforme esperado no navegador Chrome. Anteriormente, as alterações de conteúdo feitas nesse navegador nem sempre eram salvas.
  • O carregamento de uma página de edição de produto do administrador não gera mais um erro intermitente do JavaScript Uncaught TypeError.
  • Imagens carregadas por meio do editor do Page Builder agora são marcadas como usadas em Content > Media Gallery. Anteriormente, essas imagens eram marcadas como não usadas em nenhum lugar da Galeria de Mídia.
  • Adicionar um produto a um carrinho de compras do carrossel do Page Builder não duplica mais a quantidade de itens das páginas com dois widgets diferentes que exibem os mesmos produtos.
  • O Page Builder não adicionará mais o atributo HTML tabindex às tags de hiperlink a quando você editar um hiperlink e, em seguida, salvar um modelo.
  • O widget Produtos e a pré-visualização do Page Builder agora lidam corretamente com caracteres especiais de HTML. Anteriormente, o widget do produto não exibia corretamente SKUs que continham o caractere &.
  • O conteúdo do elemento de texto do Page Builder agora é atualizado conforme esperado ao selecionar e atualizar o bloco de conteúdo completo no modo de visualização.
  • Copiar e colar texto de um editor de texto do Page Builder para outro agora funciona conforme esperado. Anteriormente, a página na qual você tentou colar o texto não podia ser salva, e o Adobe Commerce exibia este erro de console: [ERROR] Page Builder was rendering for 5 seconds without releasing locks..
  • O tipo de conteúdo column-block do Page Builder que foi criado em versões mais antigas do Page Builder agora é exibido corretamente.
  • A filtragem da descrição de metadados do produto durante a criação do produto pelo administrador foi aprimorada. Anteriormente, se o Page Builder estava habilitado, a descrição dos metadados do produto era gerada com base na máscara {{name}} {{description}} padrão. A máscara de metadescrição de produto padrão agora é composta por {{name}}. GitHub-36107
  • A adição de um bloco dinâmico sem conteúdo não aciona mais um erro.

Pagamento

  • Agora o Commerce lida corretamente com erros 502 do PayPal, impedindo a criação de pedidos quando esse erro ocorre. Anteriormente, os pedidos ainda eram criados apesar de um erro 502 do PayPal, que resultava em inconsistências entre os registros do Commerce e do PayPal.
  • As transações de Finalização de compra do PayPal Express agora incluem SKUs de produto filho e títulos completos do produto. O arquivo Magento/Paypal/Model/Cart.php agora coleta SKUs de produtos derivados com seu título de produto principal para identificar o título do produto com a SKU secundária. GitHub-36808
  • A definição de configuração Card Security Code Does Not Match agora é processada conforme esperado durante o processo de pagamento do Payflow Pro. Anteriormente, esse processo de avaliação nunca era concluído, o que bloqueava o check-out.
  • A opção de método de pagamento do Cofre não é mais exibida no fluxo de trabalho Checkout de administrador quando o comprador não tem um token de cofre. GitHub-36273
  • Agora, o botão Venmo poderá ser ocultado quando os botões PayPal estiverem habilitados. Anteriormente, o botão Venmo não podia ser removido do carrinho, do minicarrinho, dos detalhes do produto ou das páginas de check-out.
  • Os compradores agora podem selecionar um método de envio ao aplicar o código do cupom durante o checkout. Anteriormente, sob essas condições, a Commerce emitia um erro e atribuía um frete com taxa uniforme ao pedido.
  • Problemas com o processamento de vitrine dos métodos de pagamento de crédito do PayPal e do PayPal foram resolvidos.
  • Solução de problemas com URLs de fallback para pedidos pagos com a Ideal Payments quando o pagamento local está ativado.
  • Os compradores não podem mais criar um pedido do PayPal sem adicionar um sobrenome.

Braintree

  • As informações de pagamento de Braintree agora são salvas por loja, e os compradores agora veem somente as informações de cartão que foram salvas na loja em que estão comprando. Anteriormente, os compradores podiam ver informações de cartões armazenadas de todas as lojas durante o check-out. GitHub-34253
  • Os compradores agora podem fazer check-out de um pedido enviado para vários endereços usando um método de pagamento Braintree quando o cofre para pagamentos com cartão está desativado. GitHub-37615
  • Os pedidos parcialmente faturados agora são capturados conforme esperado na conta correta em implantações em que os comerciantes têm duas IDs de conta de comerciante diferentes para a mesma moeda em sua conta Braintree.
  • A Adobe Commerce não lança mais um erro ao criar uma segunda fatura parcial para um pedido pago por Braintree quando o Enable Vault for Card Payments está habilitado. Anteriormente, quando um comerciante tentava criar uma segunda fatura, a Adobe Commerce exibia este erro: Your payment could not be taken. Please try again or use a different payment method. Payment method token is invalid.
  • A opção de método de pagamento do Cofre de Braintree não é mais desmarcada automaticamente no fluxo de trabalho de finalização quando um comprador atualiza seu endereço de faturamento. Anteriormente, o método de pagamento era desmarcado quando o comprador desmarcava o botão My billing and shipping address are the same.
  • Solução de problemas ao fazer check-out do PayPal pelo Braintree após a atualização do Adobe Commerce 2.4.5-p2. GitHub-37242
  • Os números de telefone agora são renderizados conforme esperado com endereços nos campos de endereço de envio pop-up modal de Pagamento do Google. Anteriormente, os números de telefone estavam ausentes.
  • Os pedidos agora são feitos com êxito com Braintree quando a resposta Braintree inclui um valor vazio para threeDSecureInfo/eciFlag. Anteriormente, um erro de PHP ocorria durante o check-out quando este valor estava vazio.
  • O Adobe Commerce não lança mais um erro quando um comprador aplica um cupom na página de revisão do pedido ao fazer check-out com o Google Pay do minicarrinho. Anteriormente, os compradores eram redirecionados para uma página 404.
  • Os compradores agora podem concluir o checkout usando o Braintree Payments e o Adobe Commerce 2.4.6 com ReCAPTCHA v2 ou v3 invisível. GitHub-37241
  • Os compradores não podem mais clicar no botão PayPal para comprar um produto configurável sem primeiro selecionar as opções necessárias. Anteriormente, os compradores podiam clicar no botão PayPal e, posteriormente, eram redirecionados de volta à página do produto com um erro:
  • O botão PayPal agora é exibido conforme esperado nas páginas do carrinho e do minicarrinho. Anteriormente, esse botão não era exibido na página do carrinho e duplicado na página do mini carrinho.

Desempenho

  • Vários cliques no menu suspenso de ação em massa da página Vendas > Pedidos não geram mais várias solicitações POST. GitHub-37997
  • Somente 200 ou 404 respostas são armazenadas em cache quando um comprador navega para uma página que aciona um redirecionamento 301, a menos que o cabeçalho Cache-Control da página contenha private . Anteriormente, um status HTTP 200 com private no cabeçalho Cache-Control era armazenado em cache, e um status HTTP 301 era armazenado em cache, a menos que contivesse private em seu cabeçalho Cache-Control. GitHub-36492
  • Removido o Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper não utilizado de Magento\Catalog\Model\ProductRepository. Anteriormente, o ProductRepository carregava este auxiliar, que é um controlador Adminhtml. GitHub-37864
  • Melhor desempenho da velocidade de carregamento da página quando muitas opções são adicionadas aos produtos agrupados. GitHub-29409
  • O processo de atribuição de produtos a categorias da guia Products in Category foi otimizado. Os botões Assign e Remove na guia Add Product by SKU agora estarão desabilitados até que os produtos sejam totalmente carregados na grade. Anteriormente, os usuários administradores não podiam adicionar produtos por SKU em catálogos que continham milhões de produtos registrados.
  • O desempenho da mutação addProductToCart ao ser executada com muitos atributos de produto personalizados melhorou. Anteriormente, quando essa mutação era executada com muitos atributos de produto ( aproximadamente 1000), o Commerce tentava carregar todos os atributos de produto.
  • Problemas de desempenho ao carregar atributos de produto usados pelas regras do carrinho foram resolvidos. Somente atributos de produto para regras de carrinho ativas agora são carregados.
  • O comando bin/magento setup:perf:generate-fixtures setup/performance-toolkit/profiles/ee/small.xml agora é executado com êxito quando executado várias vezes. Anteriormente, ocorreu este erro quando executado mais de uma vez: Coupon with the same code already exists.

Promoção

  • Os efeitos da regra de preço Fixed amount discount for whole cart, quando aplicados com a regra Apply to shipping amount, agora são distribuídos proporcionalmente, conforme esperado, entre os produtos e os valores de remessa. Anteriormente, os cálculos de desconto estavam incorretos.
  • A configuração Discard Subsequent Rules agora é aplicada conforme esperado. Quando esta configuração está habilitada, outras regras com baixa prioridade podem ser aplicadas somente a um produto diferente. GitHub-35707

reCAPTCHA

  • O reCAPTCHA v3 invisível agora funciona como esperado para o botão da página de check-out Sign in. Anteriormente, os compradores não podiam fazer logon e o Commerce gerava erros no JavaScript.
  • O Google reCAPTCHA no workflow de finalização agora funciona como esperado para cheques, ordens de pagamento e métodos de pagamento personalizados.
  • Os formulários do Adobe Commerce não podem mais ser enviados antes que a caixa de seleção Google ReCAPTCHA seja carregada.
  • O widget reCAPTCHA agora precede o botão Place Order na página de pagamento. Anteriormente, o widget era exibido na parte superior da página.

Relatórios

  • O relatório Pedidos (REPORTS > Sales > Orders) agora inclui valores de pedidos corretos quando os pedidos são gerados por lojas que usam moedas não padrão. Anteriormente, esse relatório incluía valores incorretos. GitHub-36742
  • Informações enganosas no formulário de relatório de ordem de venda foram revisadas para maior clareza.
  • Os usuários administradores agora podem pesquisar registros com emails que contêm + (mais) sinais na página Relatório de carrinhos abandonados. GitHub-36560
  • Os nomes das transações do GraphQL agora são exibidos corretamente depois que o New Relic é desativado no Commerce Admin. GitHub-36112

Resenhas

  • Os compradores não podem mais enviar rapidamente análises de produtos duplicadas quando o reCAPTCHA v3 Invisível está habilitado.

Recompensas

  • Os emails de expiração de pontos de premiação não são mais enviados depois que os pontos expiram. As tarefas cron magento_reward_balance_warning_notification e magento_reward_expire_points foram alteradas para aumentar a flexibilidade e a capacidade de envio de email. Anteriormente, os comerciantes não podiam enviar muitos emails gerados por essas tarefas do CRON em um curto período de tempo. Isso pode ter causado atrasos no envio de notificações sensíveis ao tempo.
  • Os pontos de premiação expirados agora são subtraídos do saldo de pontos de premiação atual de um comprador, conforme esperado.
  • A notificação por email de atualização do saldo de pontos de premiação agora leva em conta o contexto de loja atual. Anteriormente, o email de atualização de saldo de pontos de premiação usava as configurações da loja padrão.
  • Os pontos de recompensa agora podem ser reembolsados após a criação de um memorando de crédito. Anteriormente, os comerciantes não podiam reembolsar pontos de recompensa após criar um memorando de crédito, e o status do pedido permanecia Completed, não Closed.

ADM

  • A solicitação REST POST /V1/returns agora cria um RMA por produto. Anteriormente, essa solicitação podia ignorar a validação e retornar vários RMAs por produto.
  • Os atributos de RMA agora são adicionados automaticamente ao formulário EAV padrão quando o atributo de RMA Show on Storefront é definido como não. Anteriormente, o pop-up de detalhes do item de RMA ficava em branco quando um atributo de retorno personalizado era criado e o atributo de RMA Show on Storefront era definido como não.
  • O valor do atributo Enable RMA agora corresponde ao valor especificado na configuração quando a caixa de seleção Use Config, na página de edição do produto, está habilitada.
  • O atributo Enable RMA no nível de produto individual agora respeita a configuração das configurações de RMA da loja. Anteriormente, essa configuração era desativada por padrão quando você adicionava um produto, independentemente das configurações da loja.

Pesquisar search-heading

  • As sugestões de pesquisa de preenchimento automático no front-end de mini pesquisa do cabeçalho agora funcionam conforme esperado. Anteriormente, o preenchimento automático não preenchia esse campo quando esse recurso era ativado. GitHub-37557
  • O desempenho de consultas feitas na barra de pesquisa Admin foi aprimorado com a adição de um indexador. Anteriormente, quanto maior a tabela search_query, mais demorava para a conclusão da consulta.
  • A classificação alfabética de produtos por nome agora funciona corretamente para nomes que contêm caracteres turcos.
  • A propriedade de atributo de produto Use in Search Results Layered Navigation agora é exibida somente quando a configuração Use in Search está definida como Yes.
  • O preço da pesquisa avançada e os filtros SKU agora funcionam corretamente quando aplicados juntos em uma pesquisa avançada. GitHub-37581
  • As pesquisas não são mais executadas para campos de pesquisa vazios. Isso reduz o tamanho da tabela search_query. Anteriormente, consultas incorretas ou consultas em campos de pesquisa vazios retornavam um enorme conjunto de dados, o que aumentou o tamanho da tabela search_query e resultou em problemas com /tmp.
  • Agora os filtros de vitrine eletrônica funcionam como esperado ao classificar entradas de catálogo com atributos personalizados suspensos.
  • Os resultados da pesquisa agora exibem resultados relevantes com base no peso da pesquisa dos atributos, conforme esperado.
  • O texto informativo no campo de entrada Storefront Properties do atributo Search Weight em Admin Stores > Attributes > Product agora descreve os valores possíveis. GitHub-36646

Envio

  • As regras de preço do carrinho agora funcionam como esperado quando um produto combinado é adicionado ao carrinho quando os atributos de preço dinâmicos estão desativados. O frete grátis e a taxa de tabela correta são aplicados independentemente do atributo dinâmico estar ativado ou desativado. Anteriormente, o frete grátis não era aplicado conforme esperado.
  • A Commerce agora faz a transição para uma nova página de remessa, conforme esperado, após criar uma remessa parcial de um pedido. Anteriormente, após a criação de uma remessa parcial, a Commerce não criava uma página de remessa completa para os produtos restantes do pedido. GitHub-38063
  • O valor total para enviar um pedido para vários endereços agora é calculado corretamente. Anteriormente, quando uma cotação continha mais de um endereço de entrega, o coletor total atualizava o valor da remessa para o endereço fornecido em $quote->getShippingAddress(), em vez de passá-lo por $shippingAssignment, conforme esperado. GitHub-37283
  • O Commerce não lança mais uma exceção durante o check-out com vários endereços de envio quando o usuário administrador tiver usado o logon como recurso do cliente.
  • Os produtos agora são listados corretamente na grade Produtos da página Criar pacotes quando você adiciona produtos a um pacote após a criação do rótulo de remessa.
  • A consulta cart agora retorna descontos de remessa discretos como descontos de remessa separados com etiquetas de desconto exclusivas. A nova propriedade de desconto applied_to oferece suporte à diferenciação entre descontos aplicados a um item de carrinho. Anteriormente, todos os descontos de envio eram combinados em um valor codificado de Shipping Discount.
  • Quando um usuário administrador cria um novo pedido, os endereços de cobrança e de envio do pedido inicial preenchem automaticamente os campos relevantes quando o usuário administrador clica no botão Reorder (Administrador Sales > Orders > View ). Se os mesmos endereços forem salvos no catálogo de endereços do comprador, a reorganização sempre incorporará uma versão atualizada desses endereços. Anteriormente, o campo Endereço de entrega era pré-preenchido com os dados atualizados, mas o campo Endereço de cobrança não era.
  • A caixa de texto Shipping Policy agora estará visível no escopo do Modo de Exibição de Repositório de Administração quando Apply custom Shipping Policy estiver habilitado e uma política de envio personalizada estiver disponível. GitHub-36425
  • A consulta cart agora retorna um valor selected_shipping_method que corresponde a um dos códigos da operadora e do método available_shipping_methods. Anteriormente, quando um dos métodos de envio selecionados continha um sublinhado, esses códigos de transportadora/método eram incompatíveis. GitHub-36606
  • A mutação setShippingAddressesOnCart não lança mais um erro quando o segundo valor na matriz de rua é nulo. Anteriormente, esta exceção foi gerada: The address failed to save. Verify the address and try again. GitHub-35160

Mapa do site

  • O mapa de site XML agora funciona como esperado em uma implantação de várias matérias. Anteriormente, os mapas de site não continham as páginas padrão atribuídas para cada loja. GitHub-35001
  • Agora os comerciantes podem criar e salvar um produto quando o site id != 1 e o modo de loja única estiverem habilitados. Anteriormente, a ação de salvar falhou com esta mensagem: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails. GitHub-35009

Estágios

  • As atualizações de preparo para regras de vendas não são mais duplicadas no painel de preparo.
  • Os produtos do pacote agora são atualizados corretamente se um comprador os adicionar ao carrinho quando uma atualização de programação estiver em andamento. Anteriormente, se um produto combinado com opções era adicionado ao carrinho quando uma tarefa de agendamento estava em andamento, a Commerce lançava esta exceção: Some of the products below do not have all the required options. Please select all required options.
  • As atualizações de programação agora mantêm os preços corretos para as opções de pacote. Anteriormente, esses preços eram alterados para zero para exibições específicas de sites ou lojas.
  • Atualizar uma atualização agendada não remove mais a versão anterior do item preparado se nenhuma data final for especificada. Anteriormente, quando um item preparado era atualizado, a versão revertida do item era removida se nenhuma data final fosse especificada. O Commerce não gerou um erro ou avisou os usuários administradores antes da exclusão.
  • Os valores de rótulos de exibição da loja não são mais apagados após uma atualização programada para regras de preço do carrinho. Anteriormente, esses rótulos eram apagados mesmo se não estivessem especificados na atualização.
  • As visualizações de preparo de conteúdo agora funcionam corretamente em páginas vinculadas. Anteriormente, não era possível navegar para páginas vinculadas na visualização de preparo, mas elas eram direcionadas incorretamente para páginas da loja.
  • Сalterar uma atualização de preparo não resulta mais na remoção de atualizações programadas que são atribuídas a uma data posterior.
  • Os erros do JavaScript Google Analytics não ocorrem mais ao adicionar ou editar atualizações agendadas para categorias quando os Experimentos de conteúdo estão ativados.
  • Os comerciantes agora podem salvar com êxito uma atualização de programação existente para uma categoria depois de visualizá-la ou editá-la. Anteriormente, o Adobe Commerce emitia um erro em system.log.
  • Os links para download agora são preservados conforme esperado quando uma atualização programada é aplicada enquanto os produtos adicionados anteriormente estão no carrinho. Anteriormente, os links baixáveis desapareciam das páginas Minha conta (Meus produtos baixáveis) e Exibição de pedido de administrador do cliente.
  • Os produtos agora estão visíveis na loja, conforme esperado, após uma atualização de preparo que habilita o produto a ser aplicado. Anteriormente, o produto era habilitado no Admin, mas não estava visível na categoria vitrine quando o modo indexador do inventário do catálogo estava definido como Update on Schedule. Uma reindexação completa corrigiu o problema.
  • A fila de consumidores staging.synchronize_entity_period na tabela magento_bulk não aumenta mais quando não há atualizações de preparo a serem processadas. Anteriormente, quando cron era configurado para execução a cada minuto, um novo registro relacionado ao consumidor staging.synchronize_entity_period era adicionado a essa tabela a cada minuto.
  • O Adobe Commerce não lança mais um erro SQL ao criar uma alteração de agendamento para um produto enquanto salva outro produto. Anteriormente, o Adobe Commerce exibia este erro: The product with the SKU "%1" couldn't be added to the current update.

Regras do Target

  • Agora as regras do Target funcionam corretamente com diferentes visualizações de loja. Anteriormente, os problemas com o cache da regra de produtos relacionados impedia a exibição de produtos recomendados em implantações de várias lojas.

Imposto

  • Agora as faturas exibem o subtotal correto quando os impostos são configurados e o FPT é ativado.
  • O Commerce agora exibe o valor correto para o valor Regular Price quando uma opção personalizada é selecionada para um produto que tem um valor Special Price quando Price Display Settings está definido para incluir imposto.
  • O imposto agora é incluído, conforme esperado, no preço de envio do fluxo de trabalho de check-out, conforme especificado pelas configurações.
  • O valor de resposta da consulta cart applied_taxes agora inclui todas as regras de imposto individuais conforme esperado. Anteriormente, retornava o valor total do imposto quando várias regras de imposto eram configuradas.
  • O ícone de recolher/expandir da seção Additional Settings durante a criação da regra de imposto agora funciona conforme esperado. Anteriormente, somente o ícone de expansão funcionava. GitHub-37922
  • Agora é possível editar o valor do País e Região da Alíquota do Imposto na página de edição Regra de Imposto, conforme esperado. Anteriormente, as edições feitas nessa página não eram salvas.
  • O valor do imposto na área de estimativa do carrinho agora é atualizado conforme esperado quando o método de envio é atualizado. Anteriormente, a taxa de imposto não era atualizada depois que um comprador mudava de país durante o check-out.
  • O valor tax class de produtos simples recém-criados agora está definido como o valor do produto principal ao criar novas variações de um produto configurável existente no escopo de Exibição de Loja. Anteriormente, esse valor era definido como nenhum. Como resultado, nenhum imposto foi adicionado a esses produtos no carrinho, e os clientes estavam sujeitos a um imposto inferior. GitHub-37180

Teste

  • O teste AdminCreateOrderWithVirtualProductFromDefaultSourceWithBackorders foi aprimorado para eliminar falhas causadas pela conclusão prematura do campo de email.
  • StorefrontVerifyProductAfterPartialReindexOnSeveralWebsitesTest foi refatorado para melhorar a confiabilidade. GitHub-38359
  • Correção do teste AdminSimpleProductwithTextandVisualSwatch introduzindo uma etapa extra que define explicitamente os atributos a serem usados na pesquisa.
  • Erro de digitação no teste de unidade SortbyTest. GitHub-37792
  • Remoção de referências a classes inexistentes em testes de unidade. GitHub-37636
  • O teste AdminCreateOrderWithVirtualProductFromDefaultSourceWithBackorders foi aprimorado para eliminar falhas causadas pela conclusão prematura do campo de email.
  • Refatorado o teste Magento\GraphQl\Catalog\ProductSearchTest::testFilterProductsBySingleCategoryId para manipular a ordem aleatória da categoria em products respostas de consulta.
  • Problemas de desempenho com matrizes grandes em TableNameSniff foram resolvidos.
  • Os testes de integração para a funcionalidade editar registro de presentes não dependem mais das IDs de entidade existentes. Todos os dados necessários agora são obtidos através de luminárias. Anteriormente, \Magento\GiftRegistry\Controller\Index\EditPostTest falhava.
  • CollectionTest::testGetDateRangeFirstPart() agora contabiliza o horário de verão.
  • Corrigido o aviso de descontinuação de StorefrontDeleteItemFromRequisitionListPrintView.

Estrutura da interface

  • O carregador de imagem agora funciona conforme esperado em linhas dinâmicas. Agora as imagens são carregadas corretamente quando enviadas como um array multinacional. GitHub-37957
  • Os estilos de upload de arquivo não são mais duplicados no tema Luma. GitHub-32373
  • Os campos de rua no formulário de endereço de edição da conta do cliente do campo de rua agora são salvos corretamente. Esses campos agora são classificados corretamente pelas chaves fornecidas no formulário. GitHub-37973
  • Comportamento de cursor corrigido no campo de texto Message do Registro de presente.
  • Os valores do Cumulative Layout Shift (CLS) foram aprimorados para páginas de detalhes do produto. (Essa métrica quantifica a estabilidade visual dos layouts de página).GitHub-35410
  • Mensagens de erros aprimoradas que ocorrem durante a renderização do modelo. O Commerce agora exibe uma mensagem informativa. Anteriormente, o Commerce exibia o HTML vazamento quando ocorria um erro de PHP.
  • Os atributos personalizados do cliente (tipo File attached) agora funcionam corretamente com imagens que foram excluídas e depois carregadas. Anteriormente, os atributos personalizados eram carregados, excluídos e carregados novamente não podiam ser salvos da loja.
  • Correção de um erro de sintaxe no arquivo de modelo de calendário. GitHub-37725
  • Os usuários administradores agora podem alterar o logotipo da loja quando o modo de loja única está habilitado. Anteriormente, o Commerce exibia o logotipo padrão de fallback. GitHub-35952
  • Os valores de configuração de mixins não estão mais vazios, e mixins do jQuery agora funcionam independentemente da posição de carregamento. Anteriormente, os mixins do jQuery não eram carregados de forma consistente nos navegadores.
  • As senhas agora são exibidas conforme esperado quando a caixa de seleção Show Password na página de logon está ativa.
  • A Adobe Commerce agora exibe os preços corretos para pacotes de produtos fixos com preços especiais.
  • Atualização do link para a página de listagem de problemas do GitHub no arquivo de modelo de rodapé da loja. GitHub-37214
  • O widget Visualizado recentemente agora exibe o valor correto do imposto em preços de produtos agrupados. GitHub-35881
  • Os usuários administradores agora podem arrastar e soltar as opções personalizáveis criadas para o produto simples, conforme esperado. GitHub-36051
  • A ordem dos tipos de atributos suspensos do produto agora corresponde à ordem das imagens na página do produto configurável. GitHub-37285
  • As mensagens do sistema agora são carregadas mais rapidamente. Somente as mensagens exibidas são carregadas. Anteriormente, todas as mensagens eram carregadas do banco de dados, o que era demorado.
  • A remoção do nó de navegação estrutural pela configuração remove=true por meio do XML de layout não resulta mais na remoção do título da página na página de categoria. Anteriormente, a remoção de navegações estruturais removia dessa maneira o título da página da categoria.
  • O formulário de registro do cliente agora é carregado conforme esperado quando inclui vários atributos selecionados do cliente. Anteriormente, o Adobe Commerce lançou esta exceção: [2023-03-05T05:57:40.032602+00:00] report.CRITICAL: Exception: Deprecated Functionality: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /magento2ee/app/code/Magento/CustomAttributeManagement/Block/Form/Renderer/Multiselect.php on line 53 in /lib/internal/Magento/Framework/App/ErrorHandler.php:62. GitHub-37189
  • As mensagens de boas-vindas que contêm aspas simples agora são renderizadas corretamente na loja sem erros do console. Anteriormente, se uma mensagem de boas-vindas continha uma aspa simples, ela não era carregada durante a renderização da loja. O Adobe Commerce também exibia erros de console.
  • O Adobe Commerce não lança mais um erro quando você tenta alterar rapidamente a exibição entre o histórico de comentários e Retornos na página Ordem do administrador. Anteriormente, o Adobe Commerce exibia este erro genérico: A technical problem with the server created an error.
  • Os usuários administradores com privilégios restritos a um site agora podem atualizar atributos de produto específicos do site definidos para um escopo all stores view.
  • O widget lente de aumento agora é carregado conforme esperado na página do produto.
  • As opções personalizáveis de várias linhas agora são renderizadas adequadamente em documentos PDF de fatura, remessa e aviso de crédito. Anteriormente, o texto multilinha era precedido por uma quebra de página inesperada e, se o texto excedesse a página, o texto era truncado.
  • Os usuários administradores agora podem adicionar um novo endereço de cliente do Administrador quando esse cliente for criado para outro site cuja ID da loja não corresponde à ID do site. Anteriormente, o Adobe Commerce exibia esta mensagem pop-up: Something went wrong. GitHub-36582
  • Os detalhes do Administrador da empresa agora são salvos conforme esperado e os administradores são redirecionados corretamente, quando os emails de Administrador da empresa atribuído contêm uma variável CMS Block URL.
  • As mensagens de erro associadas ao envio de comentários na página de detalhes do pedido agora são mais informativas. Anteriormente, quando um comprador clicava em Submit comment sem alterar o status do pedido ou inserir texto na área de comentário, o Adobe Commerce exibia esta mensagem: The comment is missing. Enter and try again.
  • O ícone de calendário agora é exibido conforme esperado nos campos de intervalo de datas em Administrador Marketing > Cart Price Rules depois que uma data é selecionada para um campo. Anteriormente, após selecionar uma data para um campo, o ícone de calendário não era mais exibido em outros campos e o Adobe Commerce exibia o texto do espaço reservado. GitHub-36499
  • Os formulários de registro do cliente que incluem campos de seleção múltipla agora são carregados com êxito. Anteriormente, este formulário não era carregado quando continha campos de seleção múltipla, e o seguinte erro foi disparado: report.CRITICAL: Exception: Deprecated Functionality: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /magento2ee/app/code/Magento/CustomAttributeManagement/Block/Form/Renderer/Multiselect.php on line 53 in /lib/internal/Magento/Framework/App/ErrorHandler.php:62. GitHub-37189
  • Ao clicar em uma miniatura de vídeo no modo de tela cheia da galeria de produtos, o vídeo é exibido conforme esperado. Anteriormente, o vídeo não era exibido e o console do navegador exibia um erro de JavaScript. GitHub-36456
  • Adição de uma variável à linha de direitos autorais que é atualizada automaticamente a cada ano. GitHub-36776
  • O controle deslizante de imagem na página do produto agora funciona conforme esperado na exibição móvel. Anteriormente, somente a primeira imagem era exibida com sucesso. GitHub-37232

Substituições de URL

  • O atributo crossorigin foi adicionado a linkTypes para elementos HEAD.GitHub-32509
  • As substituições de URL agora são geradas com base na configuração de visibilidade no nível da loja em implantações de várias lojas. Anteriormente, as regravações de URL não eram geradas para lojas fora do padrão quando a visibilidade do produto estava definida como não visível no escopo de loja padrão.
  • Category::getUrl() não busca mais um redirecionamento 301. GitHub-38152
  • A Commerce não gera mais regravações de URL de produto para categorias raiz e para produtos definidos como Not Visible Individually em configurações de várias lojas ao gerar regravações de URL ausentes para lojas personalizadas.
  • As tags de URL canônicas agora refletem alterações conforme esperado depois que a propriedade de chave de URL da categoria foi atualizada. Anteriormente, o URL de categoria obsoleto era usado, o que acionava imediatamente o redirecionamento para o novo URL.
  • As substituições de URL de produto de categoria agora são geradas conforme esperado para todas as exibições de loja quando um produto é adicionado a uma categoria. GitHub-32910
  • O Commerce não lança mais um erro quando você tenta criar um redirecionamento 301/302 para uma URL de produto quando Gerar regravações de categoria/URL de produto está habilitado. Quando um produto é criado e atribuído a uma categoria, são criadas substituições automáticas de URL: uma para o URL direto e outra para o produto por meio do caminho da categoria. Quando uma nova regravação de URL de produto é criada, as correlações entre produto, categoria e loja são verificadas. Esta verificação agora se baseia nas propriedades de entidade correlacionadas (categoria e produto). Anteriormente, essa verificação era executada em regravações de URL pré-existentes.
  • As substituições de URL de categoria agora são geradas para todas as exibições de loja quando uma nova categoria é importada de um arquivo CSV.
  • As configurações de sufixo de URL de produto e sufixo de URL de categoria agora correspondem aos sufixos na tabela url_rewrite. Anteriormente, as condições de corrida ao atualizar configurações de sufixo de URL ocorriam, e os sufixos de URL configurados e a tabela url_rewrite não correspondiam.
  • O Adobe Commerce agora renderiza a árvore de categorias em todos os níveis ao criar regravações de URL de categoria. Anteriormente, apenas os três primeiros níveis de categorias eram exibidos. GitHub-36973
  • Páginas CMS recém-criadas com um nó secundário agora são incluídas na grade de filtro de marketing (Marketing > URL rewrites). Anteriormente, as regravações de URL não eram criadas para essas páginas CMS.
  • As substituições de URL de categoria agora estão presentes no arquivo CSV durante a importação de uma nova categoria.
  • Páginas CMS de várias lojas sem substituições de URL agora são encaminhadas conforme esperado. Anteriormente, as páginas do CMS de várias lojas solicitadas sem substituições de URL eram redirecionadas para a página inicial da loja, mas as páginas do CMS originais não eram direcionadas.

Visual Merchandiser

  • Agora você pode usar o atributo Categories para regras do Visual Merchandiser. Anteriormente, o Adobe Commerce lançou esta exceção: Something went wrong while saving the category.

Estrutura da API da Web

  • O Commerce não exibe mais um aviso Integration not secure no Admin System > Extensions > Integrations quando os campos Callback URL e Identity link URL estão vazios. GitHub-36407
  • Adicionados os atributos de extensão taxes, itemized_taxes e additional_itemized_taxes a Magento\Sales\Api\Data\OrderInterface. Esses atributos permitem salvar impostos aplicados com chamadas REST de Ordem.
  • A API REST de preços de camada agora aceita quantidades decimais. Anteriormente, essa API não permitia quantidades decimais mesmo quando a configuração Use Decimal Quantity estava habilitada.
  • O ponto de extremidade REST V1/orders/{id}/comments não altera mais o status de um pedido ao tentar adicionar um comentário ao status de um pedido pendente. Agora, ele fornece um erro informativo. Anteriormente, esse endpoint alterava o status do pedido ao adicionar um comentário.
  • O ponto de extremidade REST API GET e POST V1/products/attributes não retorna mais o mesmo valor para o atributo is_filterable para as opções Filterable(with results) e Filterable(no results) da opção Use in Layered Navigation. Anteriormente, esse ponto de extremidade retornou o mesmo valor porque a propriedade de atributo is_filterable era do tipo Boolean, o que não permitia definir essa propriedade como Filterable(no results). GitHub-37979
  • O campo media_gallery_entries ausente foi adicionado ao ponto de extremidade REST V1/configurable-products/sku/children. Anteriormente, esta função não tinha o código necessário para armazenar e exibir media_gallery_entries. GitHub-37607
  • O método REST V1/carts/mine/estimate-shipping-methods agora valida todos os níveis de dados do campo de carga e retorna um código HTTP 400 para dados inválidos. Anteriormente, somente o primeiro nível da carga da API era validado e, se os dados inválidos eram retornados em níveis não validados da carga, o Commerce retornava um código de status 500.
  • As operações assíncronas de API REST em massa para atualizar produtos com preços de camada e diferentes conjuntos de atributos foram concluídas com êxito. Anteriormente, os produtos com conjuntos de atributos diferentes não podiam ser atualizados dessa maneira, e o Commerce exibia este erro: The product was unable to be saved. Please try again.
  • O ponto de extremidade POST /V1/products/tier-prices agora retorna uma mensagem de erro mais informativa quando um nome de grupo de clientes inválido é usado durante a criação do preço da camada. Anteriormente, o Adobe Commerce retornava um erro como este: Notice: Undefined index: XXXXX in ~/public_html/vendor/magento/module-catalog/Model/Product/Price/Validation/TierPriceValidator.php on line 474". GitHub-36431
  • Agora você pode executar uma solicitação de API em massa assíncrona autorizada para criar clientes com uma ID de grupo não padrão. Anteriormente, essas solicitações redefiniam a ID do grupo para o valor padrão.
  • Os clientes criados usando a API em massa agora recebem emails de registro do cliente no idioma configurado em seu site atribuído. Anteriormente, todos os emails eram enviados ao local padrão, não ao local do site ao qual o cliente estava atribuído.
  • A chamada POST V1/guest-carts não envia mais pedidos de convidados quando Allow Guest Checkout está desabilitado.
  • Agora você pode abrir um pedido do Administrador com o status Received quando AsyncOrder não está habilitado. Anteriormente, você não podia abrir a página de detalhes do pedido no Administrador quando o status do pedido era alterado por POST V1/orders.
  • O Adobe Commerce agora retorna com êxito o atributo content (código de imagem base64) em GET V1/products/sku/media respostas da API de mídia do produto. O atributo content não apareceu anteriormente na resposta.

Lista de desejos

  • O Commerce agora exibe uma mensagem indicando que um item já foi adicionado a uma lista de desejos quando um comprador tenta adicionar o mesmo item a uma lista de desejos várias vezes. Anteriormente, sob essas condições, a Commerce aumentava a quantidade do produto na lista de desejos.
  • O Adobe Commerce agora adiciona com sucesso produtos com arquivos de opções personalizáveis carregados necessários à lista de desejos. Anteriormente, a Commerce adicionava dois produtos à lista de desejos, não um. GitHub-37437

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.7 usando o Composer.

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