[Somente PaaS]{class="badge informative" title="Aplica-se somente a projetos do Adobe Commerce na nuvem (infraestrutura do PaaS gerenciada pela Adobe) e a projetos locais."}

ACP2E-4522: Erros de chave duplicada intermitentes ocorrem na tabela quote_coupons quando várias solicitações de mesclagem de carrinho ou salvamento de cota são executadas ao mesmo tempo

O patch ACP2E-4522 corrige o problema em que um erro de chave duplicada intermitente ocorre na tabela quote_coupons quando várias solicitações de mesclagem de carrinho ou de salvamento de cota são executadas ao mesmo tempo. Este patch está disponível quando o Quality Patches Tool (QPT) 1.1.78 está instalado. A ID do patch é ACP2E-4522. Observe que esse problema está programado para ser corrigido no Adobe Commerce 2.4.9.

Produtos e versões afetados

O patch foi criado para a versão do Adobe Commerce:

  • Adobe Commerce (todos os métodos de implantação) 2.4.7-p7

Compatível com as versões do Adobe Commerce:

  • Adobe Commerce (todos os métodos de implantação) 2.4.7 - 2.4.8-p4
NOTE
O patch pode se tornar aplicável a outras versões com as novas versões do Quality Patches Tool. Para verificar se o patch é compatível com a sua versão do Adobe Commerce, atualize o pacote magento/quality-patches para a versão mais recente e verifique a compatibilidade na Quality Patches Tool: página Procurar patches. Use a ID do patch como palavra-chave de pesquisa para localizar o patch.

Problema

Ocorre um erro intermitente de chave duplicada na tabela quote_coupons quando várias solicitações de mesclagem de carrinho ou salvamento de cota são executadas ao mesmo tempo.

Etapas a serem reproduzidas:

  1. Habilite o número máximo de cupons por pedido = 10 na barra lateral Admin em Stores > Settings > Configuration > Sales > Multicoupon Settings.

  2. Criar uma Regra de Preço de Carrinho em Marketing > Promotions > Cart Price Rules > ​ Add New Rule:

    1. Rule Name: TESTCOUPON2026
    2. Active: Yes; Websites: Main Website; Customer Groups; Selecione todos os grupos aplicáveis.
    3. Coupon: Specific Coupon; Coupon Code: TESTCOUPON2026.
    4. Uses per Customer: deixe em branco.
    5. Conditions: nenhuma condição adicionada.
    6. Actions > Percent of product price discount; Discount Amount = 10.
  3. Adicione um produto com uma quantidade de pelo menos 7 a um carrinho de convidado usando o GraphQL e aplique o cupom.

  4. Execute seis chamadas de GraphQL mergeCarts paralelas simultâneas:

    code language-none
    mutation {
      mergeCarts(
        source_cart_id: "<GUEST_CART_ID>"
        destination_cart_id: "<DESTINATION_CART_ID>"
      ) {
        id
        items { id product { sku } }
        applied_coupons { code }
      }
    }
    

Resultados esperados:

Nenhum erro é retornado pela mesclagem do GraphQL.

Resultados reais:

A mutação mergeCarts GraphQL retorna um erro.
Os logs mostram que a falha do GraphQL é causada por uma violação de restrição de chave duplicada na tabela quote_coupons (QUOTE_COUPONS_QUOTE_ID_COUPON_CODE) quando várias solicitações de mesclagem ou salvamento de cotação são executadas simultaneamente.

tail -n 200 var/log/exception.log var/log/debug.log | grep -E "Duplicate entry|QUOTE_COUPONS_QUOTE_ID_COUPON_CODE"

Aplicar o patch

Para aplicar patches individuais, use os links a seguir, dependendo do método de implantação:

Leitura relacionada

Para saber mais sobre Quality Patches Tool, consulte:

recommendation-more-help
c2d96e17-5179-455c-ad3a-e1697bb4e8c3