Magento Open Source 2.4.5 릴리스 노트

Magento Open Source은 플랫폼 품질, 결제 방법, GraphQL 캐싱 성능 및 접근성 개선 사항을 도입했습니다. 여기에는 통합 Google 모듈에 대한 업데이트가 포함되어 있습니다.

이 릴리스에는 290개 이상의 품질 수정 및 개선 사항이 포함되어 있습니다.

NOTE
Adobe Commerce 릴리스에는 이전 버전과 호환 불가능한 변경 사항(BIC)이 포함될 수 있습니다. 이전 버전과 호환되지 않는 변경 내용을 검토하려면 BIC 참조를 참조하십시오. 이전 버전과 호환되지 않는 주요 문제는 BIC 하이라이트에 설명되어 있습니다. 일부 릴리스에서는 주요 BIC가 제공되지 않습니다.

기타 릴리스 정보

이러한 기능에 대한 코드가 Magento Open Source 코어 코드의 분기별 릴리스와 번들로 제공되지만 이러한 프로젝트 중 일부도 독립적으로 릴리스됩니다. 이러한 프로젝트에 대한 버그 수정은 각 프로젝트에 대한 설명서에서 사용할 수 있는 별도의 프로젝트별 릴리스 정보에 설명되어 있습니다.

Magento Open Source 2.4.5의 특징

이 릴리스에서 다음 하이라이트를 확인하십시오.

향상된 보안 기능

이 릴리스에는 20개의 보안 수정 사항 및 플랫폼 보안 개선 사항이 포함되어 있습니다. 이 보안 수정 사항은 Magento Open Source 2.4.4-p1 및 Magento Open Source 2.3.7-p4로 백포트되었습니다.

현재까지 이러한 문제와 관련된 확인된 공격은 발생하지 않았습니다. 그러나 특정 취약성은 고객 정보에 액세스하거나 관리자 세션을 인수하는 데 잠재적으로 악용될 수 있습니다. 이러한 문제의 대부분은 공격자가 먼저 관리자에 대한 액세스 권한을 얻어야 합니다. 따라서 이러한 노력을 포함하되 이에 국한되지 않고 관리자를 보호하기 위해 필요한 모든 조치를 취해야 함을 알려드립니다.

  • IP 허용 목록에 추가
  • 이중 인증
  • vpn 사용
  • /admin 대신 고유한 위치 사용
  • 올바른 암호 위생

이러한 고정 문제에 대한 최신 논의는 Adobe 보안 게시판을 참조하십시오.

추가적인 보안 개선 사항

이 릴리스의 보안 개선 사항은 다음을 포함하여 최신 보안 모범 사례를 준수하도록 개선합니다.

  • reCAPTCHA 지원이 위시리스트 공유, 새 고객 계정 만들기 및 기프트 카드 양식에 추가되었습니다.

  • ACL 리소스가 인벤토리에 추가되었습니다.

  • 인벤토리 템플릿 보안이 향상되었습니다.

  • MaliciousCode 필터가 HtmlPurifier 라이브러리를 사용하도록 업그레이드되었습니다.

플랫폼 개선 사항

이제 Magento Open Source 2.4.5에서 다음을 지원합니다.

  • 작성기 2.2

  • TinyMCE(5.10.2) 이전 버전의 TinyMCE(v5.9.2 또는 이전 버전)에서는 특별히 제작된 URL이나 특별히 제작된 URL이 있는 이미지가 업데이트될 때 임의의 JavaScript 실행이 허용되었습니다.

  • jQueryUI(1.13.1)

  • PHPStan (^1.5.7(제한 있음) GitHub-35315

DHL 통합 스키마가 v6.0에서 v6.2로 업데이트되었습니다. 이 업그레이드로 인해 제품 동작이 변경되지 않습니다.

오래된 JavaScript 라이브러리가 최신 버전으로 업데이트되고 오래된 종속성이 제거되었습니다. 이러한 변경 사항은 이전 버전과 호환됩니다.

작성기 종속성 업데이트

다음 작성기 종속성이 제한이 있는 최신 버전으로 업데이트되었습니다.

  • colinmollenhour/credis(1.13.0)
  • guzzlehttp/guzzle (^7.4.2)
  • laminas/laminas-captcha(제한 ^2.12을(를) 사용하여 업데이트됨)
  • laminas/laminas-db (^2.15.0)
  • laminas/laminas-di (^3.7.0)
  • laminas/laminas-escaper(~2.10.0)
  • laminas/laminas-eventmanager (^3.5.0)
  • laminas/laminas-feed (^2.17.0)
  • laminas/laminas-mail (^2.16.0)
  • laminas/laminas-mvc (^3.3.3)
  • laminas/laminas-server (^2.11.1)
  • laminas/laminas-servicemanager (^3.11.0)
  • laminas/laminas-validator (^2.17.0)
  • league/fly(2.4.3)
  • monolog/monolog (^2.5)
  • phpmd/phpmd (^2.12.0)
  • phpstan/phpstan (^1.5.7)
  • phpunit/phpunit(~9.5.20)
  • php-cs-fixer (^3.4.0)
  • webonyx/graphql-php(14.11.6)

laminas/laminas-session, laminas/laminas-textlaminas/laminas-view 종속성이 제거되었습니다.

기타 업그레이드 및 교체

  • DHL 통합 스키마가 v6.0에서 v6.2로 업데이트되었습니다.

  • USPS 배송에 대한 기본 게이트웨이 URL이 http 대신 https을(를) 사용하도록 업데이트되었습니다.

  • Froogaloop 라이브러리가 Vimeo Player.js 라이브러리(2.16.4)로 대체되었습니다.

  • grunt-eslint(NPM) 라이브러리가 최신 버전으로 업그레이드되었습니다.

  • jQuery Storage 라이브러리가 julien-maurel/js-storage(으)로 대체되었습니다.

  • php-cs-fixerphpcs 정적 코드 분석 도구가 이제 PHP 8.x와 호환됩니다.

  • glob.js 종속성(제약 조건을 사용하여 ~7.2.0으로 업그레이드됨)

  • serve-static.js 종속성(제한 ~1.14.2로 업그레이드됨)

  • underscore.js 종속성(NPM)(1.14.2)

  • moment-timezone-with-data.js(0.5.34)

  • jquery/jquery-cookie 라이브러리가 js-cookie/js-cookie(으)로 대체되었습니다.

  • jarallax.jsjaralax-video.js 라이브러리가 최신 버전의 Vimeo REST API를 사용하도록 업데이트되었습니다.

접근성 업데이트

이 릴리스의 초점은 보다 인지 가능하고, 작동 가능하며, 이해 가능하고 강력한 Venia(PWA)의 상점 경험을 만드는 데 있었습니다. 이러한 개선 사항은 다음과 같습니다.

  • 이제 검색 결과 요약 정보가 화면 판독기 사용자에게 표시됩니다
  • 이제 새 페이지 보기가 로드될 때 화면 판독기에 알림이 표시됩니다
  • 대비 및 키보드 접근성이 개선되었습니다

Google Analytics

Google은 GTag와의 통합을 통해 웹 애플리케이션에서 AdWords 및 Analytics의 추적 및 통합 메커니즘을 업데이트했습니다. 웹 사이트 페이지에 Google 기능을 통합하면 Google Services를 통해 컨텐츠를 추적하고 관리할 수 있는 기회가 확장됩니다. Adobe Commerce에는 Google 서비스와의 통합을 위해 이전 API를 활용하는 Google AdWords, Analytics, Optimizer 및 TagManager 등의 내장된 모듈 세트가 있습니다. 이 릴리스에서는 GTag 접근 방식을 사용하여 이 통합을 다시 구현했습니다​. analytics.js에서 gtag.js(Universal Analytics)로 마이그레이션을 참조하십시오.

GraphQL

GraphQL 성능 개선 사항은 다음과 같습니다.

  • 개발자와 관리자는 배포 시 또는 프로덕션에서 속성을 변경할 때 통합 상점 GraphQL 스키마를 더 빠르게 다시 빌드할 수 있습니다. 또한 어떤 이유로든 GraphQL 스키마를 다시 빌드해야 하는 경우 쇼핑객은 페이지 로드 속도가 상당히 빨라집니다.

  • GraphQL API에서 JSON 웹 토큰(JWT)을 사용하여 인증 토큰의 만료 날짜/시간을 소비하는 기능이 추가되었습니다.

  • bin/magento config:set graphql/session/disable 1 명령을 사용하면 판매자가 모든 GraphQL 작업에 대한 세션 쿠키 만들기를 완전히 비활성화할 수 있습니다. 기본적으로 애플리케이션 Open Source은 이러한 쿠키를 만들고 성능에 영향을 주는 인증에 사용합니다. 앞으로는 토큰을 GraphQL 요청에 대한 유일한 인증 양식으로 사용하는 것이 좋습니다. 세션 쿠키만 사용하거나 인증 토큰과 함께 사용하지 않는 것이 좋습니다. GraphQL 인증을 참조하십시오.

  • 세션 쿠키는 이제 필요한 경우에만 클래스 프록시를 사용하여 GraphQL 작업에서 실행됩니다.

  • 스토어, 고객 또는 통화와 같은 GraphQL의 http 헤더 프로세서에서 세션 사용이 제거되었습니다.

이러한 개선 사항에 대한 자세한 내용은 GraphQL 개발자 안내서를 참조하십시오.

인벤토리

인벤토리 템플릿 보안이 향상되었습니다.

페이지 빌더

페이지 빌더 v.1.7.2는 Magento Open Source 2.4.5와 호환됩니다.

Page Builder 열 레이아웃에는 다음과 같은 개선 사항이 포함되어 있습니다.

  • 이제 열이 노출되므로 사용자가 상점 전면에서 열 설정을 제어할 수 있습니다.

  • 이제 열 크기 조정이 사용자 작업에 의해 트리거된 래핑을 지원합니다.

결제

이제 Apple Pay를 결제 서비스가 활성화된 상태에서 배포를 실행하는 모든 가맹점에서 사용할 수 있습니다. 이 결제 방법에서는 쇼핑객이 신용 또는 직불 카드 세부 사항을 입력할 필요가 없습니다. Apple Pay는 제품 세부 사항 페이지, 미니 장바구니, 장바구니 및 체크아웃 워크플로우에서 사용할 수 있습니다. 판매자는 이 기능을 전환할 수 있습니다.

PayPal

  • 스페인과 이탈리아의 상인들은 이제 쇼핑객들에게 나중에 페이팔 페이를 제공할 수 있습니다.

  • 이제 PayPal, Credit 및 Pay Later 버튼의 미리 보기를 체크아웃, Minicart, Cart 및 제품 페이지에서 사용할 수 있습니다. 미리보기에서는 이러한 버튼이 상점 앞에서 활성화되어 렌더링될 때 표시되는 방식을 보여 줍니다.

Braintree

  • Braintree이 KMOUNT 사기 행위 보호 통합을 중단했습니다. Magento Open Source 코드베이스에서 제거되었습니다.

  • 항상 3DS 요청 옵션이 관리자에 추가되었습니다.

PWA Studio

PWA Studio v.12.5.x는 Magento Open Source 2.4.5와 호환됩니다.

이 릴리스의 새로운 기능은 다음과 같습니다.

  • 쇼핑객 행동 데이터는 웹 분석 서비스를 위한 PWA Studio 상점에서 수집됩니다. 가맹점은 이제 필요에 따라 이러한 이벤트를 구독하고 연장할 수 있다.

  • 이제 판매자는 관리자(Google 태그 관리자)에서 배포할 서비스를 선택할 수 있습니다.

개선 사항 및 버그 수정에 대한 자세한 내용은 PWA Studio 릴리스를 참조하십시오. PWA Studio 버전 및 호환 가능한 Magento Open Source 핵심 버전 목록은 버전 호환성을 참조하십시오.

해결된 문제

Magento Open Source 2.4.5 코어 코드에서 수백 개의 문제를 수정했습니다.

설치, 업그레이드, 배포

  • 이제 데이터 패치의 이름을 바꾸고 이전 클래스 이름을 patch_list 데이터베이스 테이블에 별칭으로 추가할 수 있습니다. 이제 Magento Open Source은 패치를 적용하기 전에 데이터 패치 별칭이 데이터베이스에 이미 있는지 확인합니다. 이전에는 이러한 조건에서 applicationOpen Source에서 오류가 발생했습니다.
  • 관리자 URL을 관리자의 사용자 지정 URL로 변경하려고 할 때 Magento Open Source에서 더 이상 예외가 발생하지 않습니다. 이전에는 관리자 URL을 변경한 후 로그인할 수 없었습니다. GitHub-35416
  • 판매자는 이제 Klarna를 사용하여 Magento Open Source 2.4.2 배포에서 Magento Open Source 2.4.3으로 성공적으로 업그레이드할 수 있습니다. GitHub-33760
  • Magento Open Source Analytics에 대한 경로가 더 이상 하드코딩되지 않습니다. 이전에는 이 하드코딩된 경로로 인해 여러 Magento Open Source 인스턴스가 하나의 서버에 설치되었을 때 충돌이 발생했습니다. GitHub-29373

접근성

  • 쇼핑백 단추는 이제 프로그램 또는 텍스트 상태의 표시를 제공합니다. 화면 판독기 사용자는 이 단추를 클릭하면 다른 콘텐츠가 확장되거나 연결된 콘텐츠가 확장되거나 축소된다는 알림을 받습니다. 이전에는 이 단추가 그 상태를 프로그래밍 방식으로 또는 텍스트로 나타내지 않았습니다.
  • 결제 정보 신용카드 옵션 텍스트 요소 또는 텍스트 이미지는 이제 표준 텍스트인 18pt(24px) 또는 14pt(19px)의 경우 WCAG 2.0의 필수 최소 색상 대비 비율(4.5:1)을 충족합니다. 이전에는 예상 명암비를 충족하지 못했습니다.
  • 주소록 > 통신 > 계정 정보 사용자 지정 포커스 표시기가 이제 배경색에 대해 최소 3:1의 대비 비율을 제공합니다.
  • 필터정렬 단추 텍스트가 굵게 표시되는 경우 표준 텍스트 18pt(24px) 또는 14pt(19px)의 경우 필요한 최소 색상 대비 비율 4.5:1의 WCAG 2.0을 충족합니다. 이전에는 캐러셀의 탐색 단추가 이러한 최소 대비 요구 사항을 충족하지 않았습니다.
  • 화면 판독기는 Venia 머리글과 바닥글로 이동할 때 "Venia"라는 단어를 한 번만 알려줍니다. 이전에도 같은 단어가 두 번 연속 발표됐다.
  • 이제 드롭다운을 트리거하는 단추는 확장 또는 축소 상태와 액세스 가능한 이름을 나타내는 정보를 화면 판독기에 제공합니다.
  • 화면 판독기 사용자는 새 페이지 보기가 렌더링될 때 알림을 받습니다. 기존에는 페이지 제목이 변경되면 제목 변경이 공지되지 않았다.

Adobe Stock

  • 이제 사용자가 Adobe Stock에서 성공적으로 로그아웃할 수 있습니다.

번들 제품

  • 이제 PUT /V1/products 끝점을 사용하여 특정 웹 사이트의 제품 가격 특성을 업데이트할 수 있습니다. 이전에는 일부 제품 속성이 특정 스토어 보기에 대해 재정의된 경우 동일한 스토어 보기에서 해당 제품에 대한 가격 속성을 업데이트할 수 없었습니다.
  • 이제 Magento Open Source은 제품 하위 선택 규칙이 적용될 때 번들 제품에 대한 장바구니 합계를 올바르게 계산합니다.

캐시

  • Magento Open Source 캐시를 플러시하고 use_stale_cache을(를) 사용하도록 설정한 경우 관리자에서 전체 페이지 캐시가 더 이상 사용하지 않도록 표시되지 않습니다.
  • 이제 캐시가 플러시되면 New Relic 배포 마커가 예상대로 작동합니다. GitHub-32649

장바구니 및 체크아웃

  • 체크아웃 워크플로우의 청구 단계에서 주소 검색 팝업으로 인해 더 이상 DOM 오류가 발생하지 않습니다.
  • 이제 addProductsToCart 돌연변이가 여러 제품에서 올바르게 작동합니다. 이전에는 이 쿼리가 정확한 소계를 사용하여 첫 번째 제품을 반환했지만 다른 제품에 대해서는 소계 0을 반환했습니다.
  • 이제 SKU에서 추가한 제한된 제품에 대해 권한 예외가 처리됩니다. 이제 구매자에게 상점 정면에 적절한 메시지가 표시되며, 오류 테이블의 수량 필드는 비활성화됩니다. 이전에는 applicationOpen Source에서 다음과 같은 예외가 발생했습니다. There has been an error processing your request.
  • 장바구니 가격 규칙을 사용하지 않도록 설정한 후 영향을 받는 견적을 업데이트하는 SQL 쿼리가 전체 견적 테이블을 잠그지 않도록 최적화되었습니다.
  • 게스트 체크아웃을 사용하지 않도록 설정한 경우 글로벌 계정을 공유하는 구매자는 더 이상 다중 사이트 배포에서 보조 웹 사이트에 다시 로그인할 필요가 없습니다. 이제 쇼핑객이 하위 도메인으로 이동할 때 고객 데이터가 로드됩니다. 쇼핑객에게 더 이상 다시 로그인하라는 메시지가 표시되지 않고 이전 장바구니 콘텐츠가 표시됩니다.
  • 다중 주소 체크아웃 시 단일 수량 주소 항목을 제거하면 체크아웃 워크플로의 주소 드롭다운 값이 견적의 나머지 항목에 대해 더 이상 변경되지 않습니다. 이전에는 여러 주소를 체크아웃하는 동안 제품이 견적에서 제거되면 주소 드롭다운 값이 모든 제품에 대해 기본값으로 변경되었습니다.
  • 제품이 품절된 경우 cart 쿼리가 더 이상 null 응답을 반환하지 않습니다. 오류 메시지가 포함된 새 errors 요소가 응답에 도입되었습니다. 이전에는, 품절 제품으로 쿼리를 실행했을 때 Source 열기 응용 프로그램이 응답의 items 섹션 아래에 null 값을 표시했습니다. 장바구니 쿼리를 참조하세요.
  • 이제 고객 쇼핑객이 체크아웃을 진행하기 전에 장바구니에 제품을 추가한 후 계정을 만들 때 예상대로 배송 방법을 사용할 수 있습니다. 이전에는 고객이 계정을 만들기 전에 장바구니에 제품을 추가할 때 체크아웃 중에 배송 방법을 사용할 수 없었습니다. 다른 제품을 장바구니에 추가한 후 배송 방법을 사용할 수 있게 되었습니다.
  • 국가 허용 필드에서 옵션을 선택하지 않은 경우 이제 쇼핑객이 장바구니에 제품을 추가할 수 있습니다.
  • 지속성 사용 ​을(를) (으)로 설정하면 세션 시간이 초과된 후 장바구니 콘텐츠와 로그인 상태가 예상대로 다시 로드됩니다. GitHub-35182
  • 이제 쇼퍼가 여러 배송 주소가 있는 주문에 대해 체크아웃 워크플로우에서 배송 페이지에서 장바구니 페이지로 이동할 때 미니 장바구니 소계가 올바르게 업데이트됩니다. 이전에는 소계가 두 배로 증가했습니다.
  • 이제 지속성 활성화 ​가 활성화된 경우 세션 시간 제한 후 미니 장바구니에 이전에 추가한 제품이 표시됩니다. GitHub-35183
  • 가맹점은 이제 환불 배송(포함)이 포함된 대변 메모를 만들 수 있습니다. 세금) ​이(가) -0.01로 설정되어 있으며 이제 이 금액을 0으로 설정할 수 있습니다. 이전에는 이러한 조건에서 대변 메모를 작성할 수 없었습니다.

장바구니 가격 규칙

  • 이제 Parent Only 특성 범위가 장바구니 규칙 조건에서 제대로 사용됩니다.

카탈로그

  • 스토어 보기를 위해 PUT /V1/products/을(를) 통해 제품 이름을 업데이트할 때 제품 URL 키가 변경되지 않습니다. 이전에는 새 제품 이름을 기반으로 새 URL 키가 생성되고 해당 스토어 보기의 URL 키를 재정의한 제품에 할당되었습니다.
  • 캐러셀 모드로 설정된 페이지 빌더 제품 위젯에서 카테고리에 제품을 추가해도 더 이상 페이지 재로드가 트리거되지 않습니다.
  • 개별적으로 표시되지 않음(으)로 설정된 제품이 더 이상 카탈로그 고급 검색 결과에 표시되지 않습니다.
  • 이제 일괄 속성 갱신 페이지에서 동적 번들 속성이 올바르게 갱신됩니다. 이전에는 일괄 업데이트 페이지에서 동적 SKU 특성을 사용하지 않도록 설정했지만 (으)로 설정되어 있었습니다.
  • 이제 카탈로그 규칙이 전체 다시 색인이 아닌 증분 색인을 사용하여 올바르게 적용됩니다.
  • 이제 다중 페이지 제품 목록의 목록 보기와 격자 보기 간을 성공적으로 전환할 수 있습니다. 이전에는 여러 페이지로 구성된 제품 목록 보기의 마지막 페이지로 이동한 후 그리드 보기로 전환하면 Source 열기 응용 프로그램에서 다음 오류가 표시되었습니다. Unfortunately there are no products in this category on our website currently.
  • 이제 관리 작업 로그 보고서에 업데이트된 제품 ID와 업데이트된 상태 정보가 예상대로 표시됩니다.
  • 이제 트리거가 전체 색인 재지정 후 catalogrule_product_price 테이블에 예상대로 복원됩니다. 이전에는 catalogrule_rule 또는 catalogrule_product을(를) 전체 다시 인덱싱한 후 catalogrule_product_price 테이블에서 트리거가 제거되었습니다.
  • 제품을 범주에 할당하는 데 사용되는 범주 규칙이 더 이상 임의로 변경되지 않습니다.
  • 범위가 제한된 액세스 권한을 가진 관리자가 범주를 더 이상 전역적으로 업데이트할 수 없습니다. 기존에는 여러 웹사이트가 같은 카테고리를 사용했지만 다른 제품을 사용하고, 한 스토어로 권한이 제한된 관리자가 해당 카테고리의 제품을 변경하면 다른 스토어에 대해서도 제품 선택이 변경됐다.
  • 이제 지정된 로케일에 대해 기본값이 아닌 통화가 사용되는 경우 제품 세부 정보 페이지에 올바른 가격이 표시됩니다. 이전에는 상점 첫 화면에서 예상대로 숫자가 현지화되지 않았습니다.
  • 이제 중복 레코드가 있는 제품의 계층 가격을 검색하려고 할 때 API와 상점 첫 화면에 동일한 오류 메시지가 표시됩니다. 이전에는 PUT /V1/products/tier-prices에서 잘못된 오류 메시지를 반환했습니다.
  • 이제 Magento Open Source은 뒤에 하이픈이 있는 제품 URL 키를 추가하려고 할 때 유효성 검사 오류 메시지를 제공합니다. 유용한 툴팁 텍스트도 사용할 수 있습니다.
  • ConfigurableWishlistItem.configured_variant 필드가 ConfigurableWishlistItem.child_sku 필드를 대체했습니다. 고객 위시리스트에 구성되지 않은 구성 가능한 제품이 포함된 경우 후자의 필드에서 내부 오류가 트리거되었습니다.
  • 이제 제품 가시성을 변경하기 위해 대량 속성을 업데이트하는 동안 선택한 스토어에 대해서만 URL 재기록이 생성됩니다. 이전에는 일괄 속성 업데이트로 인해 잘못된 저장소에 대한 URL 다시 쓰기가 생성되었습니다.
  • Synchronize widget products with backend storage 설정을 사용하면 응용 프로그램 Open Source에서 최근에 본 제품 데이터를 catalog_product_frontend_action 데이터베이스 테이블에 추가합니다. 레코드를 추가할 때 고객 또는 방문자 ID가 포함됩니다. 고객 ID와 방문자 ID가 null인 경우 응답의 recently_viewed_product 섹션이 비어 있습니다. 따라서 customer/section/load Ajax 요청이 전송되면 Source 열기 응용 프로그램은 고객 또는 방문자 ID를 기반으로 최근에 본 제품을 올바르게 필터링할 수 있습니다. 이전에는 빈 고객 또는 방문자 ID를 확인하지 않았기 때문에 응답에 catalog_product_frontend_action 데이터베이스 테이블에서 사용할 수 있는 모든 데이터가 포함되었습니다.
  • 이제 관리자는 관리 슬라이드 패널에서 장바구니의 구성 가능한 제품 옵션을 변경할 수 있습니다. 이전에는 슬라이드 패널이 제대로 작동하지 않았습니다.
  • 이제 하위 제품에 대한 변경 사항이 저장될 때 구성 가능한 상위 제품에 대해 예상대로 페이지 캐시가 지워집니다. 이전에는 캐시가 지워지지 않아 Storefront 구성 제품 페이지에서 변경 사항이 선택되지 않았습니다. GitHub-34508
  • 이제 제품 목록이 관리자에서 올바르게 렌더링됩니다. 이전에는 제품 목록이 렌더링되지 않았으며 Magento Open Source에 다음 오류가 표시되었습니다. Item (Magento\Catalog\Model\Product\Interceptor) with the same ID "<ID>" already exists. GitHub-33145
  • 이제 카탈로그 가격 범위가 웹 사이트 ​에서 글로벌(으)로 변경된 후 다중 스토어 배포의 제품 세부 정보 페이지 및 상점 검색에서 제품 가격이 동일합니다. 이전에는 카탈로그 검색 결과 페이지에 글로벌 가격이 표시되었으며 제품 세부 정보 페이지에 웹 사이트 가격이 표시되었습니다. GitHub-34074
  • 이제 가격 탐색 단계 계산 ​이 수동(으)로 설정된 경우 계층 탐색에 예상대로 가격이 가장 높은 제품이 표시됩니다.
  • 이제 범주 페이지 매김 기억 ​이 활성화되면 범주 내에 표시되는 페이지당 제품 한도를 변경할 수 있습니다. 이전에는 Magento Open Source form_key과(와) UI form_key이(가) 달랐으며 쿠키에는 다음 오류가 표시되었습니다. Invalid Form Key. Please refresh the page.
  • 이제 EAV 인덱서가 제품 ID를 int 형식으로 처리하여 성능 문제를 방지합니다.
  • 이제 이름이 ''를 포함하는 새 이미지를 추가한 후 새 제품 캐시가 성공적으로 생성됩니다. 제품에 저장한 다음 이미지 캐시를 정리합니다. GitHub-32699
  • 이제 Magento Open Source은 관리자 필드를 완료하지 않고 제품 페이지에서 속성을 만들려고 할 때 예상대로 오류 메시지를 표시합니다. GitHub-33099

  • 이제 홈 페이지에 여러 카탈로그 목록이 포함되어 있으면 모든 카탈로그 제품 목록에서 제품 등급이 올바릅니다. GitHub-33867

구성 가능한 제품

  • 이제 Magento Open Source은 제품 세부 사항 페이지에서 수량을 변경한 후 선택한 옵션을 사용하여 구성 가능한 제품에 대한 올바른 제품 가격을 표시합니다. 기존에는 물량이 변경된 후 가격이 초기값으로 재설정됐다.
  • 이제 products 쿼리는 재고 부족 표시 구성 설정을 정확하게 반영하는 구성 가능한 제품의 가격을 검색합니다. 이전에는 쿼리가 정확한 가격을 반환하지 않았습니다.
  • 이제 구성 가능한 옵션이 POST /V1/configurable-products/configurable1/child을(를) 사용하여 관리자에서 만든 구성 가능한 제품에 연결됩니다.
  • 이제 다중 선택 속성이 제품 편집 중에 올바르게 저장됩니다. 이전에는 applicationOpen Source에서 제품을 저장할 때 선택되지 않은 속성과 선택한 속성에 대한 기본 옵션을 저장했습니다.
  • 이제 Magento Open Source은 패치 스크립트를 통해 전역 select 특성을 만드는 동안 예상대로 구성 가능한 특성을 표시합니다. 이전에는 적격한 글로벌 속성이 숨겨졌습니다.
  • 이제 addConfigurableProductsToCart 돌연변이를 사용하여 사용자 지정 옵션으로 구성 가능한 제품을 추가할 수 있습니다. 이전에는 applicationOpen Source에서 다음 오류가 발생했습니다. Magento 2.3.4 graphql Notice: Undefined index: option_value in /var/www/html/mg234/vendor/magento/module-configurable-product-graph-ql/Model/Resolver/ConfigurableCartItemOptions.php on line 62. GitHub-28860

  • 이제 선택적 사용자 지정 옵션을 사용하여 구성 가능한 제품의 순서를 변경할 수 있습니다. 이전에는 순서 재지정 시도가 실패했으며 이는 다음 오류를 표시함을 의미합니다. Some of the selected options are not currently available. GitHub-35409

  • 이제 addConfigurableProductsToCart 돌연변이가 여러 제품에서 예상대로 작동합니다. 이전에는 잘못된 제품 정보가 반환되거나 잘못된 오류 메시지가 반환되었습니다. GitHub-30948

고객

  • 이제 Magento Open Source은 상점 첫 화면의 웹 사이트 설정에 따라 사전 정의된 EAV 시스템 속성을 올바르게 표시합니다. 이전에는 한 웹 사이트에 대해 활성화되고 다른 웹 사이트에 대해 비활성화된 웹 사이트 수준 고객 속성이 두 웹 사이트 모두에 대해 활성화된 것으로 표시되었습니다.

다운로드 가능

  • 이제 다운로드 가능한 제품에서 샘플 링크 및 파일을 제거할 수 있습니다. GitHub-31887

이메일

  • 시스템에서 발급한 이메일이 이제 ""을(를) 사용하여 수신자에게 성공적으로 전송되었습니다.-" 이메일 주소입니다.
  • 이제 고객은 올바른 일정에 따라 포기한 장바구니에 대한 이메일 미리 알림을 받을 수 있습니다. 새 TIMESTAMPDIFF(DAY, ,) SQL 함수가 TO_DAYS() 함수를 대체했으며 날짜 및 시간을 기준으로 타임스탬프의 차이를 계산합니다. 이전에는 장바구니 포기(모든 시간대)와 서버 시간(UTC)의 두 날짜-시간 값이 잘못 계산되어 일정별로 이메일 미리 알림이 전송되지 않았습니다.
  • 이제 Magento Open Source이 쇼핑객이 주문 ​을 클릭한 후 잘못된 이메일 형식을 입력하면 배송 페이지에 오류 메시지가 표시됩니다. 이전에는 결제 페이지에 오류 메시지가 표시되었습니다. [GitHub-33590] (https://github.com/magento/magento2/issues/33590

프레임워크

  • bin/magento setup:config:set 명령은 app/etc/env.php에서 이미 설정된 캐시 ID 접두사를 더 이상 무시하지 않습니다.
  • 이제 bin/magento setup:static-content:deploy -s compact 명령에 예상대로 하위 테마의 스타일이 포함됩니다. 이전에는 테마 CSS 파일이 배포 후 상점 앞에 존재하지 않았습니다.
  • void 요소에서 닫는 슬래시가 사용되는지 확인하기 위해 새 스니프가 추가되었습니다.
  • 새 소스를 제품에 할당하고 수량을 변경한 후에 Magento Open Source에서 더 이상 SQL 오류가 발생하지 않습니다. GitHub-35262
  • 이제 특성 정렬 순서가 업데이트 후 di.xml 파일에 지정된 대로 작동합니다.
  • 이제 updateCartCurrency 함수가 장바구니 개체 내의 개체 대신 문자열을 설정합니다. 이전에는 updateCartCurrency 함수가 장바구니 개체 내에서 문자열 대신 개체를 설정했기 때문에 applicationOpen Source이 getQuote을(를) 사용하여 견적을 로드하지 않았습니다. GitHub-34199
  • \DateTimeFormatter::formatObject()(으)로 인해 사용 중단 알림이 단위 테스트에서 더 이상 발생하지 않습니다. 이 메서드는 이제 $format에 대한 숫자 값을 사용하여 예상대로 작동합니다.
  • Magento Open Source이 더 이상 관리자에 preg_replace() 오류를 표시하지 않습니다. 세 번째 인수($subject)는 이제 bool 대신 array|string 형식입니다.
  • 이제 isFreeShipping 메서드가 부울이 아닌 정수를 반환합니다.GitHub-35164
  • vendor/magento/module-backend/Model/Menu.php 클래스의 메서드에 대한 플러그인을 만들 때 Magento Open Source에서 더 이상 다음 오류가 발생하지 않습니다. Error: Call to undefined method ReflectionUnionType::getName(). GitHub-35292
  • 이제 Magento Open Source이 상점 첫 화면의 /checkout/sidebar/updateItemQty/?item_qty=error(으)로 이동할 때 500 오류 대신 404 오류를 반환합니다. 이전에는 Warning: A non-numeric value encountered in /vendor/magento/module-checkout/Controller/Sidebar/UpdateItemQty.php on line 69 오류가 발생했습니다. GitHub-34380
  • SSL 구성 없이 AMPQ 연결이 구성된 경우 Magento Open Source이 더 이상 trim(): Passing null to parameter #1 ($string) of type string is deprecated 오류를 트리거하지 않습니다.
  • longblog 데이터베이스 정의를 long blob(으)로 수정했습니다. GitHub-35108
  • 이제 작은 따옴표가 포함된 녹아웃 텍스트를 번역할 수 있습니다. GitHub-34319
  • magento2/app/code/Magento/Security/Model/AdminSessionsManager.phpTypeError이(가) int에서 string(으)로 수정되었습니다. GitHub-34415
  • .htpasswd이(가) nginx 구성 파일의 금지된 위치에 추가되었습니다. GitHub-35150
  • Magento_Ui/js/core/app을(를) deps(으)로 app/code/Magento/Ui/view/frontend/requirejs-config.js에 추가하여 범주 제품 목록 페이지의 로드 시간이 개선되었습니다. GitHub-34847
  • 이제 ProductRepository.php:get 메서드가 캐시 키를 한 번 반환합니다. 이전에는 두 번 반환되었습니다. GitHub-34958
  • cron 작업의 예외 처리기에서 만든 새 예외에 오류 메시지가 추가되었습니다. GitHub-34941
  • GraphQl-GroupedProductGraphQl 모듈에 대한 ReadMe 파일이 업데이트되었습니다. GitHub-34951
  • 상점 인쇄 주문/송장/대변 메모 페이지에는 웹 사이트에 표시하기 위해 지정된 로고 대신 기본 Luma 로고가 더 이상 표시되지 않습니다. GitHub-34942

일반 수정 사항

  • 최대 세션 크기를 0으로 설정하면(관리자 스토어 > 설정 > 구성 - 고급) 더 이상 관리자가 로그아웃하지 않습니다. GitHub-35312
  • 이제 기본 웹 사이트가 아닌 웹 사이트에 할당된 관리자의 새 고객 주소를 추가할 때 고객이 할당된 웹 사이트를 기반으로 고객 주소 속성 구성 설정이 올바르게 로드됩니다.
  • Magento Open Source 빌더를 통해 번들 제품을 추가할 때 Page에서 더 이상 예외가 발생하지 않습니다.
  • 이제 iOS 장치에서 이름, 중간 또는 성에 기울어진 아포스트로피(')를 사용하여 고객 계정을 만들 수 있습니다. 이전에는 직선 아포스트로피만 허용되었으며 iOS 11+ 기본 경사 아포스트로피를 사용하면 Name is not valid! 오류가 발생했습니다.
  • 이제 products 쿼리가 "관련 제품 표시" 구성을 정확하게 반영하는 제품 정보를 반환합니다. 이제 GraphQL ProductInterface의 related_products, upsell_productscrosssell_products 필드가 각각 관련 제품 표시, 상향 판매 제품 표시 및 교차 판매 제품 표시 구성에 따라 확인됩니다.
  • Set Product as New From Date 특성은 이제 일괄 제품 대량 업데이트를 통해 Set Product as New 특성이 설정된 경우 올바른 날짜를 표시합니다. 이전에는 제품을 날짜부터 새로 설정 ​이 1970년 1월 1일 ​로 표시되었습니다.
  • 제한된 역할을 가진 사용자는 더 이상 새 모듈에 대한 액세스 권한을 자동으로 부여받지 않습니다.
  • 이제 관련 제품 규칙 조건이 multiselect 특성이 포함된 제품에서 예상대로 작동합니다.
  • 판매자는 이제 제품 비교에 계층 가격 특성(tier_price)을 추가할 수 있습니다. 이전에는 이 특성에 대해 Comparable on storefront 설정을 사용하도록 설정한 경우 제품 비교 페이지가 충돌했습니다. GitHub-35244
  • 이제 잘못된 쿠키 도메인(Store > Configurations > Web > 기본 쿠키 설정 쿠키 도메인)을 설정할 때 Magento Open Source에 오류 메시지가 표시됩니다. 이전에는 웹 사이트가 충돌했습니다. GitHub-35048
  • 단일 웹 사이트로 범위가 지정된 역할을 가진 관리자가 PageBuilder를 사용하여 콘텐츠 요소에 제품을 추가할 때 Magento Open Source에서 더 이상 오류가 발생하지 않습니다. 이전에는 applicationOpen Source에서 SQL 오류가 발생했습니다.
  • 주소 편집 및 추가 페이지에서 주소 주소의 두 번째 줄에 유효성 검사가 추가되었습니다. 이제 초 단위로 지정된 최소 및 최대 텍스트 길이가 적용됩니다.
  • 업그레이드 후 관리자에서 카탈로그 규칙을 만드는 동안 Magento Open Source에서 더 이상 다음 오류가 발생하지 않습니다. A technical problem with the server created an error. Try again to continue what you were doing. If the problem persists, try again later.
  • 위시리스트 공유 ​를 클릭하기 전에 위시리스트에 RSS 피드를 연결하려면 여기를 확인 확인란을 선택하면 Magento Open Source에서 더 이상 오류가 발생하지 않습니다. GitHub-34998
  • 이제 암호 표시 확인란(고객 로그인, 고객 등록, 고객 편집(암호 변경 섹션) 및 고객 새 암호 설정 양식)의 제목을 번역할 수 있습니다. GitHub-34857
  • app/code/Magento/NewRelicReporting/etc/adminhtml/system.xml에서 레이블 및 주석 설명을 업데이트했습니다. GitHub-31947
  • 불필요한 csp_whitelist.xml개 파일을 제거했습니다. GitHub-30607

GraphQL

  • 누락된 price_range 특성이 GraphQL BundleItemOption 유형에 추가되었습니다. GitHub-35010
  • 검색 결과에 사용 계층화된 탐색 설정이 비활성화되면 products 쿼리가 더 이상 특성을 집계로 반환하지 않습니다. GitHub-33318
  • price_including_tax 필드가 CartItemPrices에 추가되었습니다. GitHub-29057
  • ProductInterfacenew_from_datanew_to_datefields은(는) 더 이상 사용되지 않습니다. GitHub-34783
  • 파일 시스템에서 찾을 수 없는 이미지가 포함된 범주 목록을 가져올 때 categories 쿼리에서 더 이상 예외가 발생하지 않습니다. 이전에는 applicationOpen Source에서 이 예외를 throw했습니다. Category image not found. GitHub-34266
  • 이제 products 쿼리가 category_uid을(를) 예상대로 집계로 반환합니다. GitHub-32557
  • 이제 updateCartItems 돌연변이로 인해 제품 재고가 최대 재고 금액에 도달했을 때 예상대로 제품이 제거됩니다. GitHub-30220
  • 이제 urlResolver 쿼리가 여러 홈 페이지에 동일한 식별자가 있을 때 경로 구분 기호(/)를 올바르게 확인합니다. 이전에는 쿼리가 구분 기호를 확인하지 않고 null을 반환했습니다. GitHub-33615
  • customer 쿼리는 이제 주문을 쿼리할 때 예상대로 번들 제품 다중 선택 옵션을 가져옵니다. GitHub-34717
  • GraphQL 요청이 수행된 후 Magento Open Source 세션이 더 이상 종료되지 않습니다. 이전에는 ClearCustomerSessionAfterRequest 플러그 인이 쇼핑객을 로그아웃했습니다. GitHub-34550
  • 재고 부족 제품 표시 구성 설정을 사용하면 products 쿼리 응답에서 구성 가능한 제품 가격 범위가 올바르게 계산됩니다. 이전에는, 비활성화된 옵션은 최소 및 최대 가격 계산에서 고려되었습니다.
  • 이제 위치별로 정렬할 때 products 쿼리가 올바르게 필터링된 여러 범주를 반환합니다.
  • setShippingAddressesOnCart개의 요청이 지역 ID의 유효성을 검사했습니다. 이전에는 지역 코드 대신 지역 ID를 사용할 때 applicationOpen Source에서 오류가 발생했습니다.
  • 이제 products개의 쿼리가 요청에서 전달된 스토어와 연결된 범주만 반환합니다.
  • 이제 categoryList 쿼리는 저장소에 헤더가 지정되면 쿼리된 저장소의 루트 범주를 반영하는 결과를 반환합니다. 이전에는 헤더에 다른 저장소가 지정되었더라도 기본 루트 범주의 범주가 결과에 포함되었습니다.
  • 검색 결과의 계층화된 탐색에서 사용 설정을 사용하지 않도록 설정하면 products 쿼리가 더 이상 특성을 집계로 반환하지 않습니다. GitHub-33318
  • 이제 cart 쿼리가 무료 주문에 대해 하나의 결제 방법만 반환합니다. 이전에는 모든 활성 결제 방법이 쿼리 응답에서 반환되었습니다. GitHub-34036
  • products 쿼리는 더 이상 비활성화된 변형의 영향을 받는 구성 가능한 제품에 대한 price_range 값을 반환하지 않습니다. GitHub-33629
  • 저장소 크레딧이 여러 번 적용되지 않도록 collectQuoteTotals 호출 앞에 플러그인을 추가했습니다.
  • generateCustomerTokenAsAdmin 돌연변이는 이제 예상대로 고객 토큰을 검색합니다. 이전에는 토큰이 반환되지 않았으며 이 오류가 반환되었습니다. Customer email provided does not exist.
  • 사용자 지정 type 제품 특성이 정의된 경우 이제 GraphQL 스키마가 유효합니다. 이전에는 제품 유형의 type 특성을 사용자 지정 type 특성으로 덮어썼기 때문에 스키마가 유효하지 않았습니다. GitHub-34929
  • createCustomer, createCustomerV2, updateCustomer 또는 updateCustomerV2 돌연변이를 추가하거나 업데이트한 고객이 이제 활성 뉴스레터 구독과 함께 추가됩니다. 이전에는 요청에 적절한 입력 매개 변수가 포함되어 있어도 뉴스레터 구독을 취소했습니다. GitHub-33599
  • 이제 특정 스토어 보기에 대한 products 쿼리가 다중 사이트 배포에서 특정 웹 사이트의 루트 범주에 있는 범주만 반환합니다. 이전에는 쿼리가 다른 웹 사이트의 루트 범주에서 범주를 반환했습니다. GitHub-34570
  • 이제 products 쿼리가 제공된 범주 ID의 하위 범주만 반환합니다. 이전에는 모든 카테고리를 반환했습니다. GitHub-35220
  • gift_message 개체가 응답에 지정되었지만 선물 메시지가 없는 경우 customerOrders 쿼리가 예상대로 응답합니다. 이전에는 쿼리에서 Can't load gift message for order is returned 메시지를 반환했습니다. GitHub-28957
  • products 쿼리가 다른 저장소에서 범주를 반환하도록 한 catalog_category_product 인덱서의 버그가 수정되었습니다. GitHub-31253
  • 이제 고객 토큰을 생성한 후 generateCustomerToken 돌연변이가 예상대로 customer_log에 항목을 만듭니다. GitHub-33378

Google Analytics

  • Google 태그 모듈이 2023년 7월 Google Analytics 4로의 전환을 지원하는 코드 베이스에 추가되었습니다. 현재 Google Universal Analytics 속성에서 새 데이터를 사용하고 수집할 수 있지만 Google Universal은 2023년 7월에 사용이 종료됩니다. GitHub-35204, GitHub-35376

이미지

  • 제품 세부 사항 페이지의 이미지가 더 이상 깜박이지 않고 예상대로 중앙에 이미지가 유지됩니다. 이전에는 제품 세부 사항 페이지에서 이미지 로드를 완료한 후 이미지가 아래쪽으로 가시적으로 이동했습니다.

가져오기/내보내기

  • CSV 파일을 다시 생성하기 전에 관리자로부터 교차 판매 제품을 삭제한 후 내보내기 CSV에서 관련, 상향 판매 및 교차 판매 제품 위치가 이제 올바릅니다. 이전에는 크로스셀 제품이 제거된 후 크로스셀 제품 위치가 다시 계산되지 않았고 제품 위치 순서가 올바르지 않았습니다.
  • 이제 Magento Open Source은 보고서를 내보낼 때 열을 필터링하기 전에 사용자 지정 보기를 확인합니다. 이전에는 내보낸 보고서가 사용자 정의 보기를 고려하지 않았으며 내보낸 열이 올바르지 않았습니다.
  • 이제 Magento Open Source이 긴 파일 이름의 이미지를 성공적으로 가져옵니다. 이전에는 applicationOpen Source에서 이미지를 가져오지 않았으므로 다음 오류가 발생했습니다. Imported resource (image) could not be downloaded from external resource due to timeout or access permissions in row(s):.
  • 이제 예약된 내보내기 필터에서 범주 ID 속성을 사용할 수 있습니다.
  • 물음표(?)가 포함된 번들 제품 populateExistingOptions 메서드 내의 쿼리 빌더가 개선되었으므로 이제 옵션 제목을 성공적으로 가져올 수 있습니다. 옵션 제목도 올바르게 표시됩니다. 이전에는 초기 가져오기 이후 연속적인 가져오기로 인해 잘못된 동작이 발생하고 옵션이 두 배로 늘어났습니다. 쇼핑객도 장바구니에 제품을 추가할 수 없습니다.
  • 가져오는 동안 카테고리 이름에 대한 유효성 검사를 추가했습니다. 이전에는 applicationOpen Source에서 범주 이름을 확인하지 않았으므로 범주 이름이 255자를 초과할 때 오류가 발생했습니다.
  • catalog_url_rewrite_product_category 테이블의 기존 레코드는 이제 새 레코드를 삽입하기 전에 삭제됩니다. 이전에는 다중 스토어 제품을 가져오는 동안 SQLSTATE[23000]: Integrity constraint violation 오류가 발생했습니다. GitHub-34210

인프라

  • 사용되지 않는 컨텍스트 메뉴 플러그인이 플러그인 목록에서 제거되었습니다.
  • TinyMCE에서 도구 모음에 대한 delayedRender 논리를 도입한 결과 페이지 빌더 모듈의 TinyMCE 편집기 도구 모음 관련 논리를 업데이트했습니다.
  • 경합 조건은 더 이상 contentUpdated 이벤트 수신기 만들기를 방해하지 않습니다. GitHub-32068
  • 이제 getTypeID 함수가 제품 ID가 아닌 제품 유형 ID를 반환합니다. GitHub-35458
  • vendor/magento/module-theme/view/base/requirejs-config.js에서 jQuery UI 슬라이더 및 SelectMenu 매핑이 수정되었습니다.

  • 이제 sales_order_state_change_before에 배치된 관찰자가 주문 개체에서 데이터 검색을 지원합니다. sales_order_state_change_before event 인수가 업데이트되었습니다. GitHub-26789

  • indexer:reset이(가) $indexer->invalidate()에 호출하도록 리팩터링되었습니다. GitHub-34988
  • 이제 Tailwind UI와 같은 추가 구성 요소의 사용을 지원하는 htmlClass 특성 값에 콜론 기호를 사용할 수 있습니다. GitHub-34430

로깅

  • 이제 고객, 고객 주소 및 주문 작업이 관리 작업 보고서에 올바르게 기록됩니다. 이전에는 postDispatch 처리기가 구성 설정에 지정되지 않은 경우 applicationOpen Source에서 작업을 기록하지 않았습니다.

MTF

작업 그룹

다음 테스트에서는 반복 작업이 조치 그룹으로 대체되었습니다.

AdminConfigurableProductChildrenOutOfStockTest GitHub-32378
AdminCreateStoreViewTest GitHub-34631

새 테스트

AdminUnlockAdminUserEntityTest GitHub-34836

StorefrontNewsletterSubscriptionWithEnabledNeedToConfirmConfigTest GitHub-33344

리팩터링된 테스트

AdminCancelTheCreatedOrderWithCashOnDeliveryPaymentMethodTest GitHub-33692

뉴스레터

  • 로그인한 고객은 더 이상 관리자 > 마케팅 > 뉴스레터 구독자 ​에서 게스트로 표시되지 않습니다.
  • 이제 고객이 기본이 아닌 스토어에 할당되어 책임자로부터 구독 또는 구독 취소한 경우 뉴스레터 구독 확인 이메일의 보낸 사람 필드에 올바른 스토어 특정 이메일 주소가 있습니다. 이전에는 고객이 보낸 사람 헤더에 기본 전자 메일이 포함된 전자 메일을 받았습니다. GitHub-34963
  • 이제 뉴스레터 이메일 템플릿의 구독 취소 URL이 예상대로 작동합니다. GitHub-33310

주문

  • 이제 주문이 편집된 후 게스트 고객 세부 정보가 정상적으로 저장되었습니다. 이전에는 customer_firstnamecustomer_lastname, x_forwarded_for을(를) 포함하여 일부 고객 세부 정보가 손실되었습니다.
  • 제품 또는 글로벌 설정 수준에서 십진수 수량 ​을(를) 사용하지 않도록 설정한 경우 판매자는 더 이상 십진수 총 수량을 포함하는 대변 메모를 만들 수 없습니다. 이전에는, 가맹점이 적용되지 않는 십진수 총 수량에 대해 대변 메모를 만들 수 있었습니다.
  • 이제 환경 설정에 설정된 시간대가 로컬 컴퓨터에 설정된 시간대와 다를 경우 날짜별 필터링이 송장, 선적, 대변 메모, CMS 페이지 및 CMS 블록 그리드에 대해 제대로 작동합니다. 이전에는 날짜를 잘못 구문 분석하고 필터링된 결과에 설정된 날짜 범위를 벗어나는 데이터가 포함되었습니다.
  • Magento Open Source은 관리자 계정 편집 페이지에서 고객에게 할당된 기본 이메일 주소를 변경할 때 더 이상 주문에 할당된 사용자 정의 이메일 주소를 변경하지 않습니다. 이전에는 고객의 기본 이메일 주소를 편집하면 해당 고객에 대해 생성된 모든 주문에 새 이메일 주소가 할당되었습니다. GitHub-34397
  • 이제 Magento Open Source은 PHP 7.4를 실행하는 배포의 신용 메모 표 페이지에 요청된 저장소의 레코드를 표시합니다. 이전에는, 응용 프로그램 열기 Source에서 대변 메모를 만들고 보려고 하면 다음 오류가 발생합니다. The store that was requested wasn't found. Verify the store and try again.
  • 이제 Magento Open Source은 이름 앞에 숫자가 붙은 저장소 보기에서 생성된 주문에 대한 대변 메모를 대변 메모 그리드 페이지에 표시합니다. 이전에는 applicationOpen Source에 오류 The store that was requested wasn't found. Verify the store and try again. Exception in /var/www/html/vendor/magento/module-store/Model/StoreRepository.php:75이(가) 표시되었습니다. GitHub-35122
  • 이제 Magento Open Source은 관리자 및 상점 송장 페이지 합계에 무료 배송 비용(0)을 표시합니다. 이전에는 주문의 배송이 0일 때 Source 개설 애플리케이션에서 송장 페이지의 배송 총계에 배송 금액을 표시하지 않았습니다.
  • sales_order 테이블의 increment_id 열이 증가했습니다. 이전에는 sales_order.increment_id이(가) 50자로 가정되어 increment_id의 처음 32자만 저장되었습니다. GitHub-34521

결제 방법

  • 이제 관리자는 PayPal PayflowPro 결제 방법을 사용하여 관리자에게 주문할 수 있습니다. 이전에는 applicationOpen Source에 다음 오류가 표시되었습니다. No such entity with cartId = 0.
  • 이제 Venmo, PayPal Later 또는 PayPal로 결제할 때 체크아웃 워크플로의 결제 검토 페이지에 올바른 결제 방법 이름이 표시됩니다.
  • cart 쿼리가 더 이상 무료 주문에 대한 모든 활성 결제 방법을 반환하지 않습니다. GitHub-34036

Braintree

  • 가맹점은 이제 Braintree을 통해 Apple 페이로 결제한 주문의 일부 환불을 제출할 수 있습니다. 이는 Magento Open Source 2.4.4에서 알려진 문제입니다.

PayPal

  • 이제 Magento Open Source에 PayPal로 지불한 게스트 주문에 올바른 고객 이름이 표시됩니다. 이전에는 고객 이름이 게스트로 표시되었습니다.
  • createPaypalExpressToken 돌연변이에 대한 해결자가 use_paypal_credit 입력 필드에 지정된 값을 올바르게 사용하도록 업데이트되었습니다. 이전에는 잘못된 paypal_credit 필드를 사용하려고 했습니다. GitHub-35180

성능

  • 구성 가능한 제품의 관련 제품 데이터 캐시에 대한 TTL(만료 날짜)을 추가하여 Redis 캐시 관리를 개선했습니다. 이전에는 Redis 키 제거 정책이 휘발성 제거 정책으로 구성된 경우 TTL 값이 누락되어 이러한 캐시가 제거되지 않았습니다.
  • Grid Filter Condition Type 고객/고객 주소 특성은 특성 필터가 데이터베이스의 특성 값에 대해 일치하는 방식을 제어합니다. 옵션에는 Partial Match, Prefix MatchFull Match이(가) 있습니다.
  • 카탈로그 검색 전체 텍스트 인덱서가 스토어 루프 외부에 재배치되어 색인 재지정이 간소화되었습니다. GitHub-33984
  • 루프에서 array_merge 문제를 해결했습니다. GitHub-33929

가격 책정

  • 기본 범위에 값이 없지만 스토어 뷰 수준에서 정의된 가격 속성이 이제 제대로 인덱싱됩니다. 이전에는 EAV 테이블에서 가격 속성 값을 검색하는 SQL 표현식에서 기본 범위에 값이 정의되지 않은 시나리오를 고려하지 않았습니다.
  • 이제 제품 세부 사항 페이지에 나열된 가격은 선택한 수량별로 다른 계층 가격의 경우 체크아웃 워크플로우에 나열된 가격과 동일합니다(예: 2개 품목 대 5개 품목 구매에 따라 가격이 다른 제품). 기존에는 체크아웃 가격이 제품 수량이 가장 적은 가격을 반영했다.

ReCAPT차

  • 이제 ReCaptcha가 완전히 로드될 때까지 로그인 및 계정 만들기 페이지의 제출 단추가 비활성화됩니다.

역할

  • 이제 역할 리소스 탭에서 리소스 액세스를 사용자 지정(으)로 설정하면 스토어 > 구성 > 서비스 페이지에 예상대로 Magento Open Source 웹 API 정보가 표시됩니다. GitHub-35506

검색 search-heading

  • 레이어 탐색에서 색상 견본별로 제품을 필터링하면 수정 후 제품에 대한 올바른 이미지가 표시됩니다.
  • int이(가) 검색 가능한 백엔드 type 특성으로 구성된 경우 Elasticsearch 쿼리가 예상대로 작동합니다. 이전에는 applicationOpen Source에서 Elasticsearch\Common\Exceptions\BadRequest400Exception 예외를 throw했습니다.
  • 이제 Elasticsearch 쿼리에서 일치하는 최소 용어 매개 변수와 함께 검색 동의어를 사용할 수 있습니다. 이전에는 설정에 이 매개 변수를 지정하고 특정 키워드에 대한 검색어를 추가한 경우 검색 결과가 반환되지 않았습니다.
  • 이제 Magento Open Source에서 검색 제안 및 각 제안에 대한 결과 개수 표시 설정이 활성화된 배포의 상점 앞에 정확한 검색 결과 제안 개수를 표시합니다. 이전에는 키워드 옆에 표시된 수가 0이었습니다.
  • 이제 카탈로그 페이지에서 사용자 지정 특성별로 정렬된 제품이 예상 순서로 표시됩니다. 이전에는 제품이 속성에 추가되는 순서를 반영하는 속성 옵션 값 ID로 정렬되었습니다. GitHub-33810
  • 이제 레이어 탐색에서 색상 견본별로 제품을 필터링하면 올바른 제품 이미지가 표시됩니다. 이전에는 계층화된 탐색 PageCache 키에 구성 가능한 제품에 대한 필터 매개 변수가 포함되어 있지 않았습니다.
  • catalogsearch/advanced/result에서 PHP 오류가 수정되었습니다. catalogsearch/advanced/index페이지. 이전에는 고급 검색 문자열 Warning: trim() expects parameter 1 to be string, array given | magento/module-catalog-search에서 배열이 전달될 때 Magento Open Source이 이 오류를 표시했습니다. GitHub-33586

배송

  • 허용된 배송 방법을 선택하지 않은 경우 UPS 배송 비율을 로드할 때 Magento Open Source에서 더 이상 오류가 발생하지 않습니다. 이전에는 이러한 조건에서 구매자가 체크아웃 워크플로에 배송 주소를 입력하면 다른 배송 방법이 표시되지 않고 Magento Open Source이 상점 첫 화면에 오류를 표시했습니다. GitHub-34411
  • 가상 제품 가격은 이제 계산표 요율 배송 금액에서 제외됩니다. 이전에는 이러한 제품의 배송비가 올바르게 계산되지 않았습니다.GitHub-35185
  • 0 가격이 적용된 테이블 단가 배송 요금은 이제 할인 쿠폰이 적용된 주문에 대한 체크아웃 워크플로우 주문 요약 블록에 올바르게 표시됩니다. 이전에는 배송 방법이 표시되지 않았습니다.

세금

  • 이제 장바구니에 있는 제품에 대한 고정 제품 세금(FPT)이 올바르게 표시됩니다. 이전에는 장바구니에 있는 여러 제품에 고정 제품 세금(FPT) ​이 있고 FPT에 세금 적용 ​이 활성화된 경우 모든 FPT가 장바구니의 마지막 제품에 할당되고 다른 제품에 대해 재설정되었습니다.
  • 이제 체크아웃 워크플로우의 주문 요약 섹션에 대한 고정 제품 세금(FPT) 합계가 올바르게 계산됩니다.
  • 이제 Magento Open Source은 단순 제품의 수량이 변경된 후 제품 페이지의 단순 제품에 대한 세금 계층 가격을 예상대로 업데이트합니다.
  • 드롭다운 목록에서 선택한 국가가 EU 국가 목록에 있는지 확인하기 위해 저장소 구성 페이지에 유효성 검사가 추가되었습니다. VAT 번호 유효성 검사 단추가 이제 EU 국가에서만 표시됩니다. 이전에는 영국을 포함한 모든 국가에서 버튼이 표시되었습니다.
  • 카탈로그에 제품 가격 표시 ​가 세금 제외 또는 세금 포함 및 제외 ​로 설정된 경우 계층 가격이 올바르게 계산됩니다. 이전에는 제품 세부 사항 페이지에 설정에도 불구하고 세금이 포함된 계층 가격이 표시되었습니다.
  • 이제 포르투갈어 로케일을 사용하는 상점 내 유효한 주소의 주문에 대해 세금이 올바르게 적용됩니다. GitHub-34271
  • subtotal_with_discount_excluding_tax을(를) 반환할 때 cart 쿼리에 더 이상 세금이 포함되지 않습니다. GitHub-33905
  • 주문 데이터(GET /V1/orders/)에 대한 웹 API 요청은 더 이상 행 합계에 대해 음수 값을 반환하지 않습니다.

테스트

  • AWS Elasticsearch 구성으로 실행할 때 Magento.GraphQl.CatalogGraphQl.ProductSearchTest.testSearchSuggestions에 대한 오류가 수정되었습니다.
  • testCreateProductOnStoreLevel 통합 테스트로 인해 더 이상 데이터베이스에 중첩 트랜잭션이 발생하지 않습니다.

  • 제품 이미지가 PHP 8.1에서 설정되지 않은 경우 친구 보내기 기능에 대해 WebAPI 테스트를 실행할 때 다음 예외가 더 이상 발생하지 않습니다. exception main.ERROR: /var/www/html/lib/internal/Magento/Framework/DataObject.php:131 strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated. GitHub-34864

번역 및 로케일

  • 이제 인라인 번역 도구를 사용하여 동일한 요소를 두 번 더 편집할 수 있습니다. 이전에는 이 도구를 사용하여 수행한 첫 번째 변경 사항만 포함되었습니다.
  • 관리자 텍스트나 레이블을 편집할 때 저장소 보기 선택기가 더 이상 번역 창을 차단하지 않습니다. 이제 번역 창에서 이러한 기능을 편집할 수 있으며 제출 ​을 클릭하면 인터페이스에 이러한 변경 사항이 표시됩니다.
  • 이제 포르투갈어(브라질) 및 프랑스어 로케일의 관리 날짜-시간 형식이 유효합니다.
  • 해당 악센트가 포함된 이름이나 성에 대해 고객 계정을 만들 수 있도록 이름 유효성 검사기에 그레이브 악센트 [`] 문자를 추가했습니다.
  • 이제 제품 세부 정보 페이지의 장바구니에 추가 단추의 텍스트는 연결된 로케일에 지정된 언어로 번역된 상태로 유지됩니다. 이제 번역 파일은 translate_strategy=embedded할 때 영역, 테마 및 로케일에 따라 해당 JavaScript 파일로 변환됩니다. 이전에는 제품을 장바구니에 추가한 후 텍스트가 영어로 되돌아갔습니다.
  • 이제 검색 동의어는 할당된 스토어 범위를 준수합니다. 이전에는 특정 스토어에 할당된 동의어를 다른 스토어에서 검색할 수 있었습니다.
  • 필리핀(필리핀) 로케일 문제가 해결되었습니다. GitHub-33996

UI

  • 카탈로그 > 제품 그리드의 긴 제품 이름이 이제 한 줄에 표시되지 않고 단어 단위로 줄바꿈됩니다.
  • 이제 최소 및 최대 생일 범위가 올바른 타임스탬프로 저장된 다음 올바른 타임스탬프에서 올바른 날짜 형식으로 변환됩니다.
  • magento.com을(를) 사용할 수 없으므로 관리자 로그인 중에 더 이상 성능 문제가 발생하지 않습니다. 릴리스 알림 가져오기 요청에 대한 시간 제한이 추가되었습니다.
  • 이제 관리 주문, 고객 및 제품 격자 필터의 결과가 Chrome 브라우저에 표시될 때 예상대로 유지됩니다.
  • 이제 Magento_LoginAsCustomerAdminUi이(가) 활성화되고 Store View To Login To ​이(가) 수동 선택으로 설정되면 관리자에서 고객을 만들 수 있습니다. 이전에는 applicationOpen Source에서 다음 오류가 발생했습니다. (Magento\Framework\Exception\LocalizedException): Unable to get Customer ID. GitHub-33096
  • 쇼핑객이 제품 이미지 갤러리의 마지막 썸네일 이미지에 도달하면 이제 예상대로 다음 화살표가 비활성화됩니다.
  • 이제 키워드로 검색 입력 필드에 카탈로그 > 제품 페이지의 자리 표시자 대신 aria-label 요소가 있습니다.
  • 이제 관리자 바닥글의 개인정보 처리방침 링크가 새 Adobe 개인정보 처리방침으로 연결됩니다.
  • 이제 관리자는 프로덕션 모드에서 JavaScript 번들링을 사용할 수 있을 때 관리 메뉴 옵션에 액세스할 수 있습니다. GitHub-35325
  • 이제 관리자는 현재 사용자의 만료 날짜를 2038보다 높게 설정하고 사용자를 저장할 수 있습니다. 이전에는 로그아웃한 후 만료일이 변경된 사용자가 다시 로그인할 수 없었습니다.
  • 이제 관리자가 관리자 Store > 특성 > 고객 주소 ​에서 주소만 과도하게 저장하려고 하면 Magento Open Source에 정보 오류 메시지가 표시됩니다. 이제 관리자는 추가 주소 정보를 삭제하고 주소를 저장할 수 있습니다. 이전에는 applicationOpen Source에서 추가 줄을 커밋했지만 데이터는 저장하지 않았습니다.
  • 데이터베이스 및 로컬 저장소의 제품 목록 보기 구성이 업데이트되었습니다. 이제 사용자 지정 그리드 보기는 페이지 다시 로드 및 보기 변경 중 저장됩니다.
  • 이제 웹 사이트 제한이 활성화되면 스토어 보기 간에 전환할 수 있습니다. 이전에는 스토어 보기 전환기에 문제가 발생하여 스토어 보기를 전환할 수 없었습니다.
  • 이제 favicon 업로드 양식이 .ico 파일 형식을 지원합니다. 이전에는 관리자에서 이 확장 유형의 파비콘 파일을 업로드하려고 할 때 Source 열기 응용 프로그램에 다음 오류가 표시되었습니다. Warning: imagecreatefromstring(): one parameter to a memory allocation multiplication is negative or zero, failing operation gracefully in /var/www/html/vendor/magento/module-media-storage/Model/File/Validator/Image.php on line 64. GitHub-34858
  • 관리 그리드의 드롭다운 선택 메뉴 관련 표시 문제가 수정되었습니다. GitHub-35386

URL 재작성

  • 특정 스토어 뷰의 특성 코드 가시성 상태가 개별적으로 표시되지 않음(으)로 변경된 후 특정 스토어 뷰의 제품 URL만 url_rewrite 테이블 및 관리에서 제거됩니다. 이전에는 url_rewrite 테이블에서 제품에 대한 모든 URL이 제거되었습니다. GitHub-34937

비디오

  • 이제 페이지 빌더를 사용하여 YouTube URL 매개 변수를 사용하여 새 비디오를 추가할 수 있습니다. 이전에는 이러한 매개 변수가 URL에서 자동으로 제거되었습니다.
  • 이제 CSP가 restrict mode(으)로 설정된 경우 banner 요소에서 백그라운드에서 Vimeo 비디오를 실행하도록 설정할 수 있습니다. 이전에는 applicationOpen Source에서 JavaScript 오류가 발생했습니다.

웹 API 프레임워크

  • 동시 요청에 의해 업데이트하는 동안 경합 조건을 방지하기 위해 주문에 대해 뮤텍스가 구현되었습니다. 이전에는 동시 REST API 호출 중에 경합 상태가 발생하면 관리 항목 순서 테이블의 배송 상태 정보가 덮어쓰기되었습니다.
  • 이제 REST API를 통해 특정 스토어 보기에서 제품을 업데이트할 때 페이로드에 명시적으로 정의되지 않는 한 제품 이미지 역할 상속이 유지됩니다.
  • 이제 Swagger 스키마(/rest/schema)에서 고유한 작업 ID를 사용합니다.
  • POST /V1/salesRules/ 끝점을 통해 만든 장바구니 가격 규칙은 이제 상태를 비활성화에서 활성화로 변경한 후에도 기존 쿠폰 코드 값을 유지합니다. GitHub-35298
  • 이제 POST /V1/salesRules/ 끝점을 통해 만든 장바구니 가격 규칙에 유효한 from_dateto_date 값이 포함되어 있습니다. GitHub-35265
  • 이제 CartItemInterfacecustomizable_options이(가) 포함됩니다. GitHub-31180
  • Magento_ReCaptchaWebapiRest 모듈이 활성화되면 이제 REST API 대량 PUT 및 DELETE 요청이 예상대로 작동합니다. GitHub-35348
  • 이제 Bulk Rest API는 구성 가능한 제품에 대해 bySku 옵션과 함께 작동합니다. 이전에는 500 오류가 반환되었습니다.
  • POST /V1/products/special-price 끝점을 사용하여 새 특별 가격 일정을 만드는 것이 이제 예상대로 작동합니다. 이전에는 끝점이 다음 오류를 반환했습니다. Future Update already exists in this time range. Set a different range and try again.
  • 이제 /V1/products/base-prices 끝점이 카탈로그 가격 모드 - 웹 사이트 ​에서 예상대로 작동합니다. GitHub-30132

위시리스트

  • 이제 위시리스트 페이지에서 품목 수량을 업데이트하면 제품 세부 사항 페이지의 수량이 예상대로 업데이트됩니다. 이제 Source 열기 응용 프로그램이 제품 URL에서 업데이트된 값을 선택하고 위시리스트 자체에서 제품 세부 사항 페이지의 qty 필드를 채웁니다.

알려진 문제

문제: Braintree이 활성화된 경우 관리자는 관리자로부터 고객에 대한 주문 또는 재주문을 만들 수 없습니다. 관리자가 순서 또는 순서 바꾸기 ​를 클릭하면 Adobe Commerce에서 순서를 제출하지 않고 system.log에 다음 오류가 표시됩니다. report.CRITICAL: Error: Call to a member function getMethodInstance() on null in /app/vendor/paypal/module-braintree-core/Block/Form.php:174. 해결 방법: BUNDLE-3137-composer.patch을(를) 사용할 수 있습니다. 이 문제에 대한 논의와 패치에 대한 액세스는 Braintree 결제를 사용할 때 관리자가 주문/순서를 만들 수 없습니다 기술 자료 문서를 참조하십시오. 수정 사항이 Adobe Commerce 2.4.5-p1에도 포함됩니다.

커뮤니티 기여

더 넓은 Magento Open Source 커뮤니티에 감사하며 이번 릴리스에 대한 기여를 인정하고자 합니다.

커뮤니티 엔지니어링 팀 Magento 참가자는 월별, 분기별, 연도별로 상위 기여 개인 및 파트너 목록을 유지 관리합니다. 해당 기여자 페이지에서 GitHub의 병합된 PR에 대한 링크를 따라갈 수 있습니다.

파트너 기여

다음 표에는 파트너가 수행한 기여가 요약되어 있습니다. 이 표에는 끌어오기 요청에 기여한 파트너, 외부 끌어오기 요청 번호 및 이와 연결된 GitHub 문제 번호(사용 가능한 경우)가 나열됩니다.

개인 기여자 기여

다음 표는 커뮤니티 구성원의 기여를 식별합니다. 이 표에는 끌어오기 요청에 기여한 커뮤니티 구성원, 외부 끌어오기 요청 번호 및 이와 연결된 GitHub 문제 번호(사용 가능한 경우)가 나열됩니다.

시스템 요구 사항

우리의 기술 스택은 PHP와 MySQL을 기반으로 구축됩니다. 자세한 내용은 시스템 요구 사항을 참조하십시오.

설치 및 업그레이드 지침

작성기를 사용하여 Magento Open Source 2.4.5를 설치할 수 있습니다.

recommendation-more-help
1d4eef6c-fef1-4e61-85eb-b58d7b9ac29f