여러 Mirakl 인스턴스를 단일 Adobe Commerce 다중 상점 인스턴스와 통합하는 방법
게시 됨: 2022-03-26여러 Mirakl 인스턴스를 단일 Adobe Commerce 다중 상점 인스턴스와 통합하는 방법
소개
Mirakl 마켓플레이스 플랫폼은 Adobe(Magento) Commerce 플랫폼과 통합되어 엔드 투 엔드 온라인 마켓플레이스를 만들 수 있습니다. Mirakl은 모든 표준 시장 프로세스 흐름을 포괄하는 통합 프로세스의 속도를 높이기 위해 Magento 커넥터를 제공합니다. 이 커넥터를 사용하면 Mirakl과 Magento 간에 데이터를 자동으로 동기화할 수 있습니다. 또한 Mirakl에서 제공하는 Marketplace 기능을 제공하도록 페이지를 사용자 정의하는 방법을 보여주는 예제 프론트 엔드 모듈을 제공합니다.
기본적으로 커넥터는 단일 Mirakl 인스턴스를 단일 Magento 인스턴스와 통합하도록 설계되었습니다. 그러나 다중 국가 롤아웃의 경우 각 국가에 자체 Mirakl 인스턴스가 있지만 단일 Magento 인스턴스가 여러 매장이 있는 모든 국가에 서비스를 제공하는 상황이 있을 수 있습니다. 이 시나리오에서는 각 Mirakl 인스턴스를 특정 Magento 저장소 인스턴스와 통합하기 위해 기본 커넥터 동작을 재정의해야 합니다. 우리는 B2B 시장에서 고객 중 한 명을 위해 이것을 성공적으로 구현했습니다. 이 시나리오를 지원하기 위해 다음과 같이 변경되었습니다. 여러 Mirakl 인스턴스가 단일 Adobe Commerce 멀티 스토어 인스턴스와 함께 작동하는 방식에 대한 자세한 내용은 그림 1.1을 참조하십시오.

전역 구성 변경 사항:
각 Mirakl 인스턴스에 대해 스토어 보기 수준에서 별도의 URL 및 비밀 키를 구성해야 합니다. 스토어 보기 수준에서 API 끝점을 구성하도록 구성 도우미 클래스를 재정의하여 이를 달성했습니다. 동기화 스크립트를 처리하는 콘솔 클래스는 매개변수로 전달되는 상점 ID를 기반으로 상점 보기 특정 동기화 스크립트를 처리하도록 재정의되었습니다.
분류 동기화:
Magento와 Mirakl 간의 분류 동기화는 Mirakl H01 API 호출을 사용하여 수행됩니다. 이 API는 Magento 카테고리를 Mirakl로 내보내기 위해 호출됩니다. 그러나 다중 상점 구현에서는 각 Magento 상점 첫화면이 분류법을 특정 Mirakl 인스턴스로만 내보내도록 해야 합니다. Mirakl 인스턴스를 특정 Magento 상점에 매핑하기 위해 관련 Mirakl 커넥터 도우미 클래스를 재정의하여 이를 달성했습니다.
제품 수입:
분류 동기화와 마찬가지로 제품 가져오기도 Mirakl 인스턴스에서 Magento의 특정 상점으로 매핑해야 합니다. 다음과 같은
이를 달성하기 위해 다음 구성 요소가 재정의되었습니다.
- cli 명령의 일부로 상점 ID가 전달된 각 상점 보기로 델타 제품을 가져오는 명령 클래스.
- 제품 가져오기 과정에서 스토어 ID를 설정하는 데 사용되는 인터셉터 플러그인은 루트 카테고리를 설정해야 했습니다.
제안 가져오기
OF51F API는 Mirakl 제안을 Magento로 가져오는 데 사용됩니다. 다중 상점 구현에서는 상점 특정 제안을 가져오도록 제안 가져오기 동기화 스크립트를 재정의해야 합니다.
OOTB 테이블은 상점 ID가 있는 제안을 매핑하도록 수정되었으며, 사용자 지정 Cron 작업은 매개변수로 전달되는 상점 ID를 기반으로 특정 제안 가져오기를 저장하기 위해 작성되었습니다.
속성 가져오기:
Mirakl 커넥터는 PM01 API 호출을 사용하여 Magento에서 Mirakl로 제품 속성을 내보냅니다. 다중 저장소 구현의 경우 특정 Magento 저장소의 속성이 매핑된 Mirakl 인스턴스로만 내보내지도록 동기화 스크립트를 재정의했습니다.
속성 값 목록 가져오기:
Mirakl 커넥터는 VL01 API 호출을 사용하여 Magento에서 Mirakl로 속성 값 목록을 내보냅니다. 다중 저장소 구현의 경우 특정 Magento 저장소의 값 목록이 매핑된 Mirakl 인스턴스로만 내보내지도록 동기화 스크립트를 재정의했습니다.

상점 가져오기:
Mirakl 상점은 S20 API를 사용하여 Magento로 가져옵니다. 다중 매장 구현의 경우 Mirakl에서 매핑된 매장 보기로 매장별 매장 정보를 동기화하기 위해 S20 동기화 스크립트를 재정의했습니다.
배송 정보
Magento 데이터베이스에 배송 정보를 가져오고 저장하기 위해 Mirakl 커넥터에서 사용할 수 있는 특정 Cron 작업이 없습니다. 값은 배송료가 표시되어야 하는 사용자 여정의 다른 지점에서 SH01/SH02를 사용하여 검색됩니다.
프론트엔드 모듈은 PLP, PDP, 장바구니, 체크아웃, 주문 내역 및 주문 세부 정보 페이지와 같은 다양한 지점에서 배송료를 검색하도록 확장 및 사용자 지정되었습니다. 매장별 요청에 따라 매핑된 Mirakl 인스턴스에서 배송료를 검색하여 표시했습니다.
주문 동기화
OR01 API는 주문 생성에 사용되며 OR11 API는 Mirakl과 Magento 간의 주문 상태 동기화에 사용됩니다.
다음 페이지는 상점별 구현을 수용하기 위해 확장 및 사용자 정의되었습니다.
- 주문 확인 페이지
- 주문 내역 페이지
- 주문 세부 정보 페이지
매장별 주문을 매핑된 Mirakl 인스턴스로 내보내도록 주문 배치 흐름이 수정되었습니다. Mirakl 커넥터 및 Magento 코어 클래스는 각각의 Mirakl 인스턴스에서 주문 생성을 다루도록 사용자 지정되었습니다. 프론트엔드 모듈은 주문 내역 및 주문 세부 정보 페이지에서 매장별 주문 상태 표시를 처리하도록 확장 및 재정의되었습니다.
견적 생성 및 동기화
Mirakl 커넥터는 B2B 견적 시나리오를 구현하지 않습니다. 커넥터 기능을 확장하여 Magento에서 매핑된 Mirakl 인스턴스로 또는 그 반대로 매장별 견적 생성, 업데이트 및 동기화를 위한 새로운 기능을 도입했습니다.
Q01에서 Q07까지 7개의 API 호출이 구현되어 B2B 시장의 완전한 견적 기능을 처리했습니다.
가격, 통화 및 로케일 구성
Magento는 매장별 로케일 및 통화 구성을 제공합니다. 여러 Mirakl 인스턴스가 있었기 때문에 각 인스턴스에는 고유한 로케일, 통화 및 가격이 있었습니다.
커넥터 도우미 구성 클래스가 저장소별 동기화를 설정하도록 재정의되었습니다.
관리 그리드 변경
관리 그리드 관련 Cron 작업이 확장 및 사용자 지정되어 저장소별 동기화 세부 정보를 지원합니다. 기본 저장소에서는 제대로 작동하지만 추가 저장소가 있는 경우 저장소별 동기화 업데이트를 표시하려면 이 섹션을 확장해야 했습니다.
프론트엔드 모듈
Breadcrumb, PLP, PDP, 미니 카트, 카트, 체크아웃, 주문 내역, 주문 세부 정보, 견적 생성 및 견적 세부 정보 페이지와 관련된 프런트엔드 구성 요소는 다중 저장소 기능을 처리하도록 사용자 지정되었습니다.
마무리
성공적인 구현 전략의 핵심은 Magento 매장을 특정 Mirakl 인스턴스에 매핑할 수 있는 것입니다. 특정 상점과 관련된 데이터를 식별하는 고유한 방법으로 상점 ID를 사용했습니다. Magento와 Mirakl 간의 데이터 동기화와 관련된 모든 커넥터 코드는 이 다중 저장소 시나리오에 영향을 받았습니다. Quotation 흐름을 제외하고 우리는 새로운 클래스를 작성할 필요가 없었고 확장 및 사용자 정의가 우리의 목표를 달성하는 데 도움이 되었습니다. 구현에서는 2개의 Mirakl 인스턴스와 1개의 Magento 인스턴스의 통합을 다뤘습니다. 그러나 동일한 디자인을 확장하여 더 많은 Mirakl 인스턴스를 통합할 수 있습니다. 이로 인한 성능 문제는 발견되지 않았지만, 각각 고유한 Mirakl 인스턴스가 있는 고유한 상점의 수를 늘릴 때 성능에 영향을 미칠지 여부는 아직 탐색해야 합니다.
저자 소개
Siddhartha Shankar는 McFadyen Digital의 기술 설계자입니다. 그는 시장과 기술의 모든 것을 사랑합니다. 열렬한 여행가이자 음악을 사랑하는 그는 아내와 여섯 살 난 딸과 함께 벵갈루루에 머물고 있습니다. Sid는 McFadyen Digital에서 오랜 기간 동안 일부 큰 티켓 전자 상거래/마켓플레이스 구현 프로젝트에 참여했습니다.