ACSD-53148: 동일한 구성 가능한 제품 추가를 위한 GraphQL의 두 개의 병렬 요청
ACSD-53148 패치는 구성 가능한 동일한 제품을 장바구니에 추가하기 위해 GraphQL에서 두 개의 병렬 요청이 발생하면 동일한 제품 SKU를 사용하는 장바구니에 두 개의 개별 항목이 발생하는 문제를 해결합니다. 이 패치는 Quality Patches Tool (QPT) 1.1.37이 설치되어 있을 때 사용할 수 있습니다. 패치 ID는 ACSD-53148입니다. 이 문제는 Adobe Commerce 2.4.7에서 수정됩니다.
영향을 받는 제품 및 버전
Adobe Commerce 버전에 대한 패치가 만들어졌습니다.
- Adobe Commerce(모든 배포 방법) 2.4.5-p2
Adobe Commerce 버전과 호환:
- Adobe Commerce(모든 배포 방법) 2.4.4 - 2.4.6-p2
magento/quality-patches
패키지를 최신 버전으로 업데이트하고 Quality Patches Tool에서 호환성을 확인합니다. 패치 검색 페이지. 패치 ID를 검색 키워드로 사용하여 패치를 찾습니다.문제
구성 가능한 동일한 제품을 장바구니에 추가하기 위해 GraphQL에서 두 개의 병렬 요청을 수행하면 동일한 제품 SKU를 사용하는 장바구니에 두 개의 개별 항목이 생성되었습니다.
재현 단계:
-
SKU Test 로 구성 가능한 제품을 만들고 SKU Test-A 로 간단한 제품을 만듭니다.
-
GraphQL을 통해 새 빈 장바구니를 만듭니다(고유한 URL (으)로 위치 변경).
code language-graphql curl --location 'http://mag.local/graphql' \ --header 'Store: default' \ --header 'Content-Type: application/json' \ --data '{"query":"mutation{\n createEmptyCart\n}","variables"{}}'
-
두 개의 동시 요청을 실행하여 장바구니에 동일한 제품을 추가합니다(두 요청의 cartID 및 위치 변경).
code language-graphql curl --location 'http://mag.local/graphql' --header 'Store: default' --header 'Content-Type: application/json' --data '{"query":"mutation($cartId: String!, $preSku: String!, $preParentSku: String!) {\r\n addConfigurableProductsToCart(\r\n input: {\r\n cart_id: $cartId\r\n cart_items: [\r\n {\r\n parent_sku: $preParentSku\r\n data: {\r\n quantity: 1\r\n sku: $preSku\r\n }\r\n }\r\n ]\r\n }\r\n ) {\r\n cart {\r\n items {\r\n id\r\n product {\r\n name\r\n sku\r\n }\r\n quantity\r\n \r\n prices {\r\n price {\r\n value\r\n currency\r\n }\r\n }\r\n ... on ConfigurableCartItem {\r\n configurable_options {\r\n option_label\r\n value_label\r\n }\r\n }\r\n }\r\n total_quantity\r\n prices {\r\n grand_total {\r\n value\r\n currency\r\n }\r\n discounts {\r\n amount {\r\n value\r\n currency\r\n }\r\n label\r\n }\r\n subtotal_excluding_tax {\r\n value\r\n currency\r\n }\r\n } \r\n }\r\n }\r\n}","variables":{"cartId":"VV85vRfmCrRm0aKLKkNDrXH2S5y7sSpf","preParentSku":"Test","preSku":"Test-A"}}' & curl --location 'http://mag.local/graphql' --header 'Store: default' --header 'Content-Type: application/json' --data '{"query":"mutation($cartId: String!, $preSku: String!, $preParentSku: String!) {\r\n addConfigurableProductsToCart(\r\n input: {\r\n cart_id: $cartId\r\n cart_items: [\r\n {\r\n parent_sku: $preParentSku\r\n data: {\r\n quantity: 1\r\n sku: $preSku\r\n }\r\n }\r\n ]\r\n }\r\n ) {\r\n cart {\r\n items {\r\n id\r\n product {\r\n name\r\n sku\r\n }\r\n quantity\r\n \r\n prices {\r\n price {\r\n value\r\n currency\r\n }\r\n }\r\n ... on ConfigurableCartItem {\r\n configurable_options {\r\n option_label\r\n value_label\r\n }\r\n }\r\n }\r\n total_quantity\r\n prices {\r\n grand_total {\r\n value\r\n currency\r\n }\r\n discounts {\r\n amount {\r\n value\r\n currency\r\n }\r\n label\r\n }\r\n subtotal_excluding_tax {\r\n value\r\n currency\r\n }\r\n } \r\n }\r\n }\r\n}","variables":{"cartId":"VV85vRfmCrRm0aKLKkNDrXH2S5y7sSpf","preParentSku":"Test","preSku":"Test-A"}}'
-
장바구니를 가져와서 항목을 확인합니다(cartId 및 위치 변경).
code language-graphql curl --location 'http://mag.local/graphql' \ --header 'Store: default' \ --header 'Content-Type: application/json' \ --data '{"query":"{\n cart(cart_id: \"VV85vRfmCrRm0aKLKkNDrXH2S5y7sSpf\") {\n items {\n id\n product {\n name\n sku\n }\n quantity\n }\n\n }\n}\n","variables":{}}'
예상 결과:
항목이 qty = 2로 한 번 나열되었습니다.
{"data":{"cart":{"items":[{"id":"5","product":{"name":"config1","sku":"config1"},"quantity":2}]}}}%
실제 결과:
항목이 qty = 1인 상태로 두 번 나열되었습니다.
{"data":{"cart":{"items":[{"id":"1","product":
{"name":"config1","sku":"config1"},"quantity":1},
{"id":"3","product":{"name":"config1","sku":"config1"},"quantity":1}]}}}%
패치 적용
개별 패치를 적용하려면 배포 방법에 따라 다음 링크를 사용합니다.
- Adobe Commerce 또는 Magento Open Source 온-프레미스: Quality Patches Tool 가이드의 Quality Patches Tool > 사용량
- 클라우드 인프라의 Adobe Commerce: Commerce on Cloud Infrastructure 안내서의 업그레이드 및 패치 > 패치 적용.
관련 읽기
Quality Patches Tool에 대한 자세한 내용은 다음을 참조하세요.
- Quality Patches Tool 릴리스됨: 지원 기술 자료에서 품질 패치를 자체 제공하는 새로운 도구.
- 지원 기술 자료에서 Quality Patches Tool을(를) 사용하여 Adobe Commerce 문제에 대한 패치를 사용할 수 있는지 확인합니다.
QPT에서 사용할 수 있는 다른 패치에 대한 정보는 Quality Patches Tool 안내서에서 Quality Patches Tool: 패치 검색을 참조하세요.