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
NOTE
이 패치는 새 버전이 설치된 다른 버전에 적용할 수 있습니다 Quality Patches Tool 릴리스. 패치가 Adobe Commerce 버전과 호환되는지 확인하려면 magento/quality-patches 최신 버전으로 패키지하고 Quality Patches Tool: 패치 검색 페이지. 패치 ID를 검색 키워드로 사용하여 패치를 찾습니다.

문제

구성 가능한 동일한 제품을 장바구니에 추가하기 위해 GraphQL에서 두 개의 병렬 요청을 수행하면 동일한 제품 SKU를 사용하는 장바구니에 두 개의 개별 항목이 생성되었습니다.

재현 단계:

  1. SKU를 사용하여 구성 가능한 제품 만들기 테스트 및 SKU를 사용하는 간단한 제품 Test-A.

  2. 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"{}}'
    
  3. 동일한 제품을 장바구니에 추가하려면 두 개의 동시 요청을 실행합니다(변경 사항). 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"}}'
    
  4. 장바구니에서 항목 보기(변경 사항) 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}]}}}%

패치 적용

개별 패치를 적용하려면 배포 방법에 따라 다음 링크를 사용합니다.

관련 읽기

에 대해 자세히 알아보기 Quality Patches Tool을(를) 참조하시기 바랍니다.

QPT에서 사용할 수 있는 다른 패치에 대한 정보는 다음을 참조하십시오. Quality Patches Tool: 패치 검색 다음에서 Quality Patches Tool 가이드.

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a