ACP2E-4522: 여러 장바구니 병합 또는 견적 저장 요청이 동시에 실행될 때 quote_coupons 테이블에 간헐적인 중복 키 오류가 발생합니다
ACP2E-4522 패치는 여러 장바구니 병합 또는 견적 저장 요청이 동시에 실행될 때 quote_coupons 테이블에서 간헐적인 중복 키 오류가 발생하는 문제를 해결합니다. 이 패치는 Quality Patches Tool (QPT) 1.1.78이 설치된 경우에 사용할 수 있습니다. 패치 ID는 ACP2E-4522입니다. 이 문제는 Adobe Commerce 2.4.9에서 수정됩니다.
영향을 받는 제품 및 버전
Adobe Commerce 버전에 대한 패치가 만들어졌습니다.
- Adobe Commerce(모든 배포 방법) 2.4.7-p7
Adobe Commerce 버전과 호환:
- Adobe Commerce(모든 배포 방법) 2.4.7 - 2.4.8-p4
magento/quality-patches 패키지를 최신 버전으로 업데이트하고 Quality Patches Tool에서 호환성을 확인합니다. 패치 검색 페이지. 패치 ID를 검색 키워드로 사용하여 패치를 찾습니다.문제
여러 장바구니 병합 또는 견적 저장 요청이 동시에 실행될 때 quote_coupons 테이블에 간헐적인 중복 키 오류가 발생합니다.
재현 단계:
-
Stores > Settings > Configuration > Sales > Multicoupon Settings에서 관리 사이드바 아래에서 주문당 최대 쿠폰 수 = 10을 사용하도록 설정합니다.
-
Marketing > Promotions > Cart Price Rules > Add New Rule에서 장바구니 가격 규칙을 만듭니다.
- Rule Name: TESTCOUPON2026
- Active: Yes; Websites: Main Website; Customer Groups; 적용 가능한 모든 그룹을 선택하십시오.
- Coupon: Specific Coupon; Coupon Code: TESTCOUPON2026.
- Uses per Customer: 비워 둡니다.
- Conditions: 추가된 조건이 없습니다.
- Actions > Percent of product price discount; Discount Amount = 10.
-
GraphQL을 사용하여 수량이 7개 이상인 제품을 장바구니에 추가한 다음 쿠폰을 적용합니다.
-
6개의 동시 병렬 GraphQL mergeCarts 호출 실행:
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 } } }
예상 결과:
GraphQL 병합에서 오류가 반환되지 않습니다.
실제 결과:
mergeCarts GraphQL 돌연변이가 오류를 반환합니다.
로그에서는 여러 병합 또는 견적 저장 요청이 동시에 실행될 때 quote_coupons 테이블(QUOTE_COUPLES_QUOTE_ID_COUPON_CODE)의 중복 키 제약 조건 위반으로 인해 GraphQL 오류가 발생했음을 보여 줍니다.
tail -n 200 var/log/exception.log var/log/debug.log | grep -E "Duplicate entry|QUOTE_COUPONS_QUOTE_ID_COUPON_CODE"
패치 적용
개별 패치를 적용하려면 배포 방법에 따라 다음 링크를 사용합니다.
- Adobe Commerce 또는 Magento Open Source 온-프레미스: Quality Patches Tool 가이드의 Quality Patches Tool > 사용량
- 클라우드 인프라의 Adobe Commerce: Commerce on Cloud Infrastructure 안내서의 업그레이드 및 패치 > 패치 적용.
관련 읽기
Quality Patches Tool에 대한 자세한 내용은 다음을 참조하세요.