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
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:
-
Habilite o número máximo de cupons por pedido = 10 na barra lateral Admin em Stores > Settings > Configuration > Sales > Multicoupon Settings.
-
Criar uma Regra de Preço de Carrinho em Marketing > Promotions > Cart Price Rules > Add New Rule:
- Rule Name: TESTCOUPON2026
- Active: Yes; Websites: Main Website; Customer Groups; Selecione todos os grupos aplicáveis.
- Coupon: Specific Coupon; Coupon Code: TESTCOUPON2026.
- Uses per Customer: deixe em branco.
- Conditions: nenhuma condição adicionada.
- Actions > Percent of product price discount; Discount Amount = 10.
-
Adicione um produto com uma quantidade de pelo menos 7 a um carrinho de convidado usando o GraphQL e aplique o cupom.
-
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:
- Adobe Commerce ou Magento Open Source local: Quality Patches Tool > Uso no guia Quality Patches Tool.
- Adobe Commerce na infraestrutura em nuvem: Atualizações e patches > Aplicar patches no guia do Commerce na infraestrutura em nuvem.
Leitura relacionada
Para saber mais sobre Quality Patches Tool, consulte:
- Quality Patches Tool: uma ferramenta de autoatendimento para patches de qualidade no guia Ferramentas.