추가적인 보안 개선 사항
이 릴리스의 보안 개선 사항은 최신 보안 모범 사례를 통해 규정 준수를 향상시킵니다.
-
생성되지 않은 캐시 키의 동작을 변경합니다:
- 이제 블록에 대해 생성되지 않은 캐시 키에는 자동으로 생성되는 키의 접두사와 다른 접두사가 포함됩니다. (생성되지 않은 캐시 키는 템플릿 지시문 구문 또는
setCacheKey
또는setData
메서드를 통해 설정된 키입니다.) - 이제 블록의 생성되지 않은 캐시 키에는 문자, 숫자, 하이픈(-) 및 밑줄(_)만 사용해야 합니다.
- 이제 블록에 대해 생성되지 않은 캐시 키에는 자동으로 생성되는 키의 접두사와 다른 접두사가 포함됩니다. (생성되지 않은 캐시 키는 템플릿 지시문 구문 또는
-
자동 생성된 쿠폰 코드 수에 대한 제한. 이제 Commerce에서 자동으로 생성되는 쿠폰 코드 수를 제한합니다. 기본 최대값은 250,000입니다. 판매자는 새 Code Quantity Limit 구성 옵션(Stores > Settings:Configuration > Customers > Promotions)을 사용하여 쿠폰을 많이 사용하여 시스템을 압도하지 않도록 할 수 있습니다.
-
기본 관리자 URL 생성 프로세스의 최적화. 기본 관리 URL의 생성은 생성된 URL의 예측 가능성을 낮추는 무작위성의 증가에 최적화되었습니다.
-
SRI(Subresource Integrity) 지원이 추가됨 결제 페이지에서 스크립트 무결성을 확인하기 위한 PCI 4.0 요구 사항을 준수합니다. SRI(Subresource Integrity) 지원은 로컬 파일 시스템에 있는 모든 JavaScript 자산에 무결성 해시를 제공합니다. 기본 SRI 기능은 관리자 및 상점 영역의 결제 페이지에서만 구현됩니다. 그러나 판매자는 기본 구성을 다른 페이지로 확장할 수 있습니다. Commerce PHP 개발자 안내서 의 하위 리소스 무결성을 참조하십시오.
-
CSP(콘텐츠 보안 정책)에 대한 변경 사항—PCI 4.0 요구 사항을 준수하도록 Adobe Commerce CSP(콘텐츠 보안 정책)에 대한 구성 업데이트 및 개선 사항입니다. 자세한 내용은 Commerce PHP 개발자 안내서 의 콘텐츠 보안 정책을 참조하십시오.
-
Commerce 관리 및 상점 영역의 결제 페이지에 대한 기본 CSP 구성은 이제
restrict
모드입니다. 다른 모든 페이지의 경우 기본 구성은report-only
모드입니다. 2.4.7 이전 릴리스에서 CSP는 모든 페이지에 대해report-only
모드로 구성되었습니다. -
CSP에서 인라인 스크립트를 실행할 수 있도록 임시 공급자를 추가했습니다. nonce 공급자는 각 요청에 대해 고유한 nonce 문자열을 쉽게 생성할 수 있습니다. 그러면 문자열이 CSP 헤더에 연결됩니다.
-
관리자의 주문 만들기 페이지와 상점 첫 화면의 체크아웃 페이지에 대한 CSP 위반을 보고하도록 사용자 지정 URI를 구성하는 옵션이 추가되었습니다. 관리자 또는 URI를
config.xml
파일에 추가하여 구성을 추가할 수 있습니다.NOTE
CSP 구성을restrict
모드로 업데이트하면 Admin 및 Storefront의 결제 페이지에서 기존 인라인 스크립트가 차단될 수 있으며, 이로 인해 페이지가 로드될 때 다음 브라우저 오류가 발생합니다.Refused to execute inline script because it violates the following Content Security Policy directive: "script-src
. 필수 스크립트를 허용하도록 화이트리스트 구성을 업데이트하여 이러한 오류를 수정합니다. Commerce PHP 개발자 안내서 의 문제 해결을 참조하십시오.
-
-
새 전체 페이지 캐시 구성 설정을 사용하면 HTTP
{BASE-URL}/page_cache/block/esi
끝점과 관련된 위험을 완화할 수 있습니다. 이 끝점은 Commerce 레이아웃 핸들과 블록 구조에서 제한되지 않고 동적으로 로드된 콘텐츠 조각을 지원합니다. 새 Handles params size 구성 설정은 API당 허용되는 최대 핸들 수를 결정하는 이 끝점의handles
매개 변수의 값을 설정합니다. 이 속성의 기본값은 100입니다. 판매자는 관리자(Stores > Settings:Configuration > System > Full Page Cache > Handles params size)에서 이 값을 변경할 수 있습니다. Vannish를 사용하도록 Commerce 응용 프로그램 구성을 참조하십시오. -
REST 및 GraphQL API를 통해 전송되는 결제 정보에 대한 기본 속도 제한. 이제 판매자는 REST 및 GraphQL을 사용하여 전송되는 결제 정보에 대해 속도 제한을 구성할 수 있습니다. 이렇게 추가된 보호 계층은 카드 공격의 예방을 지원하고 한 번에 여러 신용카드 번호를 테스트하는 카드 공격의 양을 잠재적으로 줄입니다. 기존 REST 끝점의 기본 동작이 변경된 것입니다. 속도 제한을 참조하세요.
-
isEmailAvailable GraphQL 쿼리와 (V1/customers/isEmailAvailable) REST 끝점의 기본 동작이 변경되었습니다. 기본적으로 이제 API는 항상
true
을(를) 반환합니다. 판매자는 관리자의 게스트 체크아웃 로그인 활성화 옵션을yes
(으)로 설정하여 원래 동작을 활성화할 수 있지만, 이렇게 하면 인증되지 않은 사용자에게 고객 정보가 노출될 수 있습니다.
플랫폼 개선 사항
이 릴리스에 대한 플랫폼 업그레이드는 최신 보안 모범 사례를 통해 규정 준수를 개선합니다.
Adobe Commerce 2.4.7에는 다음 플랫폼 업그레이드가 포함됩니다.
- PHP 8.3 호환성. 이 릴리스는 PHP 8.3에 대한 지원을 소개합니다. Commerce은 이제 PHP 8.3과 8.2를 모두 지원합니다. PHP 8.2는 2025년 12월 서비스 종료(EOS) 날짜까지 지원됩니다. 2025년 12월 이후에는 2.4.7 배포를 실행하는 모든 판매자가 PHP 8.3으로 마이그레이션해야 합니다.
Adobe Commerce 2.4.7은 업그레이드 목적으로만 PHP 8.1과 호환됩니다. PHP 8.1은 지원되지 않으며 권장되지 않습니다. Adobe Commerce 2.4.7 코어 코드, 모든 번들 확장, 모든 Adobe 소유 확장 및 SaaS 서비스는 PHP 8.3과 호환됩니다.
-
RabbitMQ 3.13 지원. 이 릴리스는 RabbitMQ 3.13의 최신 버전과 호환됩니다. RabbitMQ 3.11 및 3.12와의 호환성은 2024년 8월 및 2024년 12월까지 각각 지원되지만, Adobe에서는 RabbitMQ 3.13에서만 Adobe Commerce 2.4.7을 사용하는 것이 좋습니다.
-
작성기 2.7.x. Composer 2.2.x와의 호환성이 유지됩니다.
-
Varnish 캐시 7.4 지원. 이 릴리스는 최신 버전의 Varnish Cache 7.4와 호환됩니다. 6.0.x 및 7.2.x 버전과의 호환성은 유지되지만, Adobe Commerce 2.4.7을 Varnish Cache 버전 7.4 또는 버전 6.0 LTS와만 사용하는 것이 좋습니다.
-
Elasticsearch 8.11 호환성
-
Opensearch 2.12 및 OpenSearch 1.3 지원
-
Redis 7.2
-
extjs
라이브러리가jsTree
의 최신 버전으로 대체되었습니다. -
jquery/fileUpload
라이브러리가 제거되었습니다.
Adobe Commerce 핵심 코드의 모든 JavaScript 라이브러리 및 NPM 종속성이 사용 가능한 최신 버전으로 업데이트되었습니다. 모든 Laminas 라이브러리 종속성이 PHP 8.3과 호환되는 최신 버전으로 업데이트되었습니다.
추가 업그레이드
-
주문당 여러 개의 쿠폰 지원. 판매자는 이제 새로운 Maximum number of coupons per order 구성 옵션을 사용하여 주문당 적용할 수 있는 최대 쿠폰 수를 구성할 수 있습니다. 이 값은 기본적으로 1로 설정됩니다. 이제 REST 또는 GraphQL을 사용하여 장바구니에 여러 쿠폰을 적용할 수 있습니다.
-
UPS에서 API 보안 모델을(를) 업데이트하기 위해 Commerce UPS XML API 게이트웨이가 새 Commerce UPS REST API(으)로 마이그레이션되었습니다. (UPS는 모든 API에 대해 OAuth 2.0 보안 모델(전달자 토큰)을 구현하고 있습니다.) 이전의 모든 Commerce UPS XML API는 Adobe Commerce 2.4.7 코드 베이스에서 제거되었습니다.
-
FedEx와 Adobe Commerce 통합이(가) 레거시 FedEx WSDL 웹 서비스에서 최신 FedEx RESTful API로 마이그레이션되었습니다. FedEx 웹 서비스 추적, 주소 유효성 검사 및 우편 번호 유효성 검사 WSDLS는 2024년 5월에 중단됩니다.
-
새로운 USPS Ground Advantage 배송 방법에 대한 지원이 추가되었습니다. 이는 2023년 7월에 출시된 USPS의 새로운 배송 방식인 USPS Ground Advantage와의 기본 통합입니다. 이 새로운 통합은 배송 요금을 검색하고 USPS 배송 서비스를 통해 배달 및 반품을 예약하는 데 사용할 수 있습니다. USPS Ground Advantage 배송 방법은 USPS Ground Advantage 배송 방법이 출시되었을 때 폐기되었던 다음 배송 방법을 대체합니다.
- USPS 소매 기반
- 퍼스트 클래스 패키지 서비스
- 지면 택배 선택
-
Temando 배송 모듈을 핵심 Commerce 코드 베이스에서 제거했습니다. 이 기능은 Adobe Commerce 2.4.4에서 더 이상 사용되지 않습니다.
향상된 성능 및 확장성
Commerce 2.4.7에는 다음과 같은 Commerce 성능 및 확장성 개선 사항이 포함되어 있습니다.
-
이제 엔터프라이즈 가맹점은 장바구니 및 체크아웃 작업의 성능 저하 없이 Adobe Commerce에서 최대 백만 개의 활성 쿠폰 기반 장바구니 가격 규칙 을 구성할 수 있습니다.
-
향상된 인덱서 관리. 새
indexer:set-status
명령은 인덱서 상태의 동적 관리를 지원합니다. 관리자 사용자는 이 명령을 사용하여 인덱서 상태를suspended
,invalid
또는valid
(으)로 변경할 수 있습니다. 이 기능은 시스템의 cron 작업에 의해 인덱서가 자동으로 트리거되는 시기를 제어할 수 있도록 하여 제품 가져오기 또는 업데이트와 같은 대규모 작업 동안 시스템 성능을 관리하는 데 특히 유용합니다. 인덱서 관리를 참조하세요. -
옵션이 많은 복잡한 제품에 대한 제품 목록 페이지. 100개 이상의 옵션이 있는 복잡한 제품을 포함하는 제품 목록 페이지의 로드 시간이 개선되었습니다. 제품을 카테고리별로 나열하기 위한 GraphQL 요청의 성능도 향상되었습니다.
-
이제 REST API 가져오기 에 대해 JSON 형식이 지원됩니다. 판매자는 이제 분당 최대 100,000개의 레코드를 JSON 형식으로 Adobe Commerce에 가져올 수 있습니다.
-
판매 규칙 성능 개선. 많은(약 100,000개) 활성 영업 규칙을 사용하여 엔터프라이즈 배포 성능을 개선했습니다. 프로모션을 많이 구현하는 엔터프라이즈 배포는 많은 활성 장바구니 규칙을 배포하는 경우가 많습니다. Commerce 2.4.7을 실행하는 이러한 유형의 엔터프라이즈 배포에서는 체크아웃 작업 중 구성된 장바구니 가격 규칙 수와 관련된 성능 저하가 나타나지 않습니다.
-
많은 스토어가 있는 배포에 대한 스토어 수준 구성의 저장 작업 속도 향상. 저장소가 500개를 초과하는 배포에 구성 설정을 저장하는 것은 시간이 많이 걸릴 수 있습니다. 새 비동기 구성 모듈을 사용하면 소비자가 메시지 큐에서 저장 작업을 처리하는 크론 작업을 실행하여 비동기 구성 저장 작업을 수행할 수 있습니다. AsyncConfig는 기본적으로 비활성화되어 있습니다.
-
대규모 구성에 대한 구성 캐시를 더 빠르게 생성. 이제 구성 캐시가 사용되면
bin/magento cache:clean config
명령이 구성 캐시를 미리 준비합니다. 따라서 대규모 구성에 대한 구성 캐시를 생성하는 데 필요한 가동 중지 시간이 줄어듭니다. 구성 저장 작업은 캐시에 데이터를 쓰기 전에 더 이상config_scopes
캐시를 정리하지 않으므로 구성 데이터를 쓰는 동안 다른 요청이 잠기는 시간도 줄어듭니다.
GraphQL 애플리케이션 서버
GraphQL Application Server을(를) 사용하면 Adobe Commerce에서 Commerce GraphQL API 요청 중 상태를 유지할 수 있으며 부트스트래핑이 필요하지 않으므로 모든 GraphQL API에 대해 높은 처리량과 낮은 대기 시간 및 효율적인 리소스 사용이 가능합니다. 프로세스 간에 애플리케이션 상태를 공유하면 GraphQL API 요청의 효율성이 크게 향상되고 GraphQL API 응답이 평균 30% 빨라집니다.
GraphQL Application Server는 Adobe Commerce에만 사용할 수 있습니다. Magento Open Source에서는 사용할 수 없습니다. Pro 프로젝트에서 Adobe Commerce Application Server를 사용하려면 GraphQL 지원 제출 티켓을 제출해야 합니다.
Adobe Commerce 확장 메타패키지
이 릴리스에서는 이 코어 릴리스와 함께 선택 Adobe Commerce 확장 기능을 자동으로 번들로 제공하는 Adobe Commerce 확장 메타패키지 v2.0.0이 도입되었습니다. composer update
을(를) 실행할 때 이 메타패키지에 포함된 이러한 확장 버전이 설치되어 최신 코어 릴리스로 업그레이드할 때 이러한 확장 업그레이드 프로세스를 간소화합니다. 이러한 확장은 독립적인 릴리스 일정을 유지합니다.
Adobe Commerce 2.4.7용 Adobe Commerce 확장 메타패키지에는 다음 확장이 포함되어 있습니다.
이 확장 메타페이지의 향후 버전에는 추가 확장이 포함될 수 있습니다.
Adobe Commerce webhooks
Commerce webhooks(v1.2.0 )를 사용하면 개발자는 Adobe Commerce 이벤트가 트리거될 때 외부 시스템에 대한 호출을 실행하도록 동기 로직을 구성할 수 있습니다. Commerce에서 타사 끝점을 사용하여 주문 합계, 세금 또는 지불과 같은 값을 즉시 계산하거나 유효성을 확인한 다음 결과를 Adobe Commerce에 다시 써야 하는 경우 동기 호출이 필요합니다.
이제 Commerce webhooks가 기본적으로 설치됩니다. Adobe Commerce Webhooks 개요를 참조하세요.
Adobe Stock
이제 Adobe Stock 패키지(adobe-stock-integration
)가 더 빈번한 업데이트를 지원하기 위해 Commerce 확장 메타 패키지(extensions-metapackage
)에 패키지됩니다.
B2B
Braintree
-
Vaulted PayPal및 Pay Later 변경 사항—이전에 PayPal 계정을 저장/저장한 로그인 고객은 다음 방법으로 결제할 수 있습니다.
- Pay Now(PayPal 계정에 로그인할 필요 없이 사용자가 기본 카드로 결제할 수 있음)
- 다른 자금 조달 소스로 결제
- 다른 계정으로 결제
- PayPal Pay Later 또는 PayPal Credit 단추
-
Google Pay 에 대한 3DS 지원 - 토큰화되지 않은 Google Pay개의 카드에 대해 3DS 확인 지원이 포함되었습니다. 자세한 내용은 Braintree 설명서를 참조하세요.
-
Vault Apple Pay Payments - 로그인한 고객이 향후 거래에 사용할 수 있도록 Commerce 스토어 계정에 Apple Pay 결제를 저장/저장할 수 있습니다. 이렇게 하면 체크아웃 단계 수가 줄어들고 재방문 고객이 더 빠른 체크아웃 경험을 할 수 있습니다.
-
Vault Google Pay Payments - 로그인한 고객이 향후 거래에 사용할 수 있도록 Commerce 스토어 계정에 Google Pay 결제를 저장/저장할 수 있습니다. 이렇게 하면 체크아웃 단계 수가 줄어들고 재방문 고객이 더 빠른 체크아웃 경험을 할 수 있습니다.
-
Vault Venmo Payments - 로그인한 고객이 향후 트랜잭션에 사용할 Venmo 계정을 Commerce 스토어 계정에 자격 증명 모음/저장할 수 있습니다. 이렇게 하면 체크아웃 단계 수가 줄어들고 재방문 고객이 더 빠른 체크아웃 경험을 할 수 있습니다.
-
Vault ACH Payments - 로그인한 고객이 향후 거래에 사용할 Commerce 스토어 계정에 ACH 결제를 저장/저장할 수 있습니다. 이렇게 하면 체크아웃 단계 수가 줄어들고 재방문 고객이 더 빠른 체크아웃 경험을 할 수 있습니다.
-
체크아웃 상단에 있는 Express Payment개 버튼—더 빠른 체크아웃 환경을 제공하기 위해 체크아웃 시작 시 Express Payment개 옵션을 도입했습니다. 이제 고객은 PayPal, PayPal Pay Later, Apple Pay 및 Google Pay Express 결제까지 결제할 수 있습니다.
-
관리자 구성 내의 Braintree릴리스 노트 및 지원 링크 - 이제 판매자가 Commerce 관리에서 Braintree 지원 및 릴리스 노트를 온라인으로 직접 연결할 수 있습니다.
-
Venmo 을(를) 제외한 모든 Braintree 결제 방법에 대해 GraphQL 지원—더 많은 구성이 GraphQL API에 노출됩니다. 이는 Headless 애플리케이션에 특히 유용합니다.
-
Vaulting계정 영역의 결제—로그인한 고객은 이제 고객 계정 영역에서 새 신용/직불 카드 및 PayPal 계정을 저장/저장할 수 있습니다. 이전에는 고객이 체크아웃에서 트랜잭션을 완료할 때 나중에 사용하기 위해 결제를 저장할 때만 저장/저장할 수 있었지만, 이제 새 트랜잭션을 만들 필요 없이 새 신용/직불 카드 및 PayPal 계정을 저장할 수 있습니다.
-
무마찰 거래 - 무마찰 거래는 온라인 신용/직불 카드 거래를 완료하기 위한 고객 클릭/단계 수를 줄여 결제 프로세스를 가속화합니다. 이전에는(3DS가 활성화된 경우) 모든 고객이 3DS에 도전했습니다. 새로운 마찰 없는 거래 기능을 통해 고객은 은행에서 요청할 때만 3DS에 대한 도전을 받게 됩니다. 이렇게 하면 장바구니 포기가 줄어들고 전환율이 증가하며 더 많은 매출을 올릴 수 있습니다.
-
웹 후크 분쟁 - 고객이 Braintree에서 거래에 이의를 제기하면 이제 분쟁 상태가 Commerce에 전달됩니다. Sales > Order 그리드에서 검색하고 각 순서에 첨부할 수 있습니다.
Adobe IMS와 Commerce 통합
이제 Adobe IMS 통합 패키지(adobe-commerce/adobe-ims-metapackage
)가 더 빈번한 업데이트를 지원하기 위해 Commerce 확장 메타 패키지(extensions-metapackage
)에 패키지화되었습니다.
GraphQL
Commerce 2.4.7에는 향상된 GraphQL 캐싱 기능, 사용자 지정 특성에 대한 GraphQL 스키마 지원, headless 주문 취소 지원 및 향상된 resolver 캐싱이 포함되어 있습니다.
-
보다 유연한 장바구니 관리. 이제
clearCart
돌연변이로 인해 지정된 장바구니의 콘텐츠가 한 번의 작업으로 지워집니다. 더 이상 사용되지 않는clearCustomerCart
돌연변이를 대체합니다. -
장바구니 돌연변이 만들기의 개선 사항. 더 이상 사용되지 않는
createEmptyCart
돌연변이를 대체하기 위해createGuestCart
돌연변이가 추가되었습니다. 이전에는createEmptyCart
을(를) 사용한 경우 장바구니가 손님 대상인지 또는 로그인한 고객 대상인지 확인할 수 없었습니다. -
주문 항목에 제품 이미지가 포함되어 있습니다.
OrderItemInterface
은(는) 제품 이미지를 노출하므로 이미지를 주문한 제품과 연결하여 보다 효율적으로 로드할 수 있습니다. GitHub-32369 -
확인자 캐싱에 대한 지원이 확장되었습니다. 이제 다음 GraphQL 쿼리 확인자를 GraphQL Resolver 결과 캐시에서 캐시할 수 있으므로 POST 요청으로 쿼리를 제출할 때 성능이 향상됩니다.
Magento\CustomerGraphQl\Model\Resolver\Customer::resolve
Magento\CustomerGraphQl\Model\Resolver\CustomerAddress::resolve
Magento\CustomerGraphQl\Model\Resolver\IsSubscribed::resolve
Magento\CatalogGraphQl\Model\Resolver\Product\MediaGallery::resolve
-
주문 취소 지원. cancelOrder 돌연변이를 사용하면 고객이 주문을 취소하고 해당 식별자와 취소 이유를 전달할 수 있습니다.
storeConfig
의 새order_cancellation_enabled
및order_cancellation_reasons.description
응답 필드
쿼리는 사용자가 시작한 주문 취소 요청을 지원합니다. 스토어의 주문 취소 구성 쿼리를 참조하세요.
-
사용자 지정 특성에 대한 지원이 향상되었습니다. 모든 속성 유형을 지원하도록 API 데이터를 보강하여 GraphQL 사용자 지정 속성 지원이 향상되었습니다. 이제 GraphQL EAV 특성 스키마는 관리에서 고객 특성 및 고객 주소 개체를 확장하고 GraphQL을 사용하여 검색할 수 있도록 지원합니다. 향상된 특정 영역:
- 고객 및 고객 주소와 같은 특정 영역에 대한 사용자 지정 특성 지원 확장/추가
- 사용자 지정 특성에 대한 캐싱이 추가되었습니다.
- 제품에 대한 기존 사용자 정의 속성 지원 개선
-
향상된 GraphQL 캐싱 기능으로 페이지 로드 속도가 향상되었습니다. 이러한 쿼리에 캐싱 기능이 추가되어 대부분의 PWA 페이지에서 페이지 로드 시간이 빨라집니다.
-
GraphQL 파서 성능이 향상되었습니다. 요청당 구문 분석 메서드가 호출되는 횟수를 줄여 GraphQL 파서 성능이 향상되었습니다. 이제 한 번 호출됩니다. 이전에는 파서가 적어도 세 번 호출되었습니다.
기존 돌연변이에 대한 새 필드
-
storeConfig 및 availableStores 쿼리에
quickorder_active
필드를 추가했습니다. 이 필드는 빠른 주문 기능이 활성화되었는지 여부를 나타냅니다. -
setBillingAddressOnCart
및setShippingAddressesOnCart
돌연변이에 다음 필드를 추가했습니다.fax
middlename
prefix
suffix
새로운 쿼리 및 변형
attributeForms
쿼리attributesList
쿼리guestOrder
쿼리guestOrderByToken
쿼리recaptchaFormConfig
쿼리cancelOrder
돌연변이customAttributeMetadataV2
쿼리applyCouponsToCart
돌연변이clearCart
돌연변이confirmEmail
돌연변이createGuestCart
돌연변이estimateShippingMethods
돌연변이estimateTotals
돌연변이removeCouponsFromCart
돌연변이
더 이상 사용되지 않는 쿼리 및 돌연변이
clearCustomerCart
돌연변이createEmptyCart
돌연변이attributesMetadata
쿼리customAttributeMetadata
쿼리
Inventory management
Inventory management(v1.2.7)는 제품 인벤토리를 관리하는 도구를 제공합니다. 커뮤니티에 의해 개발된 이 기능은 Adobe Commerce 및 Magento Open Source 코어 코드와 함께 번들로 제공됩니다.
결제
-
Venmo를 제외한 모든 결제 방법에 대한 핵심 작업에 GraphQL 지원이 추가되었습니다. 결제 서비스의 새 GraphQL 끝점은 체크아웃에 설명되어 있습니다.
-
벤모를 제외한 모든 결제수단에 대해 신용카드 비우기가 강화됐다. 이제 구매자는 ACH 결제를 보관하거나 저장하고 계정 페이지에서 이를 보거나 삭제할 수 있습니다. 판매자는 관리자의 ACH 보관된 결제를 활성화하고 비활성화할 수 있습니다.
-
이제 체크아웃 워크플로우에는 PayPal, Google Pay 및 Apple Pay Express 단추를 제공하는 신속 결제 섹션이 포함됩니다.
결제 옵션에서 지원되는 결제 방법을 소개합니다.
PWA Studio
PWA Studio v14.0은 Adobe Commerce 2.4.7과 호환됩니다. 여기에는 액세스 가능성을 개선하기 위한 여러 개선 사항이 포함되어 있습니다. 버그 수정에 대한 자세한 내용은 PWA Studio 릴리스를 참조하십시오. PWA Studio 버전 및 호환 가능한 Adobe Commerce 핵심 버전 목록은 버전 호환성을 참조하십시오.
웹 API 프레임워크
장바구니당 여러 쿠폰을 사용하여 작업
새 REST 엔드포인트는 장바구니와 연결된 여러 쿠폰을 보고, 추가하고, 삭제할 수 있도록 지원합니다.
V1
대신 V2
문자열이 포함되어 있습니다. 예: GET /rest/default/V2/carts/{cartId}/coupons
. Commerce 판매자의 경우 이러한 끝점은 V1
버전의 끝점을 대체하기 위한 것입니다. 이러한 끝점은 Adobe Commerce에서만 사용할 수 있습니다.장바구니와 연결된 모든 쿠폰 코드 반환:
GET /rest/{store_code}/V2/carts/{cartId}/coupons
GET /rest/{store_code}/V2/carts/mine/coupons
장바구니에 쿠폰 코드 추가:
POST /rest/{store_code}/V2/carts/{cartId}/coupons/{couponCode}
POST /rest/{store_code}/V2/carts/mine/coupons/{couponCode}
장바구니에서 쿠폰 코드 바꾸기:
PUT /rest/{store_code}/V2/carts/{cartId}/coupons
PUT /rest/{store_code}/V2/carts/mine/coupons
장바구니에서 쿠폰 코드 제거:
POST /rest/{store_code}/V2/carts/{cartId}/coupons/deleteByCodes
POST /rest/{store_code}/V2/carts/mine/coupons/deleteByCodes
추가 끝점
이 릴리스에서는 REST API GET
및 POST V1/products/attributes
끝점으로 인한 제한을 해결하는 방법을 제공하는 두 개의 새 REST 끝점을 도입했습니다. 이러한 끝점은 Use in Layered Navigation 옵션의 Filterable(with results)
및 Filterable(no results)
옵션 모두에 대해 is_filterable
특성에 동일한 값을 반환합니다. is_filterable
특성 속성은 Boolean
형식이며 이 속성을 Filterable(no results)
(으)로 설정할 수 없습니다.
두 개의 새 REST 끝점이 해결 방법으로 구현되었습니다.
PUT /V1/products/attributes/{attributeCode}/is-filterable/{isFilterable}
. 경로 매개 변수:attributeCode
(String
) 및isFilterable
(int
값: 0: 아니요, 1:Filterable (with results)
, 2:Filterable (no results)
).GET /V1/products/attributes/{attributeCode}/is-filterable
. 경로 매개 변수:attributeCode
(String
).
해결된 문제
Adobe Commerce 2.4.7 코어 코드에서 수백 개의 문제를 해결했습니다. 이 릴리스에 포함된 해결된 문제의 하위 집합은 아래에 설명되어 있습니다. 이전 Commerce 2.4.7 베타 릴리스에 포함된 수정 사항도 설명되어 있습니다.
설치, 업그레이드, 배포
- 불필요한 캐시 조작이 설정 프로세스에서 제거되었습니다. 이전에는 Commerce이
bin/magento setup:db-data:upgrade
또는bin/magento setup:upgrade
을(를) 실행할 때 불필요하게 디스크에 구성을 기록했으며, 이로 인해 설치하는 동안 일부 모듈에 문제가 발생했습니다. GitHub-38124
- 메모리 부족 및 큰 테이블로 인한 배포 문제가 해결되었습니다. 큰 MySQL 테이블과 관련된 메모리 초과 오류로 인해
bin/magento setup:upgrade
명령이 더 이상 실패하지 않습니다.
app/etc/config.php
이(가) 삭제된 후bin/magento setup:install
이(가) 정상적으로 완료됩니다. 이전에는 설치 중에 누락된 파일이 다시 생성되지 않았으며 Commerce에서 오류가 발생했습니다. GitHub-37805
- 테이블 및 연결된
mview
인덱서를 모두 설치하는 새 모듈을 설치할 때bin/magento setup:upgrade
이(가) 성공적으로 실행되도록 리팩터링되었습니다. GitHub-37304
- 구분 기호 오류로 인해 더 이상 데이터베이스 복원이 실패하지 않습니다. 이전에는
bin/magento setup:rollback --db
이(가) 실행될 때 Commerce에서 이 오류가 발생했습니다.Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'delimiter' at line 1, query was: delimiter ;;
.
- MySQL 메모리 제한 관련 오류
PHP Fatal error: Allowed memory size of 4294967296 bytes exhausted (tried to allocate 20480 bytes)
유형으로bin/magento setup:upgrade
명령이 더 이상 실패하지 않습니다. 다중 선택 특성 마이그레이션이setup:upgrade
동안 메모리를 적게 사용하도록 최적화되었습니다.
- 이제 데이터베이스 백업 생성이 관리자 및 명령줄 모두에서 예상대로 작동합니다. 이전에는 Adobe Commerce에서 다음 오류가 발생했습니다.
Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'delimiter' at line 1, query was: delimiter ;;
.
--lock-db-prefix
매개 변수를 지정하지 않고setup:config:set
을(를) 실행하면env.php
파일에서 현재 값이 더 이상 지워지지 않습니다.
- 게스트 사용자가 다른 고객 그룹과 관련된 캐시된 콘텐츠에 액세스할 수 없도록 니스 구성이 업데이트되었습니다.
- 이제 Checkout Async 이(가) 활성화된 경우 쇼핑객이 분할 데이터베이스를 구현하는 배포에 주문을 할 수 있습니다. 이전에는 Adobe Commerce에서 다음 오류가 발생했습니다.
An error occurred on the server. Please try to place the order again
.
- 테이블 및 연결된
mview
인덱서를 모두 설치하는 새 모듈을 설치하면bin/magento setup:upgrade
이(가) 성공적으로 완료됩니다.
- 이제
bin/magento setup:upgrade
은(는) 메시지 대기열 주제에 주제 이름이 포함되지 않은 경우 더 자세한 오류 메시지를 표시합니다. GitHub-34246
- 병합된 XML 파일이 잘못되면
bin/magento setup:upgrade
에 더 자세한 오류 메시지가 표시됩니다. 이제 오류 메시지에 파일 이름이 포함됩니다.
관리자 UI
- 이제 대시보드에서 차트가 기본적으로 비활성화되었습니다. GitHub-38430
- 이제 Admin Sales 메뉴에 하위 메뉴가 올바르게 표시됩니다. 이전에는 열 나누기가 제대로 작동하지 않거나 일부 하위 메뉴가 표시되지 않았습니다. GitHub-37812
- 그리드에서 여러 페이지를 선택하면 이제 관리자 Content > Pages 에 Select 드롭다운 메뉴 옵션이 표시됩니다. GitHub-35386
- 구성 설정에서 경로를 기본값인
system/dashboard/enable_charts
(으)로 수정했습니다. 차트가 이제 예상대로 관리자에 표시됩니다. GitHub-37668
- 관리자 고객 그리드의 디스플레이 문제를 수정했습니다. 이전에는 그리드 열이 표시된 페이지 내에 완전히 포함되지 않았습니다.
- 이제 마우스로 가리키면 표시되는 색상이 관리자 정적 그리드의 행에 예상대로 적용됩니다. GitHub-35358
- 쇼핑객이 공백이 없는 그리스의 우편 번호를 입력할 때 체크아웃 워크플로우는 더 이상 경고를 표시하지 않습니다. GitHub-36676
- 이제 관리자
It's time to change your password
링크가 예상대로 관리자 암호 변경 페이지로 리디렉션됩니다. GitHub-37902
- 이제 하위 메뉴 제목은 사용자에게 할당된 액세스 수준에 관계없이 모든 형제 항목을 나타냅니다. 이전에는 하위 메뉴에 대해 여러 형제 그룹이 있는 경우에도 액세스 권한이 제한된 관리자 사용자에게는 이 정보가 표시되지 않았습니다.
- 이제 페이지 제목 접미사가 제품 페이지의
title
태그와meta title
태그에 모두 포함됩니다. GitHub-37680
- 이제 제품 스톡 상태 조건이 관련 제품 규칙에 대해 올바르게 적용됩니다.
- 이제 모바일 장치에 Login as Customer 단추가 올바르게 표시됩니다.
- 로그인한 관리자 사용자에게 새 고객 그룹을 추가할 수 있는 권한이 없는 경우 Adobe Commerce에 더 이상 관리자 Add new customer group 단추가 표시되지 않습니다.
- 이제 권한이 제한된 관리자는 상위 제품이 다른 범위에 할당된 하위 제품을 저장할 수 있습니다. 이전에는 Commerce이 하위 제품이 변경된 범위에 할당되지 않은 상위 제품에 대한 캐시를 무효화했습니다.
- 이제 관리 사용자는 보기 데이터가 손상되거나 손실되지 않고 관리 필터 보기 간에 성공적으로 전환할 수 있습니다. GitHub-37529
- 이제 보관된 주문 그리드가 예상대로 새 주문 상태로 비동기적으로 업데이트됩니다. 아카이브 그리드에서 주문 상태를 업데이트하는 이벤트 기반 접근 방식은 대변 후 메모 환불을 포함하여 정확한 주문 상태를 제공합니다.
- 이제 관리 그리드 작업 드롭다운 메뉴를 Content > Pages 에 대해 선택한 링크(및 B2B 모듈의 공유 카탈로그) 위로 예상대로 마우스를 가져갈 수 있습니다. 이전에는 이 메뉴가 대부분 숨겨졌으며 관리자는 옵션을 보려면 스크롤해야 했습니다. GitHub-36710
분석
- 이제 기본 제품 이미지에 제품 세부 정보 페이지
meta itemprop="image"
및meta itemprop="description"
속성을 사용할 수 있습니다. GitHub-37497
- 이제 Catalog Price Scope 이(가) Website(으)로 설정된 경우 장바구니에 있는 제품 표의 보고서 섹션에 올바른 제품 가격이 표시됩니다. 기존에는 기본 웹 사이트가 아닌 다른 웹 사이트에 상품을 지정할 때 상품 가격이 0으로 표시됐다.
- 이제 매출 보고서가 Google Analytics(GA4) 포털에서 예상대로 표시됩니다. GitHub-37605
- 이제 Google Tag Manager 데이터 레이어의
price
및quantity
값이 Google Analytics에 예상대로 숫자 값으로 전송됩니다. 이전에는 이러한 값이 문자열로 전송되었습니다.
- New Relic 모듈로 배포 데이터를 보낼 때 헤더 데이터를 처리하는 데 발생하는 오류가 해결되었습니다.
- 이제 Google Analytics 4 태그가 비활성화되면 Google Analytics 3 태그가 예상대로 트리거됩니다.
배너
- 과도한 데이터베이스 쿼리를 제거하기 위해 배너 콘텐츠를 로드하는 방식을 리팩터링하여 장바구니 로드 시간을 개선했습니다.
번들 제품
- Display Out Of Stock*을(를) 사용하도록 설정하면 범주 제품 수가 번들 제품을 올바르게 처리합니다.
- 이제
customerCart
쿼리가 예상대로 번들 제품에 적용된 모든 할인을 반환합니다. 기존에는 묶음 상품에 적용되던 총 할인액이 0으로 돌아갔다.
- 이제 제품 세부 사항 페이지에 100% 할인이 적용된 번들 제품의 올바른 가격이 표시됩니다. 기존에는 Commerce이 상품 가격을 묶기 위해 100% 할인을 적용하지 않았다.
- 이제 장바구니 가격 규칙은 동적 가격의 번들 제품에 대해 각 하위 제품이 아닌 제품 번들에 적용됩니다.
POST V1/shipment
끝점을 사용하여 번들 제품이 포함된 선적을 만들 때 발생하는 오류를 해결했습니다. 이제 끝점이 항목을 예상대로 추가하고 더 이상 이 오류를 반환하지 않습니다.The shipment couldn't be saved
.
- 이제 무기한 예약된 업데이트가 있는 간단한 제품을 포함하는 번들 제품의 예약된 업데이트를 저장할 수 있습니다. 번들 제품 스냅숏이 만들어지면 이제 연결된 제품을 ID, 엔티티 ID 및 SKU로 가져옵니다. 기존에는 단순 제품의 현재 버전 대신 번들 제품의 예정된 업데이트를 저장하면 단순 제품의 원본 버전을 확인하였다.
- 이제 제품에 together 배송 유형이 설정되어 있을 때
GET V1/shipment/
API 경로를 사용하여 번들 제품으로 배송을 만들 수 있습니다. 번들 제품은 이제 배송 유형 속성을 기반으로 유효성이 검사됩니다.
- 이제 쇼핑객은 상점 앞의 장바구니에서 번들 제품의 수량을 편집할 수 있습니다. 이전에는 상점 앞 장바구니에서 제품을 편집하고 오류를 표시할 때 Adobe Commerce에서
ItemId
에 대해 null 값을 처리하지 않았습니다. GitHub-37696
- 이제 슬래시(
/
) 문자가 포함된 SKU를 사용하여 번들 제품을 관리 주문에 추가할 수 있습니다. 이전에는 관리자 사용자가 이 방법을 사용하여 제품을 관리자 주문에 추가할 수 없었고, Commerce에서 JavaScript 오류가 발생했습니다.
- 이제 해당 단순 제품에 대해 Qty Uses Decimal 을(를) 사용하도록 설정한 경우 관리자는 새로 추가된 번들 옵션에 대해 10진수 기본값을 설정할 수 있습니다. 이전에는 저장된 선택 영역에 대해서만 십진수 값을 설정할 수 있었습니다.
- 옵션 수가 많은 번들 제품을 절약할 수 있는 최적의 성능
- 이제 번들 제품을 제품 옵션에서 SKU를 복제하지 않고 성공적으로 가져왔습니다. 이전에는 Adobe Commerce에서 중복 항목이 있는 번들 제품을 가져올 때 제품 옵션에서 여러 개의 중복 SKU를 만들었습니다.
- 이제 번들 제품 가격이 번들 내 제품 중 하나가 품절되었을 때 제대로 계산됩니다. 기존에는 번들에 포함된 상품이 품절됐다면 가격 산정에서 뺐다.
- 이제 필요한 하위 제품을 마지막으로 구매하면 번들 제품이 품절로 표시됩니다. 기존에는 단순 상품이 품절됐을 때 묶음 상품을 매장 앞에 재고로 표시했다.
addBundleProductsToCart
돌연변이를 사용하여 필수 옵션이 아닌 번들 제품을 장바구니에 추가할 때 발생하는 성능 문제가 해결되었습니다.
- Show out-of-stock products 구성 설정을 사용하도록 설정하면
categoryList
쿼리가 모든 번들 옵션을 예상대로 반환합니다. 이전에는 품절 옵션이 쿼리 응답에 포함되지 않았습니다.
- 카탈로그 가격 범위가
website
(으)로 설정된 경우POST V1/products
(으)로 만들어진 번들 제품이 성공했습니다. 이전에는 무결성 제약 조건 위반이 발생했습니다. GitHub-35595