Magento Open Source 2.4.2 릴리스 노트

Magento Open Source 2.4.2에는 향상된 성능 및 보안과 더불어 대폭 향상된 플랫폼이 도입되었습니다. 향상된 보안 기능에는 SameSite 모든 쿠키에 대한 속성. 이제 Elasticsearch 7.9.x 및 Redis 6.x가 지원됩니다.

이 릴리스에는 코어 코드에 대한 280개 이상의 새로운 수정 사항과 35개의 보안 개선 사항이 포함되어 있습니다. 커뮤니티 회원이 290개에 달하는 GitHub 문제의 해결을 포함합니다. 이러한 커뮤니티 기여도는 핵심 코드의 사소한 정리부터 GraphQL의 중요한 개선 사항에 이르기까지 다양합니다.

2.4.1에서 식별된 모든 알려진 문제는 이 릴리스에서 해결되었습니다.

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

적용 AC-3022.patch 운송 업체로 DHL을 계속 제공하다

DHL은 스키마 버전 6.2를 도입했으며 조만간 스키마 버전 6.0을 더 이상 사용하지 않을 예정입니다. DHL 통합을 지원하는 Adobe Commerce 2.4.4 및 이전 버전은 버전 6.0만 지원합니다. 이러한 릴리스를 배포하는 판매자는 AC-3022.patch 그들의 가장 빠른 편의에 따라 DHL을 운송업체로 계속 제공할 수 있습니다. 다음을 참조하십시오. DHL을 배송 운송업체로 계속 제공하기 위해 패치 적용 패치 다운로드 및 설치에 대한 자세한 내용은 기술 자료 문서를 참조하십시오.

보안 패치 사용 가능

판매자는 이제 전체 분기별 릴리스에서 제공하는 수백 가지의 기능 수정 사항 및 개선 사항을 적용하지 않고 시간에 민감한 보안 수정 사항을 설치할 수 있습니다(예: 2.4.1-p1). 패치 2.4.0.12(Composer 패키지 2.4.1-p1)는 이전 분기 릴리스인 2.4.1에서 식별된 취약점에 대한 수정 사항을 제공하는 보안 패치입니다. 2.4.1 릴리스에 적용된 모든 핫픽스는 이 보안 패치에 포함되어 있습니다. (A) 핫픽스 는 특정 문제 또는 버그를 해결하는 릴리스 버전에 대한 수정 사항을 제공합니다.)

보안 패치에 대한 일반적인 정보는 다음을 참조하십시오. 새로운 보안 패치 릴리스 소개. 보안 패치(패치 2.4.1-p1 포함) 다운로드 및 적용에 대한 지침은 다음을 참조하십시오. 온프레미스 설치 빠른 시작. 보안 패치에는 전체 패치에 포함된 추가 보안 개선 사항이 아닌 보안 버그 수정 사항만 포함됩니다.

기타 릴리스 정보

이러한 기능에 대한 코드는 분기별 릴리스와 함께 번들로 제공되지만 이러한 프로젝트 중 일부(예: Progressive Web Application(PWA) Studio)도 독립적으로 릴리스됩니다. 이러한 프로젝트에 대한 버그 수정은 각 프로젝트에 대한 설명서에서 사용할 수 있는 별도의 프로젝트별 릴리스 정보에 설명되어 있습니다.

강조 표시

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

강화된 보안 기능

이 릴리스에는 35개 이상의 보안 수정 사항 및 플랫폼 보안 개선 사항이 포함되어 있습니다. 모든 보안 수정 사항이 2.4.1-p1 및 2.3.6-p1로 백포트되었습니다.

RCE(원격 코드 실행) 및 XSS(교차 사이트 스크립팅) 취약점을 해결하는 데 도움이 되는 35가지 이상의 보안 개선 사항

현재까지 이러한 문제와 관련된 확인된 공격은 발생하지 않았습니다. 그러나 특정 취약성은 고객 정보에 액세스하거나 관리자 세션을 인수하는 데 잠재적으로 악용될 수 있습니다. 이러한 문제의 대부분은 공격자가 먼저 관리자에 대한 액세스 권한을 얻어야 합니다. 따라서 IP 허용 목록에 추가, 이중 인증, VPN 사용, 대신 고유한 위치 사용 /admin, 그리고 암호 위생 준수. 다음을 참조하십시오 Adobe 보안 공지 이러한 고정 문제에 대한 토론을 제공합니다.

추가적인 보안 개선 사항

이번 릴리스의 보안 개선 사항은 다음과 같습니다.

  • 이제 모든 핵심 쿠키가 SameSite 특성.

  • 이제 사용자가 제품 및 카테고리 설명 필드에 값을 저장하려고 할 때 애플리케이션에서 잠재적인 악성 콘텐츠를 식별하는 메시지를 표시합니다.

  • 구성 요소 전반에 걸친 파일 시스템 작업은 악의적인 업로드를 방지하기 위해 표준화되고 엄격해졌습니다.

  • 핵심 CSP(콘텐츠 보안 정책) 위반이 수정되었습니다.

NOTE
2.3.2 릴리스부터 외부 파티가 보고하는 각 보안 버그와 함께 인덱싱된 CVE(Common Vulnerabilities and Exposes) 번호를 할당하고 게시합니다. 이를 통해 사용자는 배포에서 해결되지 않은 취약점을 보다 쉽게 식별할 수 있습니다. 다음에서 CVE 식별자에 대해 자세히 알아볼 수 있습니다. CVE.

인프라 개선 사항

이 릴리스에는 프레임워크의 품질을 개선하는 핵심 품질에 대한 개선 사항이 포함되어 있으며 고객 계정, 카탈로그, CMS, OMS, 가져오기/내보내기, 프로모션 및 타기팅, 장바구니와 체크아웃의 기능 영역이 있습니다.

플랫폼 개선 사항

  • 이제 Elasticsearch 7.9.x가 지원됩니다. Elasticsearch 7.9.x를 실행하는 것이 좋지만 버전 2.4.x는 Elasticsearch 7.4.x와 호환됩니다.

  • 2.4.2는 다음을 사용하여 테스트했습니다. 바니시 6.4. 버전 2.4.x는 Varnish 6.x와 호환됩니다.

  • 이제 Redis 6.x가 지원됩니다. 버전 2.4.x는 Redis 5.x와 호환됩니다.

  • 2.4.2는 이제 와 호환됩니다. Composer 2.x. 판매자는 Composer 2.x로 마이그레이션하는 것이 좋습니다. Composer 1.x를 사용하여 이 릴리스를 설치할 수 있지만 Composer 1.x는 곧 사용 수명이 종료됩니다. Composer 2.x 기능에 대한 개요는 를 참조하십시오. 이제 Composer 2.0을 사용할 수 있습니다!

분할 데이터베이스를 사용하도록 설치를 구성하는 기능은 이 릴리스에서 더 이상 사용되지 않습니다. 현재 분할 데이터베이스를 사용하는 판매자는 단일 데이터베이스로 되돌리거나 마이그레이션하거나 다른 방법을 사용할 계획을 시작해야 합니다. 다음을 참조하십시오. Magento Open Source의 분할 데이터베이스 기능 사용 중단 이 문제에 대한 개요는 DevBlog 게시물을 참조하십시오. 다음을 참조하십시오 분할 데이터베이스에서 단일 데이터베이스로 되돌리기 마이그레이션 지침을 참조하십시오.

성능 향상

이 릴리스에는 대규모 카탈로그를 사용하는 배포에 대한 API 성능 및 관리 응답 시간을 향상시키는 코드 개선 사항이 포함되어 있습니다. 다양한 확장성 개선을 통해 2.4.2는 기본적으로 이전 릴리스보다 최대 20배 더 큰 복잡한 카탈로그를 지원할 수 있습니다.

Adobe Stock 통합

이 릴리스에는 Adobe Stock 통합 v2.1.1이 포함되어 있습니다.

GraphQL

이번 릴리스에는 다음 기능에 대한 GraphQL 적용 범위가 추가됩니다.

  • 에 대한 지원이 추가됨 비교 목록. 쇼핑객은 만들기삭제 비교 목록 및 추가제거 비교 목록에 있는 항목입니다. 또한 비교 목록을 게스트로 생성하는 쇼핑객은 고객으로 로그인할 수 있으며 유지 비교 목록.

  • 을(를) 추가함 generateCustomerTokenAsAdmin 돌연변이 및 업데이트 Customer 원격 구매 지원을 지원할 수 있습니다.

  • 언어, 장바구니 및 통화 변경과 같은 작업을 지원하기 위해 스토어 전체에 로컬라이제이션 지원이 추가되었습니다.

  • GraphQL의 조합에 대한 지원이 추가되었습니다. GitHub-29425

  • 변형이 많은 구성 가능한 제품에 대해 제품 데이터 검색을 최적화하도록 GraphQL 스키마가 향상되었습니다.

  • 정수 유형 개체 ID는 더 이상 사용되지 않습니다. uid 유형 ID의 속성입니다.

  • 을(를) 추가함 staging 속성 ProductInterfaceCategoryInterface 을 클릭하여 제품이 준비되었는지 확인하고 연결된 캠페인 정보를 볼 수 있습니다.

다음을 참조하십시오. GraphQL 개발자 안내서 개선 사항에 대한 자세한 내용은 을 참조하십시오.

PWA Studio

이 PWA Studio 릴리스에는 다음이 포함됩니다.

  • 다국어화 및 현지화 Venia는 이제 여러 언어와 통화를 지원합니다.

  • 확장을 통해 코드 변경을 지원하도록 확장성 프레임워크를 개선했습니다.

  • 위시리스트, 저장된 결제, 주소록 및 주문 내역과 같은 내 계정 관련 기능에 대한 초기 구성 요소.

  • 다양한 성능 최적화 및 버그 수정.

개선 사항 및 버그 수정에 대한 자세한 내용은 을 참조하십시오. PWA Studio 릴리스. 다음을 참조하십시오 호환성 PWA Studio 버전 및 호환 버전 목록입니다.

미디어 갤러리

미디어 갤러리에 대한 새 역할 리소스. 이 릴리스에서는 판매자가 미디어 갤러리에 대해서만 관리자 액세스를 제한하고 다음 작업을 수행할 수 있는 사용자를 제어할 수 있는 기능을 제공합니다.

  • 콘텐츠에 미디어 자산 삽입

  • 에셋 업로드

  • 에셋 세부 정보 편집

  • 미디어 갤러리에서 에셋 삭제

  • 폴더 구조를 관리합니다.

콘텐츠의 웹에 최적화된 이미지. 이제 판매자가 웹에 최적화된 이미지 렌디션 고해상도 이미지 대신 컨텐츠가 표시됩니다. 원본 이미지는 미디어 갤러리에서 수정되지 않은 상태로 유지되며, 이미지가 콘텐츠에 삽입되면 이미지 렌디션이 동적으로 생성됩니다.

기능 테스트 프레임워크(MTF)

이제 MTF 3.2.1을 사용할 수 있습니다. 이 릴리스에는 테스트 및 테스트 세트 생성 모두에서 오류 허용 범위가 도입되었습니다. 추가 개선 사항 및 버그 수정에 대한 설명은 기능 테스트 프레임워크 변경 로그.

공급업체가 개발한 확장

이 릴리스의 기능 및 변경 사항에 대한 업데이트는 다음 문서를 참조하십시오.

AWS S3 지원 개선 사항

Amazon Simple Storage Service(AWS S3) 지원이 다음과 같은 지원을 포함하도록 개선되었습니다.

해결된 문제

2.4.2 코어 코드에서 수백 개의 문제를 해결했습니다.

설치, 업그레이드, 배포

  • 이제 판매자는 MySQL 8.x를 실행하는 오픈 소스 배포를 Commerce 배포로 성공적으로 업그레이드할 수 있습니다. 이전에는 다음과 같은 경우 애플리케이션에서 예외가 발생했습니다. AUTO_INCREMENT 값이 모든 테이블에 대한 초기 값으로 되돌림 row_id 업그레이드 중에 가 추가되었습니다.
  • 이제 실행 시 오류가 발생하면 패치를 만드는 데 사용된 경로를 식별하는 오류 메시지가 표시됩니다 bin/magento/setup:db:generate-patch. GitHub-27523
  • block_html, full_page, 및 layout 캐시는 이제 이후에 예상대로 비활성화됩니다. bin/magento/setup:upgrade 실행. GitHub-28186
  • 에서 필요한 최소 PHP 버전 bootstrap.php 이(가) 업데이트되었습니다. GitHub-30004
  • 이제 다음을 실행할 수 있습니다. bin/magento/setup:upgrade 샘플 데이터를 설치한 후. 이전에는 을 실행하려고 할 때 bin/magento/setup:upgrade, 응용 프로그램에 다음 오류가 표시됨: unable to apply data patch magento\catalogrulesampledata\setup\patch\data\installcatalogrulesampledata for module magento_catalogrulesampledata. 또한 응용 프로그램이 시스템 로그에 이 오류를 표시합니다. main.ERROR: Sample Data error: Unable to unserialize value. Error: Syntax error. GitHub-30685
  • 이제 예상대로 명령줄에서 YouTube API 키를 설정할 수 있습니다. 이전에는 실행하려고 할 때 응용 프로그램에서 이 오류를 반환했습니다 bin/magento config:sensitive:set catalog/product_video/youtube_api_key: There are no sensitive configurations to fill.
  • 이제 애플리케이션에서 다음을 수행합니다. maxMessages 에 정의된 값 queue_consumer.xml. 이전에는 응용 프로그램에서 배포 구성 값만 사용했습니다. GitHub-29522
  • 새 스토어에 대한 URL 생성은 이제 스토어가 를 사용하여 생성될 때 예상대로 작동합니다. bin/magento setup:config:import. 이전에는 프로덕션 환경에서 URL 재쓰기가 생성되지 않았습니다. GitHub-30025
  • 변경하려고 할 때 애플리케이션에서 더 이상 오류가 발생하지 않습니다 backend-frontname 사용 ssh Magento Open Source 설치 후 컨테이너. GitHub-26762
  • 을 실행할 때 이 질문이 더 이상 표시되지 않습니다 bin/magento setup:install 기존 데이터베이스에 접속하려면 Overwrite the existing configuration for db-ssl-verify?[Y/n]. GitHub-29612

Adobe Stock 통합

  • 읽기에 대한 지원이 추가됨 exif_image.png 또는 exif-image.jpeg 메타데이터. GitHub-1449
  • 미디어 갤러리의 기본 보기 책갈피를 클릭할 때 표시되는 콘텐츠는 더 이상 필터링되지 않습니다. 이전에는 기본 보기에 다음에서 적용된 필터가 포함되어 있었습니다. url-filter 응용 프로그램. GitHub-1813, GitHub-1789, GitHub-1780
  • 논리가 WYSIWYG OnInsert 컨트롤러에서 제거되었습니다(Magento\Cms\Controller\Adminhtml\Wysiwyg\Images\OnInsert::execute())을 추가하고 을(를) Model\Wysiwyg\Images\PrepareImage::execute() 모델. GitHub-1504
  • 영역 에뮬레이션이 media-content:sync 명령(\Magento\MediaContentSynchronization\Console\Command\Synchronize::execute). GitHub-1784

분석

  • 이제 고급 보고가 동일한 도메인의 여러 환경에서 예상대로 작동합니다. 이전에는 CSV 표준 RFC4180에서 요구하는 대로 큰따옴표가 다른 큰따옴표가 아닌 백슬래시로 이스케이프되므로 고급 보고로 생성된 CSV 파일이 실패했습니다.
  • 다음 analytics_collect_data 이제 기본 또는 기본이 아닌 포트를 사용하여 의 MySQL에 연결할 때 작업이 성공적으로 실행됩니다. env.php. 이전에는 analytics_collect_data 에서 기본이 아닌 포트를 사용했을 때 오류가 발생했습니다.
  • 에 의해 생성된 CSV 파일 analytics_collect_data 이제 제대로 이스케이프 처리되었습니다. 이전에는 이러한 파일이 올바른 이스케이프로 생성되지 않았으므로 인벤토리 보고서가 생성되지 않았습니다.

Braintree

  • 이제 구매자는 Apple Pay를 사용하여 가상 제품을 성공적으로 주문할 수 있습니다. 이전에는 애플리케이션에서 다음 오류가 발생했습니다. There are no shipping methods available for you right now. Please try again or use an alternative payment method.

  • 이제 기본 PayPal Express 체크아웃 결제 방법이 Braintree 신용카드 결제 방법과 함께 예상대로 작동합니다. 이전에는 응용 프로그램에서 PayPal 신용 카드 Braintree 결제 방법을 활성화한 경우의 단추.

번들 제품

  • 애플리케이션은 더 이상 고정 가격 번들 제품 하위 항목의 가격을 따옴표로 묶어 설정하지 않습니다.
  • 이제 번들 제품에 품절 제품이 포함된 경우 가격 정렬이 예상대로 작동합니다. 이전에는 내림차순으로 정렬하면 가격이 하락하는 순서로 상품을 표시하지 않았다.
  • 이제 여러 옵션이 있을 때 애플리케이션에서 번들 제품 옵션에 대해 기본 수량인 1을 자동으로 적용합니다. 기존에는 가맹점이 각 옵션에 기본 수량을 수동으로 지정해야 했다.
  • 이제 주문 송장 생성 페이지에 번들 제품에 대한 하위 제품이 예상대로 표시됩니다. GitHub-27350
  • 이제 사용자 지정 가격으로 번들 제품의 일부인 단순 제품을 재주문할 때 애플리케이션에서 올바른 제품 가격을 할당합니다. 이전에는 번들 제품에 대한 사용자 지정 가격을 설정하면 재주문 시 첨부된 간단한 제품에 대한 가격이 올바르지 않았습니다. GitHub-30343
  • 호출 POST /V1/order/{orderId}/ship 이제 번들 제품이 포함된 주문을 출하하면 예상대로 주문이 완료됨으로 표시됩니다. 이전에는 응용 프로그램에 다음과 같은 오류 메시지가 표시되었습니다. You can't create a shipment without products. GitHub-9762

장바구니 및 체크아웃

  • 이제 체크아웃 워크플로우의 배송 단계에서 사용자 지정 주소 속성이 있을 때 배송 방법 견적 도구가 예상대로 작동합니다. 이전에는 응용 프로그램에 다음과 같은 오류 메시지가 표시되었습니다. {"message":"Error occurred during \"custom_attributes\" processing. A custom attribute is specified with a missing attribute code. Verify the code and try again."} GitHub-27505
  • 이제 응용 프로그램에 You have no items in your shopping cart 쇼핑객이 장바구니에서 유일한 항목을 제거할 때 예상대로 미니 장바구니에 메시지가 표시됩니다. 이전에는 의 장바구니 데이터가 업데이트되지 않았습니다. checkout/cart/removeFailed 구매자가 단일 항목을 제거하고 애플리케이션에서 다음 메시지가 표시되었을 때: 1 product requires your attention.
  • 애플리케이션에서 적용 불가능한 운송 방법에 대한 주문의 운송 비용을 더 이상 표시하지 않습니다. 이전에는 체크아웃 워크플로우에서 적용 불가능한 배송 방법에 대한 가격이 0으로 표시되었습니다.
  • 이제 다음과 같은 경우에 고객의 기본 청구 주소가 선택됩니다. 제 청구서 주소와 배송 주소가 동일합니다 체크아웃 워크플로의 확인란은 선택 해제되어 있습니다.
  • 쇼핑객이 다른 도메인의 한 스토어에서 다른 스토어로 전환할 때 장바구니 콘텐츠가 더 이상 손실되지 않습니다.
  • 이제 구매자는 여러 배송 방법을 사용할 때 여러 주소로 체크아웃을 사용하여 주문을 성공적으로 완료할 수 있습니다. 이전에는 애플리케이션에서 다음 오류를 표시했습니다. There has been an error processing your request. GitHub-30197
  • 이제 쇼핑 카트에서 스토어 보기를 변경할 때 애플리케이션에서 체크아웃 워크플로우의 배송 페이지에 올바른 기본 국가가 표시됩니다.
  • 이제 게스트 쇼핑객이 로그인할 때 사후 로그아웃 암호를 재설정한 후 고객 세션을 정리할 때 애플리케이션에서 현재 세션을 제외합니다. 이전에는 쇼핑객이 비밀번호를 재설정할 때 애플리케이션에서 장바구니를 비웠습니다.
  • 이제 쇼핑객이 장바구니에서 스토어 보기를 변경할 때 애플리케이션에 스토어 보기에 대한 올바른 기본 국가가 표시됩니다. 이전에는 장바구니에서 스토어 보기를 변경할 때 기본 국가가 올바르지 않았습니다.
  • 에 대한 중복 호출 /rest/V1/guest-carts/cart_id/totals-information 장바구니의 끝점이 제거되어 장바구니 성능이 향상되었습니다. 이전에는 장바구니에 제품을 추가한 다음 장바구니를 볼 때 애플리케이션이 를 호출했습니다. collectAddressTotals 메서드를 여러 번 클릭합니다.
  • 응용 프로그램에 더 이상 지역 체크아웃 워크플로에서 다음과 같은 경우에 국가용 필드 국가에 대해 선택 사항인 경우 주 선택 허용 설정이 비활성화되었습니다. GitHub-30747
  • 관리자가 주문을 다시 정렬할 때 애플리케이션에서 더 이상 상점 첫 번째 체크아웃 워크플로에서 배송 주소를 반복하지 않습니다.
  • 의 설계 관련 문제 해결 AdminMediaGalleryInsertLargeImageFileSizeTest.
  • 의 모든 새 레코드 quote 이제 게스트용 테이블에 의 값이 1로 할당되었습니다. customer_is_guest field. 이전에는 장바구니에 제품을 추가한 각 새 게스트에 대해 레코드가에서 0이 할당되었습니다.quote.customer_is_guest 필드.
  • 다음 제출 체크아웃 워크플로우의 검토 및 결제 섹션에 있는 버튼이 내부로 이동되었습니다. <form id="purchaseorder-form"...></form>를 사용하면 JavaScript를 변경하지 않고도 암시적 양식 제출이 가능합니다. GitHub-27925
  • 응용 프로그램에 더 이상 지역 다음과 같은 경우 체크아웃 워크플로의 필드 국가에 대해 선택 사항인 경우 주 선택 허용 설정이 비활성화되었습니다. GitHub-30747
  • 이제 구매자가 클릭할 때 애플리케이션에서 장바구니의 항목 소계를 올바르게 업데이트합니다 장바구니 업데이트 여러 주소로 체크 아웃하는 동안. GitHub-30408
  • 다음과 같은 경우 애플리케이션에서 더 이상 예외가 발생하지 않습니다. config.xml 현재 설치되지 않은 결제 방법에 대한 노드가 존재합니다. 이전에는 체크아웃하는 동안 애플리케이션에서 예외가 발생했습니다. GitHub-29555
  • 이제 애플리케이션에서 미니 장바구니에 특수 문자가 올바르게 포함된 제품 이름을 렌더링합니다. GitHub-29075
  • 이제 애플리케이션에서 테이블 비율에 대한 올바른 할인 패키지를 설정합니다. 이전에는 테이블 요금을 계산할 때 장바구니에 할인을 설정하는 장바구니 규칙을 적용하지 않았습니다. GitHub-30169

장바구니 가격 규칙

  • 이제 장바구니 가격 규칙은 주문 소계가 세금을 통합하지 않고 계산될 때 예상대로 적용됩니다. 새로운 Subtotal (Incl. Tax) 옵션이 장바구니 가격 규칙 조건으로 추가되었습니다.
  • 이제 GraphQL을 사용하는 쿠폰이 포함된 가격 규칙을 적용하면 다음과 같은 경우에 예상대로 작동합니다. 장바구니 전체에 대한 고정 금액 할인 작업이 사용됩니다.

카탈로그

  • 이제 애플리케이션은 예상대로 상점 앞에 재활성화된 모든 제품을 표시합니다. 이전에는 제품을 비활성화했다가 다시 활성화하면 제품을 다시 활성화한 후 페이지 캐시가 무효화되지 않으므로 Varnish 페이지 캐시를 지우거나 저장소가 다시 인덱싱될 때까지 애플리케이션이 제품을 표시하지 않았습니다.
  • 대형 카탈로그의 부분 재인덱싱이 이제 예상대로 작동합니다. 이전에는 을 사용하여 다시 색인화하는 동안 제품이 상점 카테고리 페이지에서 임의로 사라졌습니다. catalogsearch_fulltext 부분 인덱서입니다.
  • 이제 구매자는 예상대로 사용자 정의 가능한 옵션을 사용하여 인보이스 발행 주문을 다시 주문할 수 있습니다. 이전에는 쇼핑객이 주문을 다시 하려고 할 때 애플리케이션에서 이 오류가 발생했습니다. {"0":"The product's required option(s) weren't entered. Make sure the options are entered and try again.
  • 이제 을(를) 성공적으로 설정할 수 있습니다. 레이아웃 카테고리 디자인 페이지에서 을(를) 다음으로 설정 레이아웃 업데이트 없음. 이전에는 응용 프로그램이 (으)로 복구되었습니다. 범주 - 전체 너비 을(를) 할당했을 때 레이아웃 업데이트 없음 값.
  • 상점 첫 화면의 제품 정렬 순서 문제가 해결되었습니다. 이전에는 애플리케이션에서 제품 가격을 색인화할 때 구성 가능한 제품의 min_pricemax_price 에서 0으로 catalog_product_index_price 테이블 - 상점 첫 화면의 가격 정렬 순서에 영향을 주었습니다.
  • 이제 응용 프로그램에서 레이블이 지정된 속성을 성공적으로 업데이트합니다. Product Type. 이전에는 product_type 속성이 코드에 예약되어 있습니다. 을 업데이트하려고 할 때 응용 프로그램에 이 메시지가 표시되었습니다. Product Type 특성: An attribute with the same code (product_type) already exists.
  • 제품을 저장할 때 제품 세부 사항 페이지의 이미지 및 비디오 섹션에서 업로드된 비디오의 위치가 더 이상 변경되지 않습니다. 이전에는 새 이미지 위치에 인덱스 값(목록의 위치)이 지정되었으며 기존 이미지 위치가 인덱스 값과 정렬되지 않으면 새 이미지가 목록에서 잘못 배치되었습니다.
  • 다음 장바구니에 추가 이제 기능이 장바구니에 추가 버튼을 클릭할 수 있습니다. 이전에는 제품 페이지가 로드될 때까지 기다리는 동안 이 단추를 여러 번 클릭한 경우 애플리케이션에서 이 오류가 발생했습니다. Invalid Form Key. Please refresh the page.
  • 판매자가 비활성화된 제품을 범주에 추가하거나 범주에서 제거할 때 애플리케이션에서 더 이상 범주 캐시를 플러시하지 않습니다. 이전에는 제품 상태에도 불구하고 관련 범주에 대한 캐시를 플러시했습니다. 또한 범주를 저장하면 범주가 할당 해제되어 범주 캐시가 플러시되었습니다.
  • 내에서 카탈로그 제품 필터링 모든 스토어 보기 이제 범위가 올바르게 작동합니다. 이전에는 상태가 다음 중 하나였던 제품 Enabled 또는 Disabled 사용 또는 사용하지 않는 제품만 필터링하는 동안 표에 표시되었습니다.
  • 부분 리인덱싱으로 인해 더 이상 제품 누락과 빈 카테고리가 발생하지 않습니다.
  • 이제 재주문은 예상대로 작동합니다. JavaScript 캘린더 사용 활성화됨(스토어 > 구성 > 카탈로그 > 날짜 및 시간 사용자 지정 옵션). 이전에는, 이 설정을 활성화하면 관리자로부터 이전에 주문한 주문을 다시 주문하려고 할 때 애플리케이션에서 이 오류가 표시되었습니다. Please specify date required option(s).
  • 이제 계층 가격을 만드는 동안 다중 사이트 배포에 응용 프로그램이 올바른 통화를 표시합니다.
  • 이제 제품 이미지 사용자 지정 속성이 올바르게 이스케이프됩니다. 다음 data-src 속성의 값은 와 같습니다. src 예상대로 속성입니다. 이전에는 URL 특수 기호가 이스케이프되었습니다.
  • REST API를 통해 카테고리를 업데이트하면 더 이상 기본값 사용 활성화 카테고리, 메뉴에 포함 및 URL 키 속성에서 설정합니다.
  • 이제 범주를 저장하면 이 범주와 관련된 블록 캐시만 플러시됩니다. 이전에는 애플리케이션에서 모든 범주 블록에 대한 캐시를 플러시했습니다.
  • 퍼센트 가격이 있는 사용자 지정 옵션의 가격이 이제 다중 스토어 배포에서 예상대로 활성 스토어의 기본 통화로 변환됩니다. 이전에는 퍼센트 가격이 있는 사용자 지정 옵션의 가격이 잘못 변환되었습니다. GitHub-26432
  • 이제 애플리케이션에서 이미지를 성공적으로 다시 만들고, 이러한 이미지는 판매자가 POST을 사용하여 미디어 갤러리 데이터를 보낼 때마다 예상대로 관리자에서 볼 수 있습니다 rest/all/V1/products. 이전에는 가맹점이 POST을 통해 미디어 갤러리 데이터를 전송할 때 애플리케이션에서 이미지를 다시 만들었지만 삭제했습니다 rest/all/V1/products 에서 이미지가 삭제된 경우 pub/media 그러나 아직도 미디어에 이런 이미지에 대한 기록이 남아 있다. 따라서 업데이트 프로세스 중에 이미지가 만들어지고 삭제되어 판매자는 관리자에서 자리 표시자만 보았습니다.
  • 이제 웹 사이트에서 항목을 할당 해제하면 레코드가 예상대로 삭제됩니다. 이전에는 POST 시 이미지가 복제되었습니다 rest/all/V1/products 실행되었습니다.
  • 다음 /V1/categories/{categoryId}/products 이제 호출이 예상대로 상위 범주에 속하는 모든 제품 목록을 반환합니다. 이전에는 제품이 상위 카테고리의 둘 이상의 하위 카테고리에 속하는 경우 애플리케이션에서 다음과 같은 유형의 오류가 발생했습니다. Internal Error. Details are available in the application log file. Report ID: webapi-5f8579e37db54. GitHub-30461
  • 다음 /V1/products/attributes/:attributeCode/options 이제 REST 끝점이 기존 특성 옵션 업데이트를 지원합니다.
  • 퍼센트 가격이 있는 사용자 지정 옵션의 가격이 이제 다중 스토어 배포에서 예상대로 활성 스토어의 기본 통화로 변환됩니다. 이전에는 퍼센트 가격이 있는 사용자 지정 옵션의 가격이 잘못 변환되었습니다. GitHub-26432
  • 이제 판매자는 제품 생성 중에 새 속성을 성공적으로 저장할 수 있습니다. 이전에는 고객이 속성을 저장하려고 할 때 애플리케이션에서 속성을 저장하지 않고 판매자가 스토어 뷰 홈 페이지로 리디렉션했습니다. GitHub-30362
  • 의 제품 격자 판매 > 주문 수카탈로그 > 제품 이제 페이지에 가장 최근에 만든 스토어뿐만 아니라 모든 관련 스토어가 나열됩니다. GitHub-29267
  • 제품 리포지토리에서 이제 다음을 사용 store_id 기존 제품의 속성 값을 저장할 수 있는 경우. 이전에는 제품 저장소 클래스가 제품 저장소 ID를 재정의했으며 항상 기본 저장소 ID가 할당되었습니다. GitHub-29933

카탈로그 규칙

  • 이제 카탈로그 가격 규칙이 제품 세부 정보 페이지의 사용자 지정 옵션에 대해 예상대로 작동합니다. 이전에는 해당 페이지의 제품 가격이 해당 카탈로그 가격 규칙을 반영하지 않았습니다. GitHub-22856
  • 제품 및 카탈로그 캐시가 이제 예정대로 만료됩니다. 이전에는 캐시가 매일 만료되었습니다. сron 실행 catalogrule_apply_all 모든 카탈로그 규칙 및 종속 인덱서를 다시 인덱싱하고 모든 제품 및 범주에 대한 캐시를 지우는 작업을 매일 한 번 수행합니다.

정리

오타 및 문법 정리

  • 주문 실패 페이지의 제목이 정확하게 수정되었습니다. 이전에는 이 페이지의 제목이 다음과 같습니다. 주문받았습니다!. GitHub-29416
  • 에서 불필요한 공백을 제거했습니다. app/code/Magento/Contact/view/frontend/templates/form.phtml. GitHub-29779
  • 에 대한 도움말 메시지에서 오타가 수정되었습니다. bin/magento/setup:config:set 하위 명령입니다. GitHub-28802
  • 에서 불필요한 공백을 제거했습니다. app/code/Magento/Catalog/Helper/Product/View.php. GitHub-30601
  • 에서 함수 이름의 오타가 수정되었습니다. app/code/Magento/Ui/view/base/web/js/form/element/ui-select.js. GitHub-29987
  • 미니 장바구니 및 체크아웃 주문 요약의 "항목"의 다원화를 수정했습니다. GitHub-29920
  • 마크업 계층화된 탐색 필터에서 인라인 요소의 공백을 제거했습니다. GitHub-30448
  • rl 이(가)로 수정되었습니다. url 위치: \Magento\Framework\Filter\Template\Tokenizer\Parameter. GitHub-29185

코드 정리

  • 관련 없는 HTML <br> 태그가 의 데이터 확인 메시지 영역에서 제거되었습니다. 시스템 > 가져오기 페이지를 가리키도록 업데이트하는 중입니다.
  • ChangeQuoteControl 리팩터링되었습니다. GitHub-29673
  • AccessChangeQuoteControl 단위 테스트도 리팩터링되었습니다. GitHub-29672
  • 에서 반환 형식 선언의 코드 스타일을 수정했습니다. app/code/Magento/Captcha/CustomerData/Captcha.php. GitHub-29712
  • 새 속성 페이지에서 버튼 목록의 위치가 수정되었습니다.
  • 프론트엔드에 대한 올바른 블록 클래스가 추가되었습니다. viewModel 에 대한 참조 예 \Magento\Framework\View\Element\Template 클래스. GitHub-30450
  • 판매 규칙 양식의 중복 필드 세트가 제거되었습니다. GitHub-29599
  • 불필요한 코드가 hierarchy/edit.phtml 템플릿.
  • 에서 수정된 PHPdoc 주석 app/code/Magento/CatalogImportExport/Model/Export/Product.php. GitHub-30833
  • 다음에 대한 문서 블록 주석 PublisherInterface 메시지가 수정되었습니다. GitHub-30190
  • 에서 수정된 인수 getStatusByState 메서드를 사용합니다. GitHub-30173
  • 의 수정된 메서드 설명 app/code/Magento/Quote/Model/Cart/Totals/ItemConverter.php. GitHub-30125
  • 여러 파일에서 같은 줄에 중복 변수 할당이 제거되었습니다. GitHub-30133
  • 변경됨 @param string $attribute@param AbstractAttribute|string[]|string $attribute 위치: EntityAbstract.php. GitHub-30191
  • 잘못된 태그(예: @package@subpackage)가 코드 베이스 전체에서 docks에서 제거되었습니다. GitHub-30061
  • 의 구문에서 사용되지 않은 매개 변수 AdvancedPricing 클래스가 제거되었습니다. GitHub-29531

구성 가능한 제품

  • 이제 가격별로 품절 구성 가능한 제품을 필터링하면 올바른 가격 범위 내의 결과가 표시됩니다.
  • 가상 제품의 상태가 활성화됨에서 비활성화됨으로(또는 그 반대로) 변경될 때 가상 제품의 유형은 더 이상 변경되지 않습니다. 이전에는 상태가 변경되면 응용 프로그램이 제품 유형을 가상에서 단순으로 변경했습니다.
  • 다음 getValue() 메서드는 카트를 업데이트할 때 더 이상 치명적인 오류를 트리거하지 않습니다.
  • 여러 웹 사이트에서 사용할 수 있는 구성 가능한 제품에는 더 이상 특정 웹 사이트에 할당되지 않은 간단한 하위 제품이 표시되지 않습니다. GitHub-28291
  • 이제 상점 제품 페이지에는 예상대로 세금 없이 계층 가격이 표시됩니다. GitHub-12225
  • 구성 가능한 제품에 대한 MSRP 가격이 이제 선택한 통화로 올바르게 변환됩니다. 이전에는 애플리케이션에서 가격이 잘못된 통화로 표시되었으며 이 오류가 발생했습니다. Call to a member function setAppliedTaxes() on null. GitHub-26526, GitHub-29603
  • 판매자는 이제 값이 0(영)인 저장소별 텍스트 견본 속성 옵션 레이블을 저장할 수 있습니다. 이전에는 값 0이 관리자 레이블 옵션 값으로 대체되었습니다. GitHub-30073

cron

  • 이제 시스템 메시지 목록에 이후에 제품 업데이트가 정확하게 반영됩니다. cron 가 실행되어 애플리케이션이 예정된 대로 제품을 업데이트했습니다.
  • 를 기반으로 하는 색인 schedule_idstatus 이(가)에 추가되었습니다. cron_schedule 테이블. GitHub-29601

사용자 지정 고객 속성

  • 이제 응용 프로그램에 유형의 고객 속성이 표시됩니다 file 계정 정보 페이지를 만든 후 이전에는 이 유형의 새 속성을 저장하려고 하면 다음과 같은 오류가 표시됩니다. The "newAttribute" attribute value is empty. Set the attribute and try againValidation is failed.
  • 이제 애플리케이션에서 다중 라인 사용자 정의 고객 속성 값을 올바르게 표시합니다. 이전에는 일부 데이터가 표시되지 않았습니다.
  • 이제 이 애플리케이션은 계정 생성 중에 잘못된 생년월일을 입력하면 구매자에게 알립니다. 이전에는 유효성 검사기가 로케일 설정을 무시했으며, 쇼핑객이 잘못된 날짜 오류가 있는 새 고객 계정 만들기 페이지로 리디렉션되었습니다.
  • 이제 사용자 지정 주소 속성이 체크아웃 워크플로의 결제 단계에서 예상대로 포함됩니다.
  • 이제 사용자 지정 주소 다중 선택 속성이 게스트 체크아웃 중과 관리 및 내 계정 주문 세부 사항 페이지에 올바르게 표시됩니다.
  • 이제 다음과 같은 경우 사용자 지정 고객 속성에서 앞에 있는 0을 삭제할 수 있습니다. Input Type 이(가) (으)로 설정됨 TextInput Validation 이(가) (으)로 설정됨 Numeric Only.
  • 이제 애플리케이션에서 사용자 지정 성별 속성 값을 포함하는 고객 데이터를 성공적으로 내보냅니다.

고객

  • 이제 상점 고객 계정 페이지 생년월일 필드의 달력 위젯에서 지정된 상점 로케일을 사용합니다.
  • 관리자로부터 기존 고객에 대한 재주문을 체크아웃하는 동안 고객 주소의 중복 항목을 더 이상 저장하지 않습니다.
  • 관리자에서 여러 고객의 모든 주소를 삭제하면 이제 고객 주소 목록에서 모든 주소가 삭제되고 기본 청구 및 배송 주소가 제거됩니다. 기존에는 애플리케이션에서 고객 주소 목록에서 주소를 삭제했지만 기본 청구 및 배송 주소를 제거하지 않았다.
  • 이제 관리자가 주소 대량 삭제를 수행한 후 관리자 고객 주소 탭에 주소 수가 올바르게 표시됩니다. 이전에는 애플리케이션에서 삭제된 주소를 카운트에 포함했습니다.
  • 에 대한 DateTime 형식 생일 고객 등록 페이지의 필드가 수정되었습니다. 이전에는 한 자리 숫자 앞에 오는 선행 0이 누락되었습니다.
  • 날짜 형식 유효성 검사 생일 이제 쇼핑객이 클릭하기 전에 필드가 작동합니다. 계정 만들기 단추를 클릭합니다. 이전에는 쇼핑객이 잘못된 형식으로 값을 입력할 수 있었고, 이때 계정 만들기 버튼을 누르면 구매자가 잘못된 날짜 오류가 있는 새 고객 계정 만들기 페이지로 리디렉션되었습니다.
  • 관리자가 속성에 대해 잘못된 데이터가 포함된 새 고객 계정을 저장하려고 할 때 애플리케이션에서 더 이상 치명적인 오류가 발생하지 않습니다.
  • 고객이 이전에 Magento Shipping이 설치되고 기본 Luma 테마가 현재 배포된 배포에서 장바구니에 액세스하려고 할 때 애플리케이션에서 더 이상 400 오류가 발생하지 않습니다. 이전에는, 오류가 발생한 서버에 요청을 보내기 전에 애플리케이션에서 이전에 설치/활성화된 모듈에서 생성된 섹션 이름을 필터링하지 않았습니다.
  • 이제 쇼핑객이 게스트 계정을 만들 때 예상대로 메시지가 표시됩니다. 이메일 확인 필요 설정이 활성화되었으며 Magento\Customer\Controller\Account\CreatePost 이(가) 재정의되었습니다. 이전에는 애플리케이션에서 사용자 등록 프로세스의 이러한 유형의 사용자 지정을 허용하지 않았으며, 이러한 조건에서는 사용자의 이메일 확인 상태가 완료된 것으로 간주되고, 새 사용자가 자동으로 로그인되었으며 오류 메시지가 표시되지 않았습니다.
  • 이제 구매자가 다음 위치에 있는 상점에 기본이 아닌 고객 그룹을 주문하면 애플리케이션에서 올바른 고객 그룹에 구매자를 지정합니다. 고객 그룹에 자동 지정 활성화 이(가) 활성화되었습니다. GitHub-26976
  • 이제 인덱스가 로 설정된 경우 다중 사이트 배포에서 기본값이 아닌 웹 사이트가 삭제될 때 예상대로 관리 고객 그리드를 사용할 수 있습니다. 예약별 업데이트. 이전에는 애플리케이션에서 그리드를 표시하지 않고 다음 오류를 발생시켰습니다. [2020-12-09 11:31:54] report.CRITICAL: The website with id 2 that was requested wasn't found. Verify the website and try again. \{"exception":"[object] (Magento\\Framework\\Exception\\NoSuchEntityException(code: 0): The website with id 2 that was requested wasn't found. Verify the website and try again. at /var/www/html/magento24ee/vendor/magento/module-store/Model/WebsiteRepository.php:110)"}

디지털

  • Dotdigital Engagement Cloud에서 프로그램 목록을 검색할 때 오류 처리가 개선되었습니다.

  • 게스트 동기화 중에 스토어 이름 열에 동기화된 값은 이제 예상대로 스토어 보기 이름입니다. 이전에는 웹 사이트 이름이 이 열에 포함되었습니다.

  • 주문이 저장된 후 주문 상태 자동화를 반복하기 전에 배열 검사를 추가했습니다.

  • Dotdigital 모듈의 종속성으로 인해 발생하는 Composer 업그레이드 관련 문제가 해결되었습니다. magento/module-authorization.

다운로드 가능

  • 애플리케이션이 속한 주문이 부분적으로 환불된 후 내 다운로드 제품 탭에 더 이상 다운로드 가능한 제품이 나열되지 않습니다. GitHub-28388

EAV

  • 다음을 사용하는 사용자 지정 속성 \Magento\Eav\Model\Entity\Attribute\Backend\ArrayBackend 이제 API 호출로 제품을 만들 때 페이로드에 값이 제공되지 않으면 기본값을 사용합니다.

이메일

  • \Magento\Config\Model\Config\Source\Email\Template::toOptionArray 에서 의 경우 더 이상 오류가 발생하지 않습니다. setPath() 이(가) 전에 호출되지 않음 toOptionArray(). GitHub-29315
  • 이제 를 클릭하면 응용 프로그램에서 일반 텍스트를 HTML으로 올바르게 변환합니다. Html 버전 반환 이메일 템플릿을 로드할 때.
  • 부분 송장이 포함된 고객에게 전송되는 이메일에는 이제 정확한 항목 소계가 포함됩니다. 이전에는 이 이메일의 소계가 송장 발행 수량의 총액이 아니라 주문 수량의 합계였습니다.
  • 이제 애플리케이션은 유효한 이메일 주소가 있는 모든 관련 고객에게 이메일 미리 알림을 보냅니다. 이전에는, 잘못된 주소가 하나 발견된 후 애플리케이션이 고객에게 미리 알림 이메일을 보내는 것을 중지했습니다.
  • 이제 카탈로그에서 제품이 제거된 후 비동기 모드로 판매 이메일을 보내는 것이 예상대로 작동합니다. 이전에는 비동기 이메일 전송이 차단되었으며 애플리케이션에 이 오류가 표시되었습니다. main.ERROR: Cron Job sales_send_order_invoice_emails has an error: Call to a member function getData() on null. Statistics: {"sum":0,"count":1,"realmem":0,"emalloc":0,"realmem_start":73400320,"emalloc_start":37177640} [] []main.CRITICAL: Error when running a cron job {"exception":"[object] (RuntimeException(code: 0): Error when running a cron job at /var/www/html/vendor/magento/module-cron/Observer/ProcessCronQueueObserver.php:327, Error(code: 0): Call to a member function getData() on null at /var/www/html/vendor/magento/module-catalog/Helper/Image.php:502)"} []. GitHub-26878
  • 다음과 같은 경우 애플리케이션은 더 이상 고객을 주문 확인 이메일에 복사하지 않습니다. sales_email/order_comment/enabled 이(가) 비활성화되어 있고 sales_email/order_comment/copy_method 이(가) (으)로 설정됨 bcc. GitHub-29915

프레임워크

  • 이제 맞춤화된 필터 그룹이 고객을 검색할 때 올바르게 적용됩니다. 이전에는 afterSearch 함수가 예상대로 OR 필터를 사용하지 않았습니다. GitHub-24576
  • 이제 스토어의 홈 페이지에 있는 이미지가 성공적으로 렌더링됩니다. 이전에는 이미지의 base64 코드에서 세 개의 연속 슬래시가 주석으로 잘못 해석되어 페이지 소스 HTML이 손상되었습니다.
  • 이제 아랍어 로케일( )을 사용하여 저장소의 관리 주문 목록에서 주문을 필터링할 때 날짜 선택기가 올바르게 작동합니다ar_SA - Saudi Arabia).
  • 이제 판매자가 배포에 장바구니 가격 규칙을 저장한 후 DatePicker에 올바른 날짜가 표시됩니다. GitHub-30382
  • 이제 응용 프로그램이 아랍어 천 단위 그룹화와 아랍어 십진수 구분 기호 기호를 올바르게 나타냅니다. 이전에는 아랍어 기호를 트리밍했습니다. GitHub-26676
  • 이제 데이터베이스에서 만료된 데이터베이스 세션이 삭제됩니다 session 예상대로 테이블입니다.

일반 수정 사항

  • 이제에서 정의한 처리기와 다른 네이티브 세션 처리기를 구성할 수 있습니다 php.ini. 이전에는 SessionManager memcache를 로 설정하지 않았습니다. save_handler, 하지만 대신 session_handler. 애플리케이션에서 다음 오류가 발생했습니다. main.CRITICAL: Warning: SessionHandler::read(): open(127.0.0.1:11211/sess_0imeeaqmnvemdg4e3h57tat0ik, O_RDWR) failed: No such file or directory (2) in../vendor/magento/framework/Session/SaveHandler/Native.php on line 22 {"exception":"[object] (Exception(code: 0): Warning: SessionHandler::read(): open(127.0.0.1:11211/sess_0imeeaqmnvemdg4e3h57tat0ik, O_RDWR) failed: No such file or directory (2) in ../vendor/magento/framework/Session/SaveHandler/Native.php on line 22 at ../vendor/magento/framework/App/ErrorHandler.php:61)"}. GitHub-24717
  • 에 다음과 같은 사항이 개선되었습니다. LoginAsCustomer 모듈:

    • 을(를) 대체했습니다. around 을 사용한 플러그인 after

    • 중복 코드 제거됨

    • 대체됨 (bool)->getValue() 포함 isSetFlag. GitHub-29689

  • 와일드카드(*)로 모든 고객 데이터 섹션을 다시 로드해도 요청에 다음이 발생하지 않습니다. customer/section/load 400 오류를 발생시킵니다. GitHub-28154
  • 이제 응용 프로그램에서 레이아웃이 프로덕션 모드에서 렌더링될 때 발생하는 예외를 로 전달합니다. var/report. GitHub-29606
  • 상인은 이제 예상대로 카테고리에서 제품 할당을 취소할 수 있습니다. 이전에는 애플리케이션에서 이 오류와 유사한 오류가 발생했습니다. Could not save product "4" with position 0 to category 3.
  • 이제 존재하지 않는 고객이 암호 재설정을 요청할 때 애플리케이션에서 예외가 발생합니다. GitHub-26288
  • 이제 관리자가 이 속성 값이 포함된 파일을 업로드하는 동안 고객 속성에 대해 잘못된 값이 포함된 고객 계정을 저장하려고 하면 애플리케이션에 정보 오류 메시지가 표시됩니다. 이전에는 애플리케이션에서 치명적인 오류가 발생했습니다. GitHub-30295
  • 이제 애플리케이션이 HTML 인쇄 보기용 로고 예상대로 storefront 송장 PDF에 대한 구성 설정입니다. GitHub-24730
  • static:: 이(가) (으)로 대체되었습니다. self:: 전용 상수에 액세스하기 위한 코드 베이스 전체에서 GitHub-30781
  • 이제 판매자가 를 클릭하면 예상대로 새 속성 페이지가 열립니다. 새 속성 만들기 제품을 만드는 동안 단추를 두 번 클릭합니다. 이전에는 응용 프로그램에 빈 페이지가 표시되고 오류가 발생했습니다. GitHub-30361
  • 응용 프로그램에 더 이상 The coupon code has been accepted 쿠폰이 제거된 후 메시지. GitHub-30255
  • 이제 관리자는 특정 카테고리에 위젯을 할당할 수 있습니다. GitHub-30009
  • 속성 선택기 input[type=datetime] 이(가) 덜 구체적인 입력 유형 선택기로 대체되었습니다. GitHub-30064
  • 이제 애플리케이션에서 예상대로 사용자 지정 범주 속성과 연결된 저장소별 값을 표시합니다. GitHub-13440
  • 이제 를 클릭할 때 고객 그룹을 변경할지 여부를 묻는 메시지가 애플리케이션에 표시됩니다. VAT 번호 유효성 검사 매장 주소와 배송지가 다른 EU 국가에 속하는 경우 주문 생성 페이지의 버튼. GitHub-29652
  • 다음 \Magento\Catalog\Model\ImageUploader 클래스는 새 클래스를 사용하도록 리팩터링되었습니다. moveFileFromTmp 메서드를 사용합니다. GitHub-29598
  • 이제 판매자가 로 제품 속성을 생성하려고 할 때 애플리케이션에서 보다 자세한 오류 메시지를 표시합니다. product_typetype_id 를 참조하십시오. GitHub-28479
  • 에 대한 유효성 검사 논리가 수정됨 고객 토큰 라이프타임(시간)관리 토큰 라이프타임(시간) 관리자의 필드 스토어 > 구성 > 서비스 > OAuth 페이지를 가리키도록 업데이트하는 중입니다. GitHub-29502
  • 이제 응용 프로그램이 다음을 포함하는 텍스트를 올바르게 구문 분석합니다. }} (위젯 콘텐츠 필드) 아래에 그룹화됩니다. GitHub-12087
  • 이제 제품 범주 페이지에서 필터를 제거할 수 있습니다. 이전에는 필터를 삭제하려고 할 때 애플리케이션에서 필터를 제거하지 않고 이 오류를 표시했습니다. Something went wrong. GitHub-8538
  • Magento\Framework\MessageQueue\ConfigInterface 이제 선택적 모듈이 Magento_MessageQueue 이(가) 비활성화되었습니다. 이전에는 애플리케이션에서 다음 오류가 발생했습니다. PHP Fatal error: Uncaught Error: Cannot instantiate interface Magento\Framework\MessageQueue\ConfigInterface in /var/www/magento2/magento2/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php:121. GitHub-26080
  • 애플리케이션이 영구 저장소에서 이메일 값을 검색할 수 있는 시기를 결정하는 논리가 개선되었습니다. 이전에는 등록되지 않은 사용자가 이메일 필드를 처음 완료한 후 체크아웃 페이지로 돌아오면 체크아웃 페이지에 채워진 암호 필드가 표시되었습니다. GitHub-26903
  • 누락된 항목 aclResource 속성이 Admin 헤더에 추가되었습니다. AdminNotification 도구 모음 블록. 이전에는 관리자 사용자에게 이를 볼 수 있는 역할 리소스 권한이 없는 경우에도 관리자 알림 도구 모음 항목이 표시되었습니다. GitHub-29067
  • 다음 framework/database/select where 함수 이제 처리 type 맞습니다. GitHub-29590
  • 의 비효율적 사용 array_merge in 루프는 codebase 전체에서 개선되어 정적 콘텐츠 배포 프로세스를 비롯한 여러 위치에서 성능이 향상되었습니다. GitHub-30183
  • 기본 관리 세션 수명이 암호화 모듈에서 보안 모듈로 이동되었습니다. GitHub-30859
  • 이제 응용 프로그램에서 클래스의 전용 상수를 확인하고 전용 상수가 있으면 경고를 표시합니다 static:: 호출합니다. 이전에는 애플리케이션에서 다음 오류가 발생했습니다. Undefined class constant.
  • 심볼릭 링크에 대한 지원 추가됨 root 오류 페이지 및 유지 관리 모드에서. 이전에는 root 또는 magento/pub 이(가) 다른 디렉터리인 오류 프로세서에 심볼릭 링크되었습니다(Magento\Framework\Error\Processor) 올바른 보기 파일 URL을 생성하지 않았습니다. GitHub-30296
  • 누락된 항목 추가됨 order_data 배열 위치: EmailSender 클래스입니다. 이렇게 하면 이러한 클래스가 이메일 템플릿 내의 오브젝트 대신 스칼라 변수를 사용하려는 Magento의 권장 사항에 맞게 조정됩니다. GitHub-29604

GraphQL

  • 이제 GraphQL URL 확인자가 쿼리 매개 변수를 올바르게 처리합니다. 이전에는 매개 변수를 사용하여 SEO에 친숙한 URL을 처리할 때 NULL을 반환했습니다.
  • 이제 GraphQL URL 확인자가 CMS 페이지 계층 구조를 올바르게 처리합니다. 이전에는 NULL을 반환했습니다. GitHub-30474
  • 제품에 대한 쿼리 categories.breadcrumbs 데이터는 상위 범주가 비활성화된 범주에 대한 이동 경로 데이터를 더 이상 반환하지 않습니다. GitHub-30468
  • 이제 URL 재쓰기가 비활성화되면 카테고리 이미지에 대한 경로가 올바르게 반환됩니다.
  • 이제 GraphQL 암호 재설정 작업 중에에 오류가 발생하면 애플리케이션에서 더 자세한 메시지를 반환합니다. GitHub-30179
  • 이제 쿼리 결과가 캐시될 때 GraphQL 쿼리 결과에서 예상대로 제품 위치가 업데이트됩니다.
  • 다음 products 이제 쿼리가 다음의 경우에 예상되는 결과를 반환합니다. category_id 필터가 in 키워드. GitHub-30349
  • 에 규칙 추가됨 editorconfig json 및 YAML 파일 들여쓰기를 지원하려면 두 개의 공백을 사용하십시오. GitHub-30066, GitHub-30063
  • 다음 FlushCacheByTags 플러그인을 사용하지 않고 애프터 플러그인을 사용하도록 클래스를 업데이트했습니다. GitHub-29558
  • 의 코드 checkout_index_index.xml 이(가) 을(를) 제거하여 파일이 개선되었습니다. sortOrder 출처: messages, authentication, progressBar, estimation, 및 sidebar checkout 구성 요소. GitHub-30550
  • 의 컨텐츠 calc 가 이스케이프 처리되어 올바른 결과가 됩니다. calc CSS 출력 파일의 값입니다. 이전에는 응용 프로그램에서 잘못된 값을 반환했습니다. calc 값. GitHub-30542
  • 이제 URL 재작성 생성기가 범주 개체를 설정합니다 url_key, url_path, 및 store_id 전역 범위에 대한 범주 URL 재작성을 저장할 때 기본 저장 값으로 사용됩니다. 이전에는 저장되었습니다. url_key, url_path, 및 store_id (마지막으로 처리된 저장소 ID 값 포함) GitHub-29585### 그룹화된 제품
  • 이제 제품 쿼리가 그룹화된 제품에 대한 모든 예상 데이터를 반환합니다. 이전에는 product_links 은(는) 빈 배열입니다.
  • 이제 모든 하위 단순 제품이 품절되었을 때 그룹화된 제품이 제품 편집 페이지에 품절 제품으로 나열됩니다.
  • 이제 그룹화된 제품의 상태가 하위 단순 제품의 상태가 품절로 변경되면 제품 편집 페이지에서 상태가 올바르게 업데이트됩니다. 이전에는 하위 항목이 재고 상태를 변경한 후 그룹화된 제품의 상위 항목에 대한 재고 항목이 업데이트되지 않았습니다.
  • \Magento\Widget\Controller\Adminhtml\Widget\Instance\Validate 는 이제 위젯 유효성 검사 중에 구문 결과 값을 오류 메시지로 인식하고 사용자에게 출력합니다. GitHub-27397
  • 다음에 있는 범주 속성의 하드 코딩된 목록 Magento\Catalog\Model\Category\DataProvider::getFieldsMap() 은(는) 캐시에서 생성된 속성 목록으로 대체되었습니다. GitHub-13440
  • 의 중복 해싱 req.http.host/client.ip 가 제거되고 Varnish의 기본 제공 VCL에 의해 해싱이 처리됩니다. GitHub-29988
  • 에 실패 콜백을 추가했습니다. Magento_Ui 파일 업로더입니다. GitHub-29557
  • An acl.xml 다음 경우에 발생하는 불일치 Magento_LoginAsCustomerAssistance 활성화되었지만 Magento_LoginAsCustomerAdminUi 또는 Magento_LoginAsCustomerLog 비활성화된 이(가) 수정되었습니다. 이전에는 이러한 자격 증명을 가진 관리자가 관리자에 로그인하려고 하면 애플리케이션에 빈 페이지가 표시되고 이 오류가 다음과 같은 경우에 발생했습니다. Exception #0 (LogicException): Could not create an acl object: Invalid Document Element 'resource': The attribute 'title' is required but missing. Line: 13. GitHub-30680
  • 애플리케이션에서 더 이상 Undefined class constant 다음에 오류가 발생하는 경우 Interceptor 은 플러그인을 생성하는 동안 생성됩니다. GitHub-28981, GitHub-29879
  • 이제 애플리케이션에서 비동기 대량 작업에 대한 메시징 및 로깅을 올바르게 처리합니다. 이전에는 제품이 업데이트되었지만 magento_operationqueue_message_status 테이블이 올바르게 업데이트되지 않았고 시스템 메시지가 올바르지 않았습니다. GitHub-29718
  • 이제 구매자가 을(를) 클릭하면 예상대로 새 암호 설정 페이지로 리디렉션됩니다 새 암호 설정 암호 재설정 이메일: 이메일 확인 필요 은 저장소에 대해 활성화됩니다. 이전에는 쇼핑객이 (으)로 다시 리디렉션되었습니다. 암호를 잊으셨습니까? 로그인 페이지의 단추입니다. GitHub-27954
  • 기본값으로 행 시스템 구성을 저장할 때 배열을 문자열 변환 오류로 수정했습니다. GitHub-30314
  • 이제 메시지 대기열의 인수를 설정할 수 있습니다. GitHub-30216
  • 이제 기본 파일 컬렉터는 AppState->emulateAreaCode(). GitHub-39656
  • 새로운 BlockByIdentifier 클래스는 CMS 블록 식별자를 기반으로 레이아웃 블록 검색을 지원합니다. 따라서 CMS 블록이 캐시에서 제거되면 레이아웃 블록 캐시도 지워집니다. GitHub-28309
  • 큐의 숫자 인수 변환 문제를 수정했습니다. 이전에는 숫자를 사용하여 대기열을 선언했을 때 type 의 인수 queue_topology.xml, 인수 값이 문자열로 캐스팅되었습니다. GitHub-29615

GraphQL

  • 다음 urlResolver 이제 쿼리 가 쿼리 매개 변수를 올바르게 처리합니다.
  • 다음 urlResolver 사용자 지정 CMS 노드 및 페이지가 입력으로 지정된 경우 쿼리가 더 이상 NULL을 반환하지 않습니다. GitHub-30474
  • 다음 category 쿼리가 더 이상 비활성화된 상위 범주의 하위 범주를 반환하지 않습니다. GitHub-30468
  • 다음 category 이제 URL 재작성이 비활성화되면 쿼리가 카테고리 이미지의 올바른 경로를 반환합니다.
  • 다음 resetPassword 돌연변이는 이제 오류가 발생할 때 더 유익한 메시지를 반환합니다. GitHub-30179
  • 의 캐시된 결과 products 제품 위치가 변경되면 쿼리가 예상대로 무효화됩니다. GitHub-30467
  • 다음 products 이제 쿼리가 다음의 경우에 예상되는 결과를 반환합니다. category_id 필터가 in 키워드. GitHub-30349
  • 다음 categoriescategoryList 이제 쿼리는 범주 권한 구성 및 상위 범주 ID에 따라 범주 가용성을 고려합니다. GitHub-29880, GitHub-30624
  • 다음 updateProductsInWishList 돌연변이가 이제 위시리스트 항목을 올바르게 확인합니다. GitHub-30467
  • 에서 여러 속성 사용 안 함 ProductInterfaceCategoryInterface 상점에서의 사용을 방지하기 위해. GitHub-30625

  • 이제 카테고리 권한이 숨겨지도록 설정되어 있으면 제품 쿼리 결과에서 가격이 숨겨집니다. GitHub-29926

  • 이제 다음을 사용할 수 있습니다. addProductsToWishList 사용자 정의 수량이 있는 번들 제품을 위시리스트에 추가하는 데 사용됩니다.
  • 장바구니에 추가 작업에 대한 GraphQL 응답 시간이 개선되었습니다.
  • 다음 products 이제 쿼리가 예상대로 계층 가격 값을 반환합니다. GitHub-29168
  • 중복 항목 제거됨 getMappedNums 의 루프에서 lib/internal/Magento/Framework/GraphQl/Query/EnumLookup.php. GitHub-30031
  • 다음 products 쿼리된 제품에 비활성화된 관련 제품이 있는 경우 쿼리가 더 이상 오류를 반환하지 않습니다. GitHub-28892
  • 다음 cart 이제 쿼리가 올바른 통화(기본 표시 통화)로 변환된 가격을 반환합니다. 이전에는 쿼리가 기본 통화로 품목 가격 값을 반환했으며 통화 코드가 기본 표시 통화로 반환되었습니다.
  • 이제 GraphQL에 카탈로그 권한이 부여됩니다. 애플리케이션은 다음에 대해 반환되는 항목을 제한합니다. products 구매자의 고객 그룹을 기준으로 질의합니다.
  • 을(를) 추가함 customizable_option 을 구현하는 여러 데이터 형식에 대한 특성 CartItemInterface.
  • 에 대한 속성이 추가되었습니다. storeConfig 스토어, 스토어 그룹 및 웹 사이트 정보를 반환하는 쿼리
  • 을(를) 복원했습니다 SelectedCustomizableOption.type 특성. 또한 customizable_options 의 다양한 구현 내에 있는 속성 CartItemInterface 은(는) 이제 null이 아닙니다.
  • 의 검색 기능 products 더 이상 쿼리가 범주 권한이 활성화된 항목을 반환하지 않습니다.
  • 다음 products 쿼리는 여러 통화가 있는 스토어 보기에 대해 올바른 통화를 반환합니다.
  • 레이블 products 이제 쿼리 필터가 기본값이 아닌 저장소 보기에 적용할 수 있는 경우 번역된 값을 반환합니다.
  • 장바구니에 있는 기프트 카드의 스토어 통화 금액을 수정했습니다.
  • 을(를) 추가함 ConfigurableProductOptionsSelection 제품에 대해 선택 가능한 구성 가능한 옵션에 해당하는 메타데이터가 포함된 데이터 유형입니다. 다음에서 이 개체 사용 products 쇼핑객이 구성 가능한 제품 옵션을 선택할 때 표시되는 미디어 갤러리 항목 수를 최소화하려면 을(를) 쿼리합니다.

이미지

  • 이제 스토어의 홈 페이지에 있는 이미지가 성공적으로 렌더링됩니다. 이전에는 이미지의 base64 코드에서 세 개의 연속 슬래시가 주석으로 잘못 해석되어 페이지 소스 HTML이 손상되었습니다.
  • 다음에 대한 종속성 fileinfo 확장이 CMS 모듈에서 제거되었습니다. 이전에는 을 클릭할 때 실행되는 이미지 업로더를 사용하여 이미지를 업로드하려고 할 때 애플리케이션에서 오류가 발생했습니다. 이미지 삽입 단추를 클릭하여 콘텐츠를 추가합니다. GitHub-24332, GitHub-16531, GitHub-29852
  • 읽기에 대한 지원이 추가됨 exif_image.png 또는 exif-image.jpeg 메타데이터. GitHub-1449
  • 이제 CMYK 이미지 색상이 올바르게 렌더링됩니다. 이제 Image 어댑터가 열린 이미지에 CMYK 색상 공간이 있음을 감지하면 색상 공간이 SRGB로 변환됩니다. 이전에는 이러한 이미지가 반전 색상으로 렌더링되었습니다. GitHub-22375
  • 에 대해 부울 값이 더 이상 설정되지 않음 image_with_border.phtml. 중복 max-widthheight 설정에서 설정이 제거되었습니다. .product-image-photo. 이러한 값은 이미 재설정 스타일을 통해 이미지에 전체적으로 설정되어 있습니다. GitHub-30186

가져오기/내보내기

  • 고객 주소 region_id 이(가) 더 이상 할당되지 않음 NULL csv 파일을 사용하여 고객 주소를 가져올 때의 값(entity type = "customer address"import behavior = "add/update") 삭제할 수 있습니다.
  • 이제 가져오는 동안 상점 전면에서 제품 이미지를 숨길 수 있습니다.
  • 가져온 제품에 qty 0으로 설정했지만 is_in_stock set csv 파일에서 1로 설정되어 있으면 제품이 카테고리 페이지에 나열되지 않고 제품 세부 사항 페이지에서 해당 제품이 품절로 식별됩니다. 이전에는 가져오기 후 이 값을 갖는 제품이 상점 앞에 표시되었습니다.
  • CSV 가져오기로 더 이상 무시 안 함 dropdowntextarea 추가 속성에 대한 값입니다. 이전에는 이러한 속성 값을 가져오는 동안 업데이트되지 않았습니다.
  • 제품 내보내기 CSV 파일이 예상대로 내보내기 CSV 파일의 관리 목록에 나타납니다. 이전에는 이 명령을 실행할 때 애플리케이션에서 오류가 발생했습니다. bin/magento queue:consumers:start exportProcessor --single-thread --max-messages=10000.
  • 벵골어(벵골어) 알파벳 문자가 포함된 CSV 데이터를 가져올 때 애플리케이션에서 더 이상 오류가 발생하지 않습니다.
  • 이제 관리자가 을 클릭할 때 애플리케이션에 정보 오류 메시지가 표시됩니다 데이터 확인 chrome에서 작업할 때 내보낸 후 변경된 파일을 가져오는 동안 이전에는 응용 프로그램에 콘솔 오류가 표시되었지만 사용자에게 진행 방법을 알려 주지 않았습니다.
  • 동일한 제품 CSV 데이터를 두 번 이상 가져오면 애플리케이션에서 더 이상 제품 이미지를 복제하지 않습니다. GitHub-21885
  • 의 이미지 파일 이름에 대한 제한: 90자 vendor/magento/framework/File/Uploader.php 이(가) 제거되었습니다. 이전에는 디렉터리 및 파일 이름 길이가 255자를 초과할 수 없었습니다. 응용 프로그램이 파일 이름이 이 제한을 초과하는 이미지를 가진 제품을 가져왔지만 이미지 파일을 가져오지 않았습니다. GitHub-29377
  • 이제 쿠폰 코드를 CSV 또는 XML로 성공적으로 내보낼 수 있습니다. 이전에는 을 클릭했을 때 애플리케이션에 404 오류가 표시되었습니다 CSV 내보내기 또는 XML 내보내기 쿠폰을 내보내려고 했을 때. GitHub-29277
  • 이제 이미지가 포함된 CSV 파일을 가져온 후 중복된 제품 이미지가 제거됩니다. GitHub-14398, GitHub-21885

색인

  • 부분 인덱서의 성능을 개선했습니다. 이제 애플리케이션은 1000-ID 배치 반복에 대해 변경된 캐시 ID를 지웁니다. 캐시 컨텍스트는 더 이상 ID를 누적하지 않습니다. 이전에는 캐시 컨텍스트에서 각 1000-ID 배치 반복에 대해 캐시 ID를 누적하고 각 반복에서 동일한 ID 세트를 지웠습니다.
  • 부분 재인덱싱 시스템과 전체 재인덱싱 시스템 간의 불일치가 수정되었습니다. 이제 두 인덱싱 시스템은 동일한 코드를 사용하므로 올바르게 작동합니다. 이전에는 두 색인화 시스템 모두 공유 색인화와 관련하여 서로 다른 논리를 사용했으며, 이로 인해 부분 재색인화 시스템의 모든 실행 후에 색인화가 무효화될 수 있었습니다. GitHub-29478, GitHub-29297
  • 수동 인덱서로 인해 범주 페이지가 비어 있거나 범주 페이지의 제품 수가 감소된 문제가 해결되었습니다. 다음 경우에 불완전한 범주 페이지 또는 제품 수 문제가 발생했습니다.

    • 다음 catalogsearch_fulltextcatalog_product_price 부분 인덱서는 이 인덱서들의 실행이 완료될 때까지 큰 카탈로그에서 실행되었습니다.

    • 부분 인덱서가 다음 중 하나에서 실행됨 catalog_category_product 또는 catalog_product_category 인덱스와 동시에 전체 재인덱스가 이러한 인덱스 중 하나에 대해 실행되었습니다. 이 두 색인화 프로세스가 충돌하여 범주 페이지에서 제품이 누락될 수 있습니다.

    • bin/magento indexer:reindex inventory 이(가) 큰 카탈로그에서 실행되었습니다. 이(가) 다음까지 범주 페이지에서 제품이 누락되었습니다. catalogsearch_fulltext 부분 인덱서가 실행을 완료했습니다.

  • 인덱서가 Magento_Bulk 대량 작업의 성능을 개선한 MySQL 테이블입니다.
  • 이제 데이터베이스 테이블의 주석은 다시 인덱싱한 후 테이블 상태를 정확하게 반영합니다(bin/magento indexer:reindex). 이전에는 다시 색인화한 후 테이블 주석에 새로 설치한 후 주석이 포함된 것과 동일한 값이 포함되었습니다.
  • 다음 SELECT entity_id IN mariaDB v.10.3.18을 구현하는 배포에서 문이 개선되어 카탈로그 범주 인덱싱의 성능이 향상되었습니다. GitHub-25199
  • Magento Open Source은 인덱서 인스턴스당 여러 번 태그의 플러시를 제거하여 캐시 성능을 개선했습니다. GitHub-29890

인프라

  • 이제 다음을 사용할 수 있습니다. app/etc/env.php 메시지 브로커를 MYSQL에서 AMQP로 변경합니다.
  • 제품 수량의 십진수 값에 대한 나머지 계산 문제가 관련 JavaScript 라이브러리에서 수정되었습니다. 이 애플리케이션은 이전에 두 자리 이상의 소수 자릿수를 잘못 계산했으며 결과적으로 잘못된 메시지를 표시했습니다.
  • 다음 \Magento\Authorization\Model\Rules::update 메서드가 더 이상 사용되지 않습니다. GitHub-29128
  • UTC에서 날짜 개체를 변환할 때 애플리케이션에서 더 이상 치명적인 오류가 발생하지 않습니다. 이전에는 특정 조건에서 convertConfigTimeToUtc 메서드에서 예외를 throw했습니다. GitHub-29525
  • DataObject 이(가)에서 제품 모델로 대체되었습니다. \Magento\MediaGalleryCatalogUi\Ui\Component\Listing\Columns\Thumbnail::prepareDataSource.GitHub-1711
  • 다음 RequireJS 해결 프로그램이 더 이상 차단된 리소스를 감지하지 못합니다. 이전에는 확인자가 페이지의 모든 리소스가 로드되었는지 또는 적절하게 처리되었는지 올바르게 감지하지 못했으며, 페이지가 계속 로드되었습니다. GitHub-28116
  • 이제 속성 저장소 코드 유효성 검사가 Magento\Eav\Model\Entity\Attribute::ATTRIBUTE_CODE_MAX_LENGTH 하드 코딩된 값 대신 GitHub-29017
  • HTML 축소는 더 이상 PHTML 파일의 HTML 문자열에서 트리플 슬래시(https://experienceleague.adobe.com///?lang=ko)를 제거하지 않습니다. 이전에는 트리플 슬래시를 축소하는 동안 주석으로 해석하고 나머지 줄은 배포 시 생성된 PHTML 파일에서 완전히 제거되었습니다.
  • 이제 판매자는 테이블 수준이 아닌 테이블 열 수준에서 인덱서 구독을 구성할 수 있습니다. 새 인수가에 추가되었습니다. \Magento\Framework\Mview\View\Subscription 특정 뷰 또는 테이블 조합에 대해 열을 무시할 수 있도록 허용합니다. GitHub-30243
  • 클릭 장바구니에 추가 제품 페이지 JavaScript가 완전히 초기화되기 전의 단추로 더 이상 중복되지 않음 form_key 값. 이전에는 제품을 캐시된 상태로 장바구니에 추가할 수 있었습니다 form_key 예외를 트리거한 값입니다. 날짜 장바구니에 추가 JavaScript가 완전히 초기화되기 전에 을 클릭한 다음 form_key 양식 데이터로 전송된 값이 사용자 세션과 일치하지 않아 제품이 장바구니에 추가되지 않았습니다. GitHub-13746
  • 이제 현재 cURL 클라이언트는 대소문자를 구분하지 않는 헤더 이름을 따릅니다. 이전에는 Set-Cookie 비교는 대/소문자를 구분하므로 일부 HTTP 서버에 문제가 발생할 수 있습니다. GitHub-29524
  • 의 XSD URN 형식을 업데이트했습니다. api-functional 및 테스트 사례 XML 파일. GitHub-30552
  • 컬렉션 로드 사용자 지정을 개선하기 위해 카탈로그 제품 옵션 값 컬렉션에 이벤트 접두사와 이벤트 개체가 추가되었습니다. \Magento\Catalog\Model\ResourceModel\Product\Option\Value\Collection. GitHub-29621
  • 다음의 모든 발생 횟수 array_merge 코딩 표준에 권장되는 형식을 사용하도록 리팩터링되었습니다. GitHub-30005
  • A head.additional 유형 블록 \Magento\Framework\View\Element\Text\ListText 이(가)에 추가되었습니다. adminhtml default 레이아웃(기준) magento2/module-base). GitHub-29165
  • 레이아웃 템플릿 모듈 위젯에 누락된 이스케이프 URL 메서드가 추가되었습니다. GitHub-30036
  • 다음 \Magento\Framework\Filesystem\Io\File::read() 이제 메서드가 과 호환됩니다. \Magento\Framework\Filesystem\Io\IoInterface::read(). GitHub-27866

클라르나

  • PayPal 모듈에 대한 종속성을 제거했습니다. GitHub-29421

로깅

  • 다음 Magento_Logging 이제 모듈이 새 값과 그 앞에 오는 값을 올바르게 등록했습니다. 이전에는 변경 전 값 열에 있는 값이 첫 번째 변경인지 다음 변경인지 또는 기본값이 반환된 시기에 관계없이 해당 사항 없음 값을 표시했습니다. GitHub-26943

미디어 갤러리

  • 관리자 스토어 > 구성 > 고급 > 시스템 올바른 제품 이름(미디어 갤러리)을 표시하도록 페이지가 업데이트되었습니다. 사용자 인터페이스에 대한 일부 재디자인이 포함되었습니다. GitHub-1738
  • 미디어 갤러리 이미지 설명의 사용 위치 섹션에 있는 링크에는 이제 선택한 이미지에 의해 예상대로 필터링된 격자가 표시됩니다. 이전에는 표시된 격자의 제목이 올바르지 않고 목록 항목이 정확하지 않았습니다. GitHub-1694
  • 이제 미디어 갤러리에서 여러 이미지를 성공적으로 편집할 수 있습니다. 이전에는 하나의 이미지에 태그를 추가한 후 두 번째 이미지에 태그를 추가할 수 없었습니다. GitHub-1755
  • 이제 미디어 갤러리의 이미지에서 태그를 제거한 후 태그 드롭다운 메뉴가 예상대로 비어 있습니다. GitHub-1703
  • 이제 미디어 갤러리 동기화 큐 메시지에 대한 일괄 처리가 지원됩니다. GitHub-1724
  • 이제 다음 경우에 미디어 갤러리를 열려고 하면 예상대로 애플리케이션에 404 페이지가 표시됩니다. 향상된 미디어 갤러리 이(가) 비활성화되었습니다. GitHub-1760
  • MediaGalleryMetadata 이제 예외가 발생하면 세그먼트 판독기를 건너뛰고 대신 이미지 메타데이터를 예상대로 구문 분석하고 표시합니다. 이전에는 의 예외로 인해 이미지 메타데이터가 비어 있었습니다. exif_read_data 세그먼트 읽기. GitHub-1782
  • 더 이상 폴더 이름 길이로 인해 이미지가 미디어 갤러리에 업로드되지 않습니다. 이제 미디어 갤러리가 경로 열을 유형으로 설정합니다. text. GitHub-1778
  • 이제 미디어 갤러리에서 렌디션을 삽입할 때 이미지 업로더에 올바른 이미지 크기가 표시됩니다. GitHub-1806
  • 경로 인증이 다음에 추가되었습니다. Mediagallery uploader 플러그인. 이전에는 유효성 검사가 실패했으며, 다음과 같은 경우에는 애플리케이션에서 제품을 가져오지 않았습니다. 이전 미디어 갤러리 사용 이(가) 비활성화되었습니다. GitHub-30649
  • Magento_Cms::media_gallery 다음 개별 작업에 대해 구성된 권한을 지원하기 위해 새 미디어 갤러리에 ACL 하위 리소스가 추가되고 적용되었습니다.

    • 에셋 업로드
    • 콘텐츠에 자산 삽입
    • 에셋 삭제
    • 폴더 만들기
    • 폴더를 삭제합니다. GitHub-1487
  • 긴 미디어 갤러리 텍스트 문자열 및 폴더 이름은 더 이상 잘리지 않습니다. 이전에는 애플리케이션에서 잘린 텍스트와 이미지를 표시하고 다음 메시지를 표시했습니다. We couldn't find any records. GitHub-1763, GitHub-1758
  • 응용 프로그램에 더 이상 선택 항목 추가 새 페이지의 콘텐츠를 편집하는 동안 이미지가 선택되지 않으면 단추를 클릭합니다. GitHub-1769
  • 이제 필터가 의 예상대로 적용됩니다. 콘텐츠 > 미디어 갤러리 범주 그리드. GitHub-1763
  • 이제 갤러리 다중 중단점 옵션 구성이 예상대로 작동합니다. 이전에는 다음과 같은 이유로 중단점 옵션 구성이 제대로 작동하지 않았습니다 mediaCheck 페이지 로드 시 미디어 종료 쿼리 함수를 트리거했습니다. GitHub-29933

MTF

  • 반복 작업을 의 작업 그룹으로 대체했습니다. CheckStaticBlocksTest. GitHub-30561
  • AdminUpdateCategoryAndMakeInactiveTestVerifyChildCategoriesShouldNotIncludeInMenuTest MTF 모범 사례를 준수하도록 리팩터링되었습니다. GitHub-30058
  • 제거된 중복 항목 AdminOpenCMSBlocksGridActionGroup. GitHub-30896
  • 대체됨 AdminOpentCmsBlockActionGroup (관리자 열기CmsBlockActionGroup 포함). GitHub-29839
  • 더 이상 사용되지 않음 GoToAttributeGridPageActionGroup. GitHub-30103
  • 에 작업 그룹 추가됨 Analytics 모듈. GitHub-29500
  • 업데이트됨 CheckCheckoutSuccessPageAsRegisterCustomerTestCheckCheckoutSuccessPageAsGuestTest 테스트를 실행한 후 생성된 주문을 취소합니다. GitHub-28324
  • 제거됨 AdminNavigateToPageGridActionGroup 중복으로 인해 발생합니다. GitHub-29838
  • 구현됨 ActionGroup 체크아웃 페이지로 이동합니다. GitHub-29843
  • 구현됨 AdminOpenCreateNewCMSPageActionGroup 새 CMS 만들기 페이지로 이동합니다. GitHub-29824
  • Media Gallery의 CMS에 대한 MTF 테스트 페이지에서 건너뛰기 문제를 수정했습니다. GitHub-30164

새 테스트

  • 관리자의 친구에게 전자 메일을 사용하도록 설정하는 테스트를 추가했습니다. GitHub-29145
  • 관리자가 그리드에서 CMS 블록을 삭제하는 테스트를 추가했습니다. GitHub-30372
  • 단일 번들 항목에 장바구니 규칙을 적용하는 테스트를 추가했습니다. GitHub-28921
  • 여부를 확인하기 위한 테스트가 추가되었습니다. 다음에서 사용됨 엔티티가 삭제된 후 미디어 갤러리 이미지에 대한 정보가 표시됩니다. GitHub-1774

새 작업 그룹

뉴스레터

  • 이제 관리자는 고객이 큐에 있는 뉴스레터를 구독할 때 예상대로 고객 계정을 편집할 수 있습니다. GitHub-30645
  • 이제 구매자가 뉴스레터 구독을 확인하지 않는 경우 애플리케이션에서 뉴스레터 구독 확인을 다시 보냅니다. GitHub-28422
  • 이제 고객이 대기 중인 뉴스레터를 구독할 때 예상대로 고객 계정을 편집할 수 있습니다. GitHub-30645

결제 방법

  • 이제 결제 방법이 다중 스토어 배포에서 예상대로 모든 웹 사이트의 관리자에 로드됩니다.
  • 이제 구매자 이름에 악센트가 있는 문자가 포함되어 있으면 애플리케이션에서 Payflow Pro 결제를 성공적으로 완료합니다. 이전에는 결제가 완료되지 않았으며 애플리케이션에서 다음 오류를 기록했습니다. report.CRITICAL: String to be escaped was not valid UTF-8 or could not be converted.

PayPal

  • 가맹점은 이제 신용 카드를 사용하는 결제 방법에서 신용 카드가 아닌 결제 방법으로 전환한 후 관리자의 주문을 성공적으로 수행할 수 있습니다. 이전에는 판매자가 주문 제출 버튼의 로드 프로세스가 시작되었지만 완료되지 않았으며 주문이 수행되지 않았습니다.
  • PayPal Express를 통해 주문할 때 애플리케이션에서 더 이상 중복 주문을 생성하지 않습니다. 이전에는 쇼핑객이 PayPal Express로 주문비를 결제하려고 했지만 PayPal에서 오류를 반환하면 애플리케이션이 여전히 주문을 만들었습니다. 이로 인해 가맹점 사이트에 중복 주문이 발생했습니다. GitHub-13952
  • 이제 다음에서 PayPal 결제 보고서를 사용할 수 있습니다. 보고서 > 판매 > PayPal 결제 예상대로 이전에는 애플리케이션에서 PayPal 결제 보고서 그리드에 이러한 보고서를 나열하지 않고 다음 메시지를 표시했습니다. We couldn't find any records.
  • 클릭 PayPal 체크아웃 중 버튼을 눌러도 더 이상 이중화가 트리거되지 않음 web-api 호출합니다. 이전에는 두 개의 요청이 트리거되어 제품 요금이 두 배가 되었습니다.
  • 이제 다음과 같은 경우 고객 쇼핑객이 PayPal 주문을 할 수 있습니다. 고객 그룹에 자동 지정 이(가) 활성화되었습니다. 결제는 PayPal 게이트웨이에서 처리되고, 주문은 Magento에서 생성되며, 쇼핑객은 주문 감사 페이지를 볼 수 있습니다. 이전에는 PayPal 게이트웨이에서 주문이 처리되었지만 Magento Open Source에서 주문이 만들어지지 않았습니다. 구매자가 대신 주문 검토 페이지로 리디렉션되었습니다. 이 페이지에서 애플리케이션에 다음 오류가 표시됩니다. Failed address validation: %1" error. GitHub-25399

성능

  • Magento_Csp/Model/BlockCache 는 메모리 소비와 불필요하게 큰 캐시된 문자열의 생성을 모두 줄이기 위해 리팩터링되었습니다. 이전에는 동적으로 화이트리스트에 추가된 스크립트 및 스타일이 포함된 페이지에 성능 문제가 자주 발생했습니다. GitHub-29964
  • 우리는 소비자를 이용한 10만 개 이상의 제품이 포함된 카탈로그의 수출 예정 성과를 개선했습니다.
  • 비활성화된 제품을 범주에 추가하거나 저장할 때 응용 프로그램이 더 이상 범주 캐시를 플러시하지 않습니다. 이전에는 제품 상태에도 불구하고 관련 범주에 대한 캐시를 플러시하여 서버 성능에 영향을 주었습니다.
  • 장바구니에서 제품 수량을 업데이트하는 페이지 로드 시간이 개선되었습니다. 이전에는 애플리케이션에서 장바구니의 각 제품에 대해 여러 개의 개별 쿼리를 실행했기 때문에 페이지 로드 시간이 늘어났습니다.
  • 인덱서가 Magento_Bulk 대량 작업의 성능을 개선한 MySQL 테이블입니다.
  • 이제 애플리케이션에서 구성 가능한 제품의 하위 ID를 캐시합니다. 이렇게 하면 데이터베이스 요청 수를 줄여 페이지 로드 성능이 향상되었습니다. GitHub-30585
  • 관리 대시보드 로드가 개선되었습니다. 이전에는 페이지 로드가 완료되기 전에 응용 프로그램에서 탭 이름을 목록으로 표시했습니다.
  • 레이아웃 캐시에 대한 만료 제한을 추가하여 Redis 캐시 관리를 개선했습니다. 이전에는 Redis 캐시가 대규모 배포에서 최대 메모리 할당량에 빠르게 도달하여 애플리케이션에서 쓰기 작업에 오류가 발생했습니다.
  • 에서 중복 데이터베이스 쿼리를 제거하여 체크아웃 성능이 향상되었습니다. app/code/Magento/Catalog/Model/CategoryLink.php. GitHub-29453
  • Magento\Framework\DB\Adapter\Pdo\Mysql->isTableExists 성능 향상을 위해 리팩터링되었습니다. 중복 호출 대상 SHOW TABLE STATUS 테이블이 있는지 확인하는 작업이 줄었습니다. GitHub-29662
  • getPageLayoutsConfig 이제 가 캐시에 저장되므로 구성 빌더 성능이 향상되었습니다. GitHub-29546

영구적

  • 영구적 장바구니가 활성화되면 구매자는 세션 쿠키가 만료된 후 더 이상 주문을 할 수 없습니다. 대신, 쇼핑객이 로그인할 수 있도록 애플리케이션에 로그인 페이지가 표시됩니다. 이전에는 애플리케이션에서 주문했습니다. 다음과 같은 경우 애플리케이션은 영구 고객의 유효성을 제대로 검사하지 못했습니다. PHPSESSID 만료 전에 customerSession 이(가) 영구 정보에서 다시 만들어졌습니다.
  • 이제 애플리케이션은 구매자가 영구 장바구니가 활성화된 스토어에 로그인한 후 예상대로 시작 메시지를 표시합니다. 이전에는 응용 프로그램에서 당신은 아닙니까? 로그인 후 메시지가 표시됩니다.
  • 응용 프로그램에 더 이상 당신은 아닙니까? 고객이 사용자 이름 저장 영구적 장바구니가 활성화된 배포에 로그인할 때 선택 사항입니다.
  • 고객 세션이 만료된 후 애플리케이션에 더 이상 고객 장바구니의 콘텐츠가 표시되지 않습니다. 이전에는, 지속적인 장바구니가 활성화되면 게스트 고객이 체크아웃을 시도할 때 애플리케이션에서 이 오류를 표시했습니다. No such entity with cartid = 0.

가격 책정

  • 연속적인 비동기 가격 업데이트는 더 이상 서로 간섭하지 않으며 각 작업에 올바른 상태가 할당됩니다. 이전에는 비동기 가격 업데이트가 실패한 경우 해당 큐 소비자가 다시 시작될 때까지 다음의 모든 비동기 가격 업데이트가 실패했습니다. GitHub-27865

보고서

  • 보고서 > 마케팅 > 장바구니에 들어 있는 제품 이제 보고서를 생성하는 사용자의 허용된 범위 내에 레코드만 표시됩니다. 이전에는 모든 범위에 대해 모든 데이터를 사용할 수 있었습니다.
  • 이제 애플리케이션에서 장바구니에 제품 통화를 보고서에 표시할 때 보고서를 생성하는 판매자의 역할 범위에 지정된 통화를 사용합니다.
  • 이제 최근에 본 항목 및 최근에 비교한 제품 기능에 다중 스토어 배포에서 예상한 대로 관리자의 여러 스토어 및 웹 사이트에 대한 통계가 표시됩니다. 이전에는 이러한 기능이 모든 스토어나 웹 사이트를 고려하지 않았습니다.
  • 이제 주문 보고서의 가격에는 올바른 통화 기호가 사용됩니다.
  • 이제 애플리케이션에서 사용자가 관리 대시보드를 클릭할 때 토큰이 있는지 확인합니다 고급 보고서로 이동 단추를 클릭합니다. 토큰이 있으면 고급 보고 페이지가 표시됩니다. 토큰이 구성되지 않은 경우 애플리케이션이 사용 안내서에 정보 페이지를 표시합니다. GitHub-25411

리뷰

  • 이제 새 검토 페이지를 예상대로 로드합니다. 새 리뷰 관리자 단추 마케팅 > 모든 리뷰. 이 페이지에서 제품을 클릭하면 해당 제품에 대해 예상되는 새로운 검토 양식이 열립니다.
  • Admin의 순서를 편집하려고 할 때 애플리케이션에서 이 오류가 더 이상 발생하지 않습니다 마케팅 > 모든 리뷰: Uncaught TypeError: Event.observe is not a function. GitHub-30388

판매

  • 다음 order_created_atsales_shipment_grid 는 이제 각 업데이트 후에 예상대로 업데이트됩니다.
  • 이제 스토어에서 사용자 지정 옵션 날짜가 포함된 제품의 순서를 변경할 수 있습니다. JavaScript 캘린더 사용 이(가) 활성화되었습니다. 이전에는 다시 주문하려고 할 때 애플리케이션이 장바구니에 항목을 추가하지 않고 이 오류를 표시했습니다. Could not add the product with SKU "simp1" to the shopping cart: Please specify date required option(s).
  • 제로 소계 체크아웃 방식이 활성화된 배포에서 구매자가 총 비용이 $0인 가상 제품으로 구성된 주문을 체크아웃할 때 애플리케이션이 더 이상 즉시 주문을 닫지 않습니다.
  • 애플리케이션이 더 이상 주문 처리 전에 주문을 보관하지 않습니다. 이전에는 관리 주문 그리드에서 다중 선택 작업이 선택되지 않은 주문에 영향을 주었습니다.
  • 이제 사우디아라비아 리얄(SAR)이 기준 통화로 설정되면 대변 메모 그리드에 올바른 통화 기호가 표시됩니다.
  • 이제 애플리케이션은 체크아웃 중에 주문 페이지에 예상대로 배송 주소 정보를 일관되게 표시합니다.
  • 값: total_qty 이제 이(가) 의 값과 일치함 total_qty_ordered 영업 송장.
  • 이제 판매 이메일을 비동기적으로 보내면 마지막 업데이트 날짜 이후에 생성된 주문에 대해서만 이메일이 전송됩니다. 이전에는 비동기 전송이 활성화된 경우 애플리케이션에서 날짜별로 이메일을 필터링하지 않았습니다.
  • 이제 애플리케이션은 관리자로부터 주문이 들어오면 예상대로 송장 이메일을 전송합니다.
  • 이제 판매자가 관리자로부터 고객에 대한 신규 주문을 생성할 때 애플리케이션은 세션 중에 기존 주문 데이터를 지웁니다.
  • 이제 다음과 같은 경우 관리 주문을 통해 생성된 새 고객의 고객 그룹을 변경할 수 있습니다. 고객 그룹에 자동 지정 활성화 이(가) 활성화되었습니다. VAT 검증을 기준으로 고객 그룹을 지정할 수도 있습니다. 이전에는 VAT 번호를 확인할 때 요청 개체에서 할당된 요청을 확인하지 않았습니다 group_id. 기본적으로 을 사용했습니다 group_id.
  • 애플리케이션에서 로 사용자 정의 주문 상태의 상태를 더 이상 변경하지 않습니다. Suspected Fraud 다음으로 상태: Processing 판매자가 REST API를 사용하여 부분 선적을 생성한 후.

판매 규칙

  • 배송 방법에 따라 적용되던 쿠폰 코드는 쇼핑객이 배송 방법을 변경할 때 더 이상 적용되지 않습니다. 기존에는 쇼핑객이 배송 방법을 전환할 때 애플리케이션에서 쿠폰 코드를 지우지 않았다.
  • 구매자는 보다 자주 쿠폰 코드를 적용할 수 없습니다. 고객당 사용 허용 설정. 이전에는 구매자가 여러 브라우저 창을 열고 동시에 여러 주문을 하면 각 주문이 할인을 받았지만 고객당 사용 설정값: 1.

검색 search-heading

  • 쇼핑객이 검색 동의어를 검색할 때 Elasticsearch에서 더 이상 알 수 없는 수정자 오류가 발생하지 않습니다. 이전에는 이스케이프기에 정규 표현식에 이스케이프 슬래시 기호가 없었고, 이로 인해 치명적인 오류가 발생했습니다.
  • 하위 제품이 가시성이 로 설정된 상태로 구성되면 고급 검색에서 구성 가능한 제품의 하위 항목을 개별 검색 결과로 반환하지 않습니다. 개별적으로 보이지 않음.
  • 검색 결과에 있는 제품 이름의 Elasticsearch 정렬은 더 이상 대소문자를 구분하지 않습니다.
  • 이제 검색 결과 페이지가 예상대로 캐시됩니다. 캐시할 상위 검색 결과 수를 0으로 설정 설정이 관리자에서 활성화됨 스토어 > 구성 > 카탈로그 > 카탈로그 > 카탈로그 검색.
  • 이제 카탈로그 검색 인덱서가 Elasticsearch 필드 제한으로 인해 오류를 발생시키지 않고 실행됩니다. 이전에는 애플리케이션에서 다음 오류가 발생했습니다. Limit of total fields [xxx] in index [m24dev_product_1_v10] has been exceeded.
  • 카탈로그 검색 성능이 개선되었습니다. 비활성화 중 검색 제안 활성화 (스토어 > 구성 > 카탈로그 > 카탈로그 검색 )는 예상대로 작동합니다. 이전에는 애플리케이션에서 MySQL에 쿼리했습니다 search_query 자동 완성 검색 제안에 대한 Elasticsearch 대신 표를 사용하십시오. GitHub-25534
  • 이제 Elasticsearch은 제품 가격을 MySQL과 동일하게 필터링합니다. 필드 유형 price_* 다음에서 변경됨: floatdouble 정밀도를 높이고 부동 소수점 오류를 수정하기 위한 Elasticsearch 색인입니다.
  • 슬래시를 입력할 때 글로벌 검색 양식을 활성화하기 위해 keydown 이벤트 리스너가 Admin에 추가되었습니다. GitHub-29551
  • Elasticsearch에 더 이상 오류가 발생하지 않지만, string 값은 를 사용하여 특성별로 제품을 필터링하는 데 사용됩니다. integer 또는 decimal 백엔드 유형. 이전에는 이 오류가에 표시되었습니다 exception.log: number format exception.
  • 검색어에 다음이 포함된 경우 Elasticsearch에서 더 이상 예외가 발생하지 않습니다. /. GitHub-25886, GitHub-25110

  • 이제 다음과 같은 경우 제품 쿼리에서 선택한 고객 그룹에 대해 예상대로 검색이 비활성화됩니다. 카탈로그 검색 허용 기준 일반 범주 권한의 구성 설정을 사용할 수 있습니다. GitHub-29927

  • 검색 결과에 더 이상 동일한 단어의 여러 인용구가 포함되지 않습니다. GitHub-30104

배송

  • 네트워크 중단으로 인해 DHL 배송 방법 연결이 중단되면 체크아웃 프로세스가 더 이상 실패하지 않습니다. 대신 애플리케이션에서 사용 가능한 다른 운송 방법을 표시합니다. 이전에는 DHL 배송에 대한 연결이 중단되어 체크아웃 프로세스가 중단되었으며 애플리케이션에 다음 오류가 표시되었습니다. Sorry, no quotes are available for this order at this time. GitHub-29902
  • 관리자의 UPS 게재 방법을 설명하는 필드 스토어 > 구성 > 판매 > 게재 방법 은(는) 이제 예상대로 활성화됩니다.
  • POST을 통해 생성된 배송 /rest/V1/shipment 이제 엔드포인트가 주문을 제대로 업데이트합니다. 이전에는 애플리케이션에서 선적을 생성했지만 선적 상태가 처리 상태로 유지되었습니다.
  • 배송처 복수 주소를 사용하여 체크아웃하기 전에 다른 제품을 장바구니에서 제거할 때 애플리케이션에서 더 이상 간단한 제품을 장바구니에서 제거하지 않습니다. GitHub-30259
  • 이제 주문 검토 페이지에 여러 주소로 배송되는 주문에 대해 예상한 대로 배송 전 세액이 표시됩니다.
  • 이제 UPS 배송 추적이 다음의 상태를 나타냄 Delivered On 패키지가 전달된 경우에만. GitHub-30032
  • 이제 구매자가 여러 주소를 사용하여 체크아웃한 후 장바구니로 다시 이동할 때 애플리케이션에 가상 제품이 포함된 주문에 대한 올바른 장바구니 소계가 표시됩니다.
  • 판매자는 이제 JavaScript 번들링이 활성화되면 FedEx 배송을 사용하는 기존 주문에 대한 배송 페이지에서 배송 레이블을 만들 수 있습니다. 이전에는 판매자가 아이콘을 클릭하면 애플리케이션에서 오류가 발생했습니다. 배송 레이블 만들기 단추를 클릭합니다.
  • 고객에게 보낸 배송 확인 이메일의 배송 추적 링크가 이제 예상대로 작동합니다. 이전에는 이 링크가 404 오류를 반환했습니다.
  • 이제 쇼퍼가 여러 주소를 사용하여 체크아웃한 다음 가상 제품 이외의 모든 제품을 제거할 때 애플리케이션에서 유용한 오류 메시지를 표시합니다. GitHub-25595
  • 이제 부분 주문에 대해 예상대로 배송 레이블을 만들 수 있습니다. 이전에는 주문에서 한 항목에 대해서만 배송 레이블을 만들려고 하면 애플리케이션에서 모든 제품을 패키지에 추가하여 유효성을 검사하지 못했습니다. GitHub-29552
  • 호출 시 배송 방법에 대한 유효성 검사가 더 이상 사용되지 않습니다. /V1/guest-carts/:cartId/totals-information. GitHub-25147

사이트 맵

  • 에 의해 생성된 사이트 맵 cron 이제 올바른 이미지 URL을 포함합니다. 이전에는 다중 스토어 배포에서 생성된 캐시 이미지 경로가 올바르지 않았습니다.

저장

  • 관리자 및 기본 스토어 전환기는 이제 관리자의 스토어 정렬 순서에 대한 변경 사항을 반영합니다. GitHub-13401
  • 이제 스토어 보기의 최상위 URL 키가 변경된 후 애플리케이션에서 카테고리 및 제품에 대한 올바른 URL을 만듭니다. 이전에는 스토어 보기의 카테고리 트리가 수정된 경우 url_keys, 카테고리 키는 변경되지 않지만 카테고리 상위 키는 변경된 경우 원래 코드는 URL을 만들 때 카테고리의 기본 스토어 보기를 사용했습니다. GitHub-28633

Target 규칙

  • 제품 세부 사항 페이지 로드가 최적화되었습니다. 많은 경우에 대해 대상 규칙 조건 쿼리를 최적화하는 데이터베이스 테이블에 대한 인덱스를 추가했습니다.

세금

  • 게스트 주문에 대한 VAT 검증으로 인해 더 이상 애플리케이션에서 잘못된 고객 세금 분류로 견적을 저장하지 않습니다. GitHub-30018
  • 이제 여러 주소로 배송되는 주문은 FPT가 구성될 때 체크아웃 중에 저장할 수 있습니다. 이전에는 여러 주소에 대한 주문을 완료한 후 애플리케이션이 주문 성공 페이지 대신 빈 페이지를 표시했습니다.
  • 이제 상점 제품 세부 사항 페이지에 예상대로 세금이 있거나 없는 이전 가격과 새 가격이 표시됩니다. GitHub-27500, GitHub-11998

테스트

  • bin/magento dev:tests:run 이제 예상대로 all, unit, integration, integration-all, static, static-all, integrity, legacy 및 default 테스트를 실행합니다.
  • AdminMediaGalleryInsertLargeImageFileSizeTest 리팩터링되었습니다.
  • 이제 단위 테스트가 PHPUnit 8과 호환됩니다. GitHub-29779
  • \Magento\TestFramework\TestCase\WebapiAbstract 에는 테스트에서 예상되는 결과와 실제 결과의 중첩된 큰 배열을 비교하는 기능을 지원합니다. 결과와 무관한 열쇠는 이제 무시될 수 있다. GitHub-29498
  • AdminMediaGalleryCatalogUiEditCategoryGridPageTest 더 이상 임의로 실패하지 않습니다. GitHub-1764
  • dev/tests/integration/testsuite/Magento/Customer/Controller/AccountTest 이(가) 개선되었습니다. (assert 이제 다음을 기반으로 함: XPath 대신 선택기 assertStringContainsString.) GitHub-29700
  • 에 대한 테스트 범위를 추가했습니다. AdminAnalytics 모듈. GitHub-29500
  • 통합 및 API 기능 테스트가 이제 PHPUnit 9.3과 호환됩니다. GitHub-30146
  • GraphQL 관련 문제 수정됨 testRequestCacheTagsForCategoryListOnMultipleIds 테스트. GitHub-29372
  • URL이 포함된 헤더 값은에서 올바르게 구문 분석됩니다. ApiFunctional TestFramework. GitHub-26425
  • GraphQL 관련 문제 수정됨 testRequestCacheTagsForCategoryListOnMultipleIds 테스트. GitHub-29372
  • —no-tablespaces 이(가) 의 모든 발생 항목에 추가되었습니다. mysqldump, 통합 테스트를 PROCESS 권한(MySQL 5.7.31 / 8.0.21 실행 이후 필요) mysqldump 기본적으로). GitHub-30566

테마

  • 새 항목 --no-parent 플래그가 다음에 추가되었습니다. bin/magento setup:static-content:deploy 테마의 상위 항목을 컴파일하지 못하도록 하는 명령입니다. 이 새 플래그를 사용하면 불필요한 컴파일을 방지하여 정적 콘텐츠 배포 프로세스의 성능을 크게 향상시킬 수 있습니다. 를 사용할 때는 이 새 플래그가 작동하지 않습니다. compact 전략. GitHub-30184
  • 디자인 구성으로 인해 더 이상 DDL 작업이 생성되지 않습니다. 이전에는 디자인 구성이 업데이트되면 응용 프로그램에서 MySQL 오류를 트리거할 수 있는 DDL 문을 생성했습니다.
  • 의 중복 코드 Magento_ConfigurableProduct 관리자 테마의 모듈이 제거되었습니다. GitHub-29857
  • 불필요한 스타일의 탐색 및 빈 테마의 사용되지 않는 속성이 제거되었습니다. GitHub-29914
  • 모바일 보기의 빈 테마에 축소 가능한 탐색 기능이 추가되었습니다. GitHub-30237
  • 테마에 대한 웹 글꼴 로드가 최적화되었습니다. GitHub-29526
  • 이제 개발자는 테마에서 사용자 정의 글꼴을 선언할 때 글꼴 유형을 지정할 수 있습니다. GitHub-29719

번역 및 로케일

  • 이제 관리 주문 그리드 날짜 선택기는 관리 로케일이 아랍어( )일 때 예상대로 작동합니다.ar_SA - Saudi Arabia).
  • 쇼핑객이 새 주소를 등록하거나 추가할 때 유효한 우편 번호로 아르헨티나 주소를 입력하면 애플리케이션에서 더 이상 오류 메시지를 표시하지 않습니다. 이전에는 애플리케이션에서 다음 오류를 표시했습니다. Provided Zip/Postal Code seems to be invalid. Example: 1234. If you believe it is the right one you can ignore this notice.
  • 쇼핑객이 한국 주소의 우편 번호 5자리를 입력할 때 애플리케이션에서 오류가 더 이상 발생하지 않습니다.
  • zip_codes.xml 는 브라질 우편 번호에 8자리 숫자를 적용하도록 업데이트되었습니다. GitHub-29984
  • 현지화되지 않은 나머지 구문의 현지화가 개선되었습니다. GitHub-11175
  • 이제 격자 검색 입력 자리 표시자를 변환할 수 있습니다. GitHub-30510
  • 이제 애플리케이션은 활성화된 경우에만 인라인 번역 JavaScript 모듈을 다운로드합니다. GitHub-29553

UI

  • 다음 계정 만들기 쇼핑객이 잘못된 데이터를 입력하면 새 계정 만들기 페이지의 버튼이 활성 상태로 유지됩니다. 이전에는 이 버튼이 비활성화되어 구매자가 오류 발생 후 계정을 다시 만들 수 없었습니다. 이는 2.4.1에서 알려진 문제입니다. GitHub-30513
  • 관리 주문 편집 페이지의 배송 표 로드가 개선되었습니다.
  • 이제 응용 프로그램에 청구 주소와 동일 제품이 SKU로 장바구니에 추가된 경우 주문 페이지에서 예상대로 확인란을 선택합니다.
  • 이제 제한된 너비를 정의한 CSS 클래스가 예상대로 시작 시간 관리자의 필드 저장 > 구성 > 카탈로그 > XML 사이트 맵 > 생성 설정. GitHub-29496
  • 약관 확인란 레이블의 표시 문제를 수정했습니다. GitHub-24060
  • 계층 가격을 사용할 수 없을 때 애플리케이션에서 제품 페이지에 계층 가격 블록에 대한 CSS 코드를 더 이상 표시하지 않습니다. GitHub-29194
  • 이미지 보기 세부 사항 페이지의 버튼 위치가 사용자 인터페이스 지침을 따르도록 순서가 변경되었습니다. GitHub-1783
  • 이제 Internet Explorer/EDGE 브라우저에서 쿠폰 코드 텍스트 필드가 적절한 너비로 표시됩니다.
  • 다음 @button__border-radius 이제 변수가에 정의되어 있습니다. lib/web/css/source/lib/variables/_buttons.less 라이브러리입니다. border-radius 의 기본값이 있음 3px. 이전에는 border-radius 하드 코딩되었습니다. GitHub-28674
  • 이제 최소 검색 문자열 길이에 도달할 때까지 미니 검색 필드의 제출 검색 단추(돋보기)가 비활성화됩니다. GitHub-29704
  • 다음 템플릿 미리 보기 이제 [대기열 편집] 페이지에서 버튼이 예상대로 작동합니다.
  • 이제 한 그룹에서 다른 그룹으로 속성을 이동할 때 애플리케이션에서 속성 값을 유지합니다.
  • 글꼴 두께 큰 변수를에 추가했습니다. lib/web/css/source/lib/variables/_typography.less. GitHub-29778
  • 이제 필터 가시성이 관리 그리드의 예상대로 열 가시성과 함께 작동합니다. GitHub-30345
  • 다음과 같은 경우 UI 선택 구성 요소 옵션이 더 이상 표시되지 않습니다. this.disabled(true) 이(가) 설정되어 있습니다. GitHub-29098
  • 다음 @font-family-name__base Open Sans 글꼴을 로드할 때 변수가 더 이상 사용되지 않습니다. GitHub-29515
  • WAI-ARIA 속성 aria-atomic="true" 이(가) 오류 컨테이너 태그에 추가되었습니다. GitHub-29560
  • 이제 UI 구성 요소 그리드에 선택한 항목의 정확한 수가 표시됩니다. 이전에는 키워드별 검색이 모든 그리드 항목을 선택하고 헤더 확인란을 선택하기 전에 쇼핑객이 일부 항목을 연이어 선택 취소하는 경우 그리드에 잘못된 선택 횟수가 표시되었습니다. GitHub-29968
  • 송장 및 선적 개요 페이지에 더 이상 렌더링되지 않은 HTML이 표시되지 않습니다. GitHub-29958
  • 클릭 옵션 관리자 스토어 > 통화 환율 이제 시스템 구성 페이지의 확장된 통화 옵션 섹션으로 이동합니다. GitHub-29336
  • 의 다른 조건에 따라 위젯을 표시하는 기능이 개선되었습니다. adminhtml 선택 위젯 유형을 사용할 때 위젯. GitHub-13316, GitHub-7252, GitHub-6868
  • Luma 테마에서 확인 팝업 대화 상자의 텍스트 패딩이 개선되었습니다. GitHub-30452

자격 증명 모음

  • 다음 Vault 모듈은 이제 결제 정보 관리 서비스에 대한 요청에서 결제 방법 코드를 인식합니다. 이전에는 쇼핑객이 저장된 Braintree 신용카드를 사용하여 주문할 때 유효한 결제 방법이 사용되어도 애플리케이션에서 이 오류가 발생했습니다. The requested Payment Method is not available.
  • 이제 응용 프로그램이 [고객으로 관리 로그인] 페이지에 표시하는 배너가 사용자가 스크롤할 때 페이지 맨 위에 남아 있습니다. GitHub-29354

정점

  • 이제 주소가 수정되면 주소 제안이 예상대로 제거됩니다.

  • 일부 고객이 계정 패널에 주소를 저장할 수 없는 경합 조건이 해결되었습니다.

  • Vertex 주소 유효성 검사가 특정 조건에서 더 이상 주소 편집 페이지를 전체 페이지 캐시에 추가하지 않습니다.

  • 이제 세금 포함 금액에 대해 자유 배송이 구성된 경우 꼭짓점 계산 세금이 고려됩니다.

웹 API 프레임워크

  • 이제 POST을 사용할 수 있습니다. V1/invoice/:invoiceId/refund 제품 수량이 0이고 운송 비용이 0인 송장을 환불하려면(예: {"items": [{"qty": 0, "orderItemId": 6, "extensionAttributes": {}}], "appendComment": false, "notify": true, "isOnline": true, "arguments": {"adjustment_negative": 0.0, "adjustment_positive": 0.99, "shipping_amount": 0}}. ) 이전에는 애플리케이션에서 다음 오류가 발생했습니다. You can't create a creditmemo without products. GitHub-23069
  • 이제 POST을 사용할 수 있습니다. V1/categories 카테고리를 만들거나 업데이트합니다. 이전에는, default_sort_by 값이 배열로 설정되었습니다. 다음의 경우 default_sort_by 값이 문자열로 설정되었습니다. 애플리케이션에서 다음 오류가 발생했습니다. Error occurred during \"custom_attributes\" processing. Attribute \"default_sort_by\" has invalid value. The \"string\" value's type is invalid. The \"string[]\" type was expected. Verify and try again.
  • POST 사용 V1/invoices/:id/capture 이제 결제 정보를 캡처하는 것이 예상대로 작동합니다. 기존에는 애플리케이션에서 주문을 승인했지만 결제 게이트웨이 사이트에서만 캡처했다.
  • POST 사용 시 V1/order/:orderId/ship 부분 선적을 생성하려면 끝점이 올바른 선적 제품 수를 반환합니다.
  • POST을 사용하여 생성된 송장 V1/order/:orderID/invoice 이제 점포 신용으로 분할 납부를 정확하게 반영한다. 기존에는 점포 신용으로 주문대금을 일부 결제할 경우 점포 신용을 고려하지 않고 인보이스를 생성했다.
  • GET rest/all/V1/categories 및 GET rest/all/V1/categories?rootCategoryId=2 이제 호출이 채워짐 반환 nameproduct_count 트리의 모든 카테고리에 대해 예상한 대로 필드입니다. 이전에는 카테고리 필드 값이 비어 있었습니다. 테이블 이름 확인자 플러그인이 카테고리별 제품 수를 가져오는 데 잘못된 테이블 이름을 반환했습니다.
  • PUT V1/categories/:id 이제 엔드포인트는 범주 URL 키에 대해 301 리디렉션을 만드는 데 필요한 데이터를 save_rewrites_history 사용자 지정 특성이 제공됩니다. GitHub-29174, GitHub-30240

위시리스트

  • 이제 구매자는 제품이 사용자 정의 인벤토리 소스에 할당될 때 제품을 위시리스트에 추가할 수 있습니다. GitHub-3018
  • 이제 관리자는 고객이 상점 첫 화면에서 제품을 위시리스트에 추가한 후 관리 고객 페이지에서 장바구니 관리 페이지에 액세스할 수 있습니다. 이전에는 관리자가 을 클릭할 때 다음과 같은 오류가 표시되었습니다. 장바구니 관리 단추: An error has occurred. See error log for details.
  • 다음 장바구니에 추가 이제 공유 위시리스트 페이지의 단추가 로그인하지 않은 익명, 게스트 및 사용자에 대해 예상대로 작동합니다.
  • 이제 응용 프로그램이 선택한 구성 가능한 제품 속성 옵션을 위시리스트 페이지에 예상대로 표시합니다. GitHub-24091, GitHub-22503
  • 구현됨 ActionInterface 대상 \Magento\Wishlist\Controller\Shared\Allcart. GitHub-29537

알려진 문제

문제: [magento_root]/index.php 파일이 제거되었으며 이제 응용 프로그램이 /pub 기본적으로 Apache 구성에 사용됩니다. 하위 폴더에서 제공되는 저장소는 예상대로 작동하지 않으며 404 오류를 표시할 수 있습니다. 해결 방법: 심볼릭 링크를 사용하여 하위 폴더로 설치를 에뮬레이션합니다. 다음 예제에서는 를 사용합니다 https://shop01.com/shop/ symlink를 사용하여 하위 폴더에 있는 설치를 에뮬레이션하는 방법을 보여 줍니다.

  1. 다음에 대한 하위 디렉터리 만들기 https://shop01.com/shop/:

    code language-bash
    mkdir magento_root/pub/shop01
    
    code language-bash
    cd magento_root/pub/shop01
    
  2. 새로 만든 디렉터리에 저장소의 상위 디렉터리에 대한 심볼릭 링크를 만듭니다.

    code language-bash
    ln -s ../media media
    
    code language-bash
    ln -s ../static static
    
    code language-bash
    ln -s ../../../pub pub
    
    code language-bash
    ln -s ../.htaccess .htaccess
    
    code language-bash
    ln -s ../health_check.php health_check.php
    
  3. 만들기 index.php 새 디렉토리 내의 파일(magento_root/pub/shop01/index.php) 다음 컨텐츠를 추가합니다.

   <?php
   require realpath(__DIR__) . '/../../../app/bootstrap.php';

   switch ($_SERVER['HTTP_HOST']) {
       case 'shop01.com':
       case 'www.shop01.com':
           $params = $_SERVER;
           $params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = 'shop01';
           $params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';
           $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);
           $app = $bootstrap->createApplication(\Magento\Framework\App\Http::class);
           $bootstrap->run($app);
           break;

       default:
           $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
           /** @var \Magento\Framework\App\Http $app */
           $app = $bootstrap->createApplication(\Magento\Framework\App\Http::class);
           $bootstrap->run($app);
       break;
   }
  1. 새 하위 디렉터리를 가리키도록 Apache 서버를 구성합니다. 배포 구성은 크게 다를 수 있습니다. 다음은 서버 구성의 예입니다.
   <VirtualHost *:80>
       DocumentRoot "magento_root/pub/shop1"
       ServerName shop01.com
   </VirtualHost>

문제: 쇼핑객이 결제 페이지의 CAPTCHA 필드에 올바른 코드를 처음 입력할 때 애플리케이션이 결제 정보를 예상대로 제출하지 않지만 다음 오류가 표시됩니다. There has been an error processing your request. 이 문제는 구매자가 CAPTCHA 코드를 입력하지 않거나 잘못 입력하여 주문을 하려고 할 때만 발생합니다. 해결 방법: 페이지를 새로 고칩니다.

문제: 쇼핑객이 클릭할 때 애플리케이션이 예상대로 Braintree으로 주문을 생성합니다 Venmo 결제 ​는 관리자에게에서 순서를 생성하지 않습니다. 다음을 참조하십시오. 2.4.2 알려진 문제: Braintree Venmo 결제가 작동하지 않음 기술 자료 문서입니다.

문제: 를 사용할 수 없습니다. addConfigurableProductToCart GraphQL 돌연변이로 인해 Inventory를 실행하는 다중 스토어 배포에서 기본이 아닌 스토어 보기에서 구성 가능한 제품을 장바구니에 추가할 수 있습니다. (Luma 상점 앞은 영향을 받지 않습니다.) 응용 프로그램에 다음 오류가 표시됩니다. Could not add item to cart. Please check required options and try again. 해결 방법: 사용 addProductsToCart 돌연변이가 있습니다. GitHub-31660

커뮤니티 기여

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

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

파트너 기여

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

파트너
가져오기 요청
관련 GitHub 문제
아트윅스
magento/magento2#29630, magento/magento2#29459, magento/magento2#29703, magento/magento2#29460, magento/magento2#29042, magento/magento2#29482, magento/magento2#28821, magento/partners-magento2ee#260, magento/magento2#29148, magento/magento2#29634, magento/magento2#29832, magento/magento2#29830, magento/magento2#29829, magento/magento2#29828, magento/magento2#29821, magento/magento2#29820, magento/magento2#29836, magento/magento2#29831, magento/magento2#29822, magento/magento2#28653, magento/magento2#27391, magento/magento2#29833, magento/magento2#29904, magento/partners-magento2ee#264, magento/partners-magento2ee#248, magento/partners-magento2ee#168, magento/magento2#29929, magento/magento2#29962, magento/partners-magento2ee#329, magento/magento2#29931, magento/partners-magento2ee#316, magento/magento2#29835, magento/magento2#29834, magento/magento2#30081, magento/magento2#30030, magento/magento2#29827, magento/magento2#30049, magento/magento2#30217, magento/magento2#27939, magento/partners-magento2ee#279, magento/magento2#30222, magento/partners-magento2ee#349, magento/magento2#29868, magento/partners-magento2ee#346, magento/magento2#30079, magento/magento2#30317, magento/magento2#30633, magento/magento2#30619, magento/magento2#30359, magento/magento2#30223, magento/magento2#30630, magento/magento2#29675, magento/magento2#30777, magento/magento2#30528, magento/magento2#30525, magento/magento2#30779, magento/magento2#30529, magento/magento2#30694, magento/partners-magento2ee#400, magento/partners-magento2ee#401
magento/magento2#29649, magento/magento2#29712, magento/magento2#29501, magento/magento2#29145, magento/magento2#29500, magento/magento2#28520, magento/magento2#28558, magento/magento2#29648, magento/magento2#29843, magento/magento2#29845, magento/magento2#29846, magento/magento2#29847, magento/magento2#29824, magento/magento2#29823, magento/magento2#29841, magento/magento2#29844, magento/magento2#29825, magento/magento2#29531, magento/magento2#29601, magento/magento2#29839, magento/partners-magento2ee#28551, magento/magento2#29940, magento/magento2#29982, magento/magento2#29941, magento/magento2#29842, magento/magento2#29838, magento/magento2#30103, magento/magento2#30032, magento/magento2#29848, magento/magento2#30058, magento/magento2#30031, magento/magento2#30061, magento/magento2#30561, magento/magento2#30469, magento/magento2#30468, magento/magento2#30372, magento/magento2#30683, magento/magento2#30624, magento/magento2#29168, magento/magento2#30783, magento/magento2#30916, magento/magento2#30917, magento/magento2#30782, magento/magento2#30926, magento/magento2#30625, magento/partners-magento2ee#30474, magento/partners-magento2ee#410
청도토리
magento/magento2#29670, magento/magento2#29669, magento/magento2#29564, magento/magento2#27494, magento/magento2#29269, magento/magento2#27609, magento/magento2#29688, magento/magento2#29081, magento/magento2#28379, magento/magento2#29722, magento/magento2#27077, magento/magento2#30318, magento/magento2#30010
magento/magento2#29672, magento/magento2#29673, magento/magento2#29679, magento/magento2#29537, magento/magento2#25595, magento/magento2#29689, magento/magento2#28154, magento/magento2#28428, magento/magento2#27397, magento/magento2#29729, magento/magento2#29558, magento/magento2#25110, magento/magento2#25886, magento/magento2#28286, magento/magento2#30009
콤랩
magento/magento2#29814, magento/magento2#29751, magento/partners-magento2ee#337, magento/partners-magento2ee#328, magento/partners-magento2ee#319, magento/magento2#30118, magento/magento2#30019, magento/magento2#29998, magento/magento2#29883
magento/magento2#29718, magento/magento2#29372, magento/magento2#29927, magento/magento2#29930, magento/magento2#29926, magento/magento2#29880
패스트 화이트 캣
magento/magento2#29413, magento/magento2#28163, magento/magento2#30320, magento/magento2#30355, magento/magento2#28157, magento/magento2#30114
magento/magento2#24060, magento/magento2#13401, magento/magento2#11175, magento/magento2#30296, magento/magento2#22503, magento/magento2#24091, magento/magento2#30073
바이모
magento/magento2#29339, magento/magento2#28676, magento/magento2#29885
magento/magento2#28633, magento/magento2#29890
시더커머스
magento/magento2#27602, magento/magento2#30400, magento/magento2#30391
magento/magento2#27350, magento/magento2#30361, magento/magento2#30362, magento/magento2#30255
MRM 상거래
magento/magento2#30120, magento/partners-magento2ee#175
magento/magento2#30133, magento/partners-magento2ee#26943
EY
magento/magento2#30130
정밀해
magento/magento2#28687, magento/magento2#28663, magento/magento2#28491
magento/magento2#8538, magento/magento2#28479, magento/magento2#28186
creativestyle
magento/magento2#27696, magento/magento2#25405
magento/magento2#29553, magento/magento2#25399
어안
magento/magento2#27940, magento/partners-magento2ee#267, magento/magento2#28216
magento/magento2#29555, magento/magento2#13440
SNOW.DOG
magento/magento2#29934
magento/magento2#29933
integer_net GmbH
magento/magento2#28164
magento/magento2#29585
Zifity
magento/magento2#29353, magento/magento2#27896, magento/magento2#28349
magento/magento2#29194, magento/magento2#29098
파랑새의 날
magento/magento2#27832
magento/magento2#11998, magento/magento2#27500
크리시 테크노랩스
magento/magento2#29923
magento/magento2#29920
보른 그룹
magento/magento2#30109, magento/magento2#30421
magento/magento2#30125
지침 솔루션
magento/magento2#28818
magento/magento2#29546
르 사이트
magento/magento2#25412
magento/magento2#25411
켄지움 솔루션스
magento/magento2#30230
magento/magento2#30179
Webjump
magento/magento2#27869
magento/magento2#27866
Aligent 컨설팅
magento/magento2#29692
magento/magento2#30243
바겐토
magento/magento2#30411
magento/magento2#30408
MediaCT
magento/magento2#29210
magento/magento2#29515
코메로
magento/magento2#28917
magento/magento2#29656

개인 기여자 기여

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

기여 커뮤니티 구성원
가져오기 요청
관련 GitHub 문제
나자르 클로바니치
#29576
1449
샨카르 코나르
#29511
29496
헤이즐 조이 카키클라
#29494
헤이즐 조이 카키클라
#29491
코스 라파우
#29483
29525
헤이즐 조이 카키클라
#29461
예캅스
#29458
29498
나자르 클로바니치
#29452
jmonteros422
#29435
1711
샨카르 코나르
#29433
1738
나자르 클로바니치
#29429
1755, 1694
바르트워미에즈 슈베르
#29413
24060
안젤로 로마노
#29410
29416
허니메이 루이즈 이그나시오
#29400
1703
프란시스제크 바워작
#27478
29606
루카시 바이사로비치
#29670
29672
루카시 바이사로비치
#29669
29673
나자르 클로바니치
#29636
1764
올레 우식
#29630
29649
루카시 바이사로비치
#29564
29679
이호르 스비지예프
#29518
29653
올레 우식
#29459
올렉산드르 크라브추크
#29339
윌 라이트
#29316
29315
바딤 말레시
#29693
29700
바딤 말레시
#29682
안드리 베지아치흐니
#29703
29712
샨카르 코나르
#29510
28422
바딤 말레시
#29474
29267
올레 우식
#29460
29501
드미트리 탐바알
#29042
29145
사바스 라데비치
#28816
28802
사샤
#28548
28674
얀 나소노프
#28512
29661
루돌프 빈스
#27494
29537
나자르 클로바니치
#29684
1769
나자르 클로바니치
#29633
1763
헤이즐 조이 카키클라
#29639
jmonteros422
#29632
1760
올레 우식
#29482
29500
사티시 수프라마니아어
#29353
29194
러셀 앨빈
#29269
25595
바르트워미에즈 슈베르
#28163
13401
마테우시 크제쇼비악
#27696
29553
비탈리 프로코포프
#27691
26903
코로스티이
#26081
26080
나자르 클로바니치
#29711
1774
헤이즐 조이 카키클라
#29411
아웃 크레이머
#29210
29515
에두아르트 치토라가
#29148
올레 우식
#28821
28558, 28520
나자르 클로바니치
#29783
1780
jmonteros422
#29774
1783
헤이즐 조이 카키클라
#29772
세르기이 이바시첸코
#29761
jmonteros422
#29753
1784
나자르 클로바니치
#29743
1782
나자르 클로바니치
#29742
1778
헤이즐 조이 카키클라
#29705
jmonteros422
#29677
1504
이호르 스비지예프
#29799
올레 우식
#29634
29648
알렉산드르 스크라슈크
#29348
28921
비탈리 프로코포프
#28413
28388
루카시 바이사로비치
#27609
코로스티이
#27579
27523
크리스티안 파티카
#29426
29425
미하우 데를라트카
#28915
26425
올레 우식
#29832
29843
올레 우식
#29830
29845
올레 우식
#29829
29846
올레 우식
#29828
29847
올레 우식
#29821
29824
올레 우식
#29820
29823
데니스 바벤코
#28343
29067
#27269
26288
안드리 카시안
#27129
25199
헤이즐 조이 카키클라
#29875
헤이즐 조이 카키클라
#29869
올레 우식
#29836
29841
올레 우식
#29831
29844
올레 우식
#29822
29825
두응우옌
#29044
29526
비노스
#28349
서맥 호흡기
#27386
29560
세르기이 이바시첸코
#29921
헤이즐 조이 카키클라
#29896
샨카르 코나르
#29724
29704
올레 우식
#28653
29531
두응우옌
#29913
29914
나자르 클로바니치
#29861
1789
두응우옌
#29856
29857
두응우옌
#29771
29779
에덴 두옹
#29278
29277
에덴 두옹
#29276
29336
모하메드 아사르
#27896
29098
허니메이 루이즈 이그나시오
#29947
톡신스
#29925
28981, 29879
빅토르 코핀
#29906
올가 자하르추크
#29863
29958
니콜라이 말레바넥
#29006
12087
압둘 라만 아부자이드
#28687
8538
크리엘킵NL
#27832
11998, 27500
가우라브 아가르왈
#27602
27350
알렉산드르 타라놉스키
#27391
29601
스타니슬라프 일니츠키
#26877
26876
세르기이 이바시첸코
#29889
나자르 클로바니치
#29715
1487
허니메이 루이즈 이그나시오
#29543
1724
올레 우식
#29833
29839
포라파트 추아숙
#28896
28892
비탈리 프로코포프
#27857
26976
에두아르트 치토라가
#29904
헤이즐 조이 카키클라
#30006
이호르 스비지예프
#29993
30004
빅토르 코핀
#29959
1813
헤이즐 조이 카키클라
#29909
루카시 바이사로비치
#29688
29689
샨카르 코나르
#29415
29354
헤이즐 조이 카키클라
#29967
올레 우식
#29929
29940
헤이즐 조이 카키클라
#29895
아쇼카데비트
#27446
29603
파스칼 브라우어스
#26527
26526
세르기이 이바시첸코
#30076
헤이즐 조이 카키클라
#30044
빅토르 코핀
#29979
1806
야누시 잔치
#29934
29933
마빈 힌츠
#29542
29185
피테르 잔드베르겐
#29274
29524
조 홉스
#25510
25147
브누아 실로
#25405
25399
빅토르 코핀
#30074
헤이즐 조이 카키클라
#30042
올레 우식
#29962
29982
올레 우식
#29931
29941
올레 우식
#29835
29842
올레 우식
#29834
29838
예브게니 레빈스키
#27698
28324
바딤 말레시
#26470
7720
올레 우식
#30081
30103
레안드로 …
#30014
30013
타라스 가마노프
#29968
24348, 24400
샨카르 코나르
#29671
16531, 24332, 29852
에자즈 알람
#29486
29487, 29502
올레 우식
#30030
30032
유진 샤크수바로프
#28117
28116
세르히이 제파
#30095
헤이즐 조이 카키클라
#30057
헤이즐 조이 카키클라
#30034
마르코스 트라마
#29972
29984
리준 올렉산드르
#29814
29718
두응우옌
#29794
29075
그레그 하벨
#29081
28154, 28428
다니엘 베이틀러
#29080
29659
스비아토슬라프
#28818
29546
파비안 슈멩글러
#28164
29585
티모테우시 모틸레프스키
#27980
29590
알렉스 구세프
#30077
26762, 29612
압둘 라만 아부자이드
#28663
28479
압둘 라만 아부자이드
#28491
28186
지텐파텔
#27953
12225
이호르 스비지예프
#30153
30183
샨카르 코나르
#30069
30164
레안드로 …
#30011
29377
올레 우식
#29827
29848
다비데 리카르도 칼리엔도
#29015
29017
잭 난닝가
#28379
27397
뷔냐민
#27869
27866
에덴 두옹
#27585
29599
데이비드 해커
#30096
322
야로슬라프 가르마시
#30075
312
존 카를로 옥타비오
#30028
프레데릭 마르티네스
#30182
30191
이호르 스비지예프
#30170
30146
라파엘 카스너
#30160
숀 반 주담
#30139
30186
바르토시 고르스키
#30120
30133
밀린드 싱
#30109
30125
케이트 키지마
#30049
30058
다미안 쿨로타
#29722
29729
안톤 에버스
#28995
29522
케이트 키지마
#30217
니키타 사리체프
#30172
30173
두응우옌
#30108
알렉산더 멩크
#29205
29174, 30240
바니 셔골드
#28676
28633
요나스 휘니그
#28516
29662
두응우옌
#28177
30237
알렉산드르 타라놉스키
#27939
30031
데이비드 매너스
#27581
29598
나바르 바르니에
#27077
29558
콜라엔테
#30180
30190
페프 판 푸이옌브룩
#29466
29652
프레데릭 마르티네스
#28588
페트코프스키 마르얀
#29751
29372
올레 우식
#30222
티몬 드 그루트
#28809
22375
니라브 파텔
#28385
30345
댄 월리스
#27940
29555
숀 반 주담
#30065
30064
두응우옌
#30008
30036
두응우옌
#29726
29719
가브리엘 소모사
#28389
29165
댄 월리스
#28216
13440
라파엘 코헤아 고메스
#25412
25411
#29885
29890
바르토시 쿠비키
#27092
29557
수드헤르 신감세티
#30230
30179
남라타
#30358
30450
두응우옌
#30333
30448
보이텍 나루니츠
#30318
25110, 25886, 28286
숀 반 주담
#30062
30063, 30066
두응우옌
#29773
29778
피에터 카펠레
#26713
14398, 21885
바르트워미에즈 슈베르
#30320
11175
바스 판 포펠
#30167
30169
이호르 스비지예프
#30023
30025
이호르 스비지예프
#30002
30005
에덴 두옹
#27574
29597
라파엘 카스너
#27454
29604
니라브 파텔
#30458
30452
두응우옌
#30454
30496
solwininfotech
#30405
26133
바르트워미에즈 슈베르
#30355
30296
세르히이 제파
#30554
알린 알렉산드루
#30340
30508
올레 우식
#29868
30061
기욤 퀸타드
#28928
29988
마다
#28172
27925
바르트워미에즈 슈베르
#28157
22503, 24091
니콜라이 섬락
#27672
29552
요나스 휘니그
#30502
30566
야로슬라프 보구츠키
#30493
30510
두응우옌
#30453
30542
수닐 파텔
#30402
30388
올레 우식
#30079
예로엔
#29911
29915
피에터 호스테
#29196
29297, 29478
요한 린달
#28917
29656
바르토시 쿠비키
#26967
29615
에자즈 알람
#30579
30545
피에터 호스테
#30570
6868, 7252, 13316
남라타
#30538
30550
프라틱 오자
#30530
30552
안드리 카시안
#30521
30563
나이치르흐
#30322
30314
케이트 키지마
#30317
30561
스타니슬라프 일니츠키
#30198
30601
키일디림
#28352
28124
안드리 베지아치흐니
#30633
30469
에두아르트 치토라가
#30619
30468
수드헤르 신감세티
#30375
30349
사가르 다히왈라
#30368
325
니콜라이 말레바넥
#30763
30747
드미트리 탐바알
#30359
30372
올레 우식
#30223
30683
루카시 바이사로비치
#28147
28309
마테이 푸르카루
#27972
27954
보바 야추크
#27674
29551
바르토시 쿠비키
#26966
30216
사이먼 스프랑켈
#26401
29621
가브리엘 다 가마
#30895
30896
사무엘 카사도르
#30793
30833
보바 야추크
#30774
30781, 197
디에고 사나브리아
#30681
30680
에브겐 모족
#30632
24730
산제이 파텔
#30411
30408
시카 미시라
#30400
30361, 30362
시카 미시라
#30391
30255
바르트워미에즈 슈베르
#30114
30073
마이클 보튼스
#30010
30009
두응우옌
#29986
29987
사팔 자
#29923
29920
안드리 카시안
#27379
29600
야로슬라프 로고사
#30630
30624
올레 우식
#29675
29168
안드리 칼리니치
#30749
23069
빅토르 코핀
#30727
30645
토머스 클라인
#30825
30859
올레 우식
#30777
30783
올레 우식
#30528
30916
올레 우식
#30525
30917
이호르 스비지예프
#30090
30184
안드리 칼리니치
#30866
24717
빅토르 코핀
#30928
30685
니티쉬 싱
#30421
올레 우식
#30779
30782
나자르 클로바니치
#30662
30649
올레 우식
#30529
30926
마러시 덴체프
#30614
30104
라클란
#29692
30243
빅토르 코핀
#30947
29128
안드리 칼리니치
#30807
26432
빅토르 코핀
#30961
13746
니콜라이 말레바넥
#30963
30295
안드리 베지아치흐니
#30694
30625
알렉산드르 투리악
#30636
30467

시스템 요구 사항

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

설치 및 업그레이드 지침

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

마이그레이션 툴킷

데이터 마이그레이션 도구는 기존 Magento 1.x 저장소 데이터를 Magento 2.x로 전송하는 데 도움이 됩니다. 이 명령줄 인터페이스에는 확인, 진행 추적, 로깅 및 테스트 기능이 포함됩니다. 설치 지침은 데이터 마이그레이션 도구 설치. 다음을 살펴보거나 기여하는 것을 고려하십시오. 데이터 마이그레이션 저장소.

다음 코드 마이그레이션 툴킷 는 기존 Magento 1.x 스토어 확장 및 사용자 지정을 Magento 2.x로 전송하는 데 도움이 됩니다. 명령줄 인터페이스에는 Magento 1.x 모듈 및 레이아웃을 변환하는 스크립트가 포함되어 있습니다.

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