GraphQL을 통해 노출된 고객 그룹 이름, 세그먼트 및 프로모션 규칙 정보

이 문서에서는 GraphQL을 통해 고객 그룹 이름, 고객 세그먼트 및 프로모션 규칙 정보가 노출되지 않도록 하는 핫픽스를 제공합니다. 이 문제는 Adobe Commerce 2.4.8-p1에서 수정될 예정입니다.

설명 description

영향을 받는 제품 및 버전

Adobe Commerce 버전에 대한 패치가 만들어졌습니다.

  • Adobe Commerce(모든 배포 방법) 2.4.8

Adobe Commerce 버전과 호환:

  • Adobe Commerce(모든 배포 방법) 2.4.8

문제

Storefront Personalization 드롭인의 경우, 고객 그룹 이름, 세그먼트, 장바구니 및 카탈로그 규칙과 같은 기본 정보를 표시하기 위해 새로운 GraphQL 돌연변이가 도입되었습니다. 그러나 이름에 포함된 경우 오퍼 세부 정보 또는 쿠폰 코드와 같은 중요한 데이터가 노출될 수 있습니다.

재현 단계

사례 I: 카탈로그 규칙

  1. 관리자 사이드바에서 마케팅(으)로 이동 > 카탈로그 가격 규칙 > 새 규칙 추가.

  2. 규칙 조건(예: 제품 속성 또는 범주)을 정의합니다.

  3. 규칙을 저장하고 적용합니다.

  4. 제품이 규칙 조건을 충족하는지 확인합니다.

  5. 다음 GraphQL 쿼리를 실행하여 모든 규칙을 가져옵니다.

    code language-none
    query {
        allCatalogRules {
            name
        }
    }
    
  6. 제품을 쿼리하여 규칙이 적용되는지 확인합니다.

    code language-none
    query {
        products(filter: { sku: { eq: "product-sku" } }) {
            items {
                name
                rules {
                    name
                }
            }
        }
    }
    

사례 II: 장바구니 규칙

  1. 관리자 사이드바에서 마케팅(으)로 이동 > 장바구니 가격 규칙 > 새 규칙 추가.

  2. 최소 장바구니 값 및 고객 그룹과 같은 조건을 설정합니다.

  3. 규칙을 저장하고 적용합니다.

  4. 제품을 장바구니에 추가하여 규칙을 트리거합니다.

  5. GraphQL을 사용하여 모든 장바구니 규칙을 확인합니다.

    code language-none
    query {
        allCartRules {
            name
        }
    }
    
  6. 규칙이 활성 장바구니에 적용되는지 확인:

    code language-none
    query {
        cart(cart_id: "your-cart-id") {
            rules {
                name
            }
        }
    }
    

사례 III: 고객 그룹

  1. 관리자 사이드바에서 고객(으)로 이동 > 고객 그룹.

  2. 예상 그룹이 있는지 확인합니다.

  3. GraphQL 을(를) 사용하여 모든 그룹을 가져옵니다.

    code language-none
    query {
        allCustomerGroups {
            name
        }
    }
    
  4. 고객/게스트 그룹 확인:

    code language-none
    query {
        customerGroup {
            name
        }
    }
    

사례 IV: 고객 세그먼트(Adobe Commerce 전용)

  1. 관리자 사이드바에서 고객(으)로 이동 > 고객 세그먼트 > 세그먼트 추가.

  2. 고객 기반 조건(예: 주문, 장바구니 내용)을 정의합니다.

  3. 적용 가능한 범위 지정: 방문자, 등록됨 또는 둘 다.

  4. 조건이 테스트 고객과 일치하는지 확인합니다.

  5. GraphQL을 사용하여 모든 세그먼트를 확인합니다.

    code language-none
    query {
        allCustomerSegments {
            name
            apply_to
        }
    }
    
  6. 장바구니에 적용된 세그먼트의 유효성을 검사합니다.

    code language-none
    query {
        customerSegments(cartId: "your-cart-id") {
            name
        }
    }
    

예상 결과:

고객 그룹, 세그먼트 및 프로모션 규칙 정보의 이름은 GraphQL을 통해 노출되지 않습니다.

실제 결과:

고객 그룹의 이름, 세그먼트 및 프로모션 규칙 정보는 GraphQL을 통해 노출됩니다.

해결 방법 resolution

Adobe Commerce 버전에 따라 첨부된 패치를 적용합니다.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f