[Magento2] 동적으로 카테고리를 만드는 방법 - Elasticsearch Virtual Category를 소개합니다.

5126 단어 Magento2e-commerceOSS
이 기사는 Magento Advent Calendar 2019의 17 일째 기사입니다.

모쿠지
1. 원래 왜 동적으로 카테고리 상품을 결정할 필요가 나오는지
2. 도구 소개
3. 1단계 Elasticseach 설치 및 시작
4. 2단계 SmileSA/ElasticSuite 설치 및 시작
5. 3단계 VirtualCategory(가상 카테고리), 규칙 만들기

* 환경은 우분투를 가정합니다. 자세한 이유를 알고 싶은 분은 Magento를 설치해 보자 | 사쿠라의 지식을 참조하십시오.

1. 원래 왜 동적으로 카테고리 상품을 결정할 필요가 나오는지



1.1 카테고리 작성이 편하다



상품 등록이나 카테고리 작성에 일일이 수고를 걸지 않아도 됩니다.

인적 실수를 막는 것도 좋은 점입니다.

1.2 카테고리의 운용도 편



카테고리를 구성하는 상품을 바꿀 때나 카테고리의 이사할 때 등에도, 규칙의 변경을 하면 좋을 뿐이므로 또 락틴입니다.

1.3 유연한 운영이 가능



할인이 있는 상품만을 표시하는, 어느 플래그가 서 있는 상품만을 표시하는 등 유연한 운영이 가능합니다.

또 브랜드별, 상품의 스펙별 등, 커스텀 상품 속성의 값을 사용해 Virtual Category를 만들면 보다 자유도가 올라가 편리합니다.

조건의 조합을 사용하고 있는 브랜드로 할인중의 것만을 표시,라고 할 수도 있습니다.

2. 도구 소개



Elasticsearch
검색 및 분석에 사용되는 도구로, 이번에 소개하는 기능은 여기에 의존합니다.
Magento의 표준에서는 검색이 이마이치이므로 기본 어느 프로젝트에도 도입을 추천합니다.
상품 검색의 정밀도와 속도가 개선되거나 가상 카테고리의 실현 등이 용이해집니다.

Magento2.3에서는 Elasticsearch6.x 시스템을 사용합니다. (DevDocs의 링크로부터 날아가면 7.x계의 인스트럭션에 가는 함정이 있으므로 주의)

Smile ElasticSuite
Elasticsearch를 바탕으로 Magento에서 바로 상용 패키지와 같은 기능을 사용할 수 있게 되는 모듈군입니다.
Magento에 Elasticsearch를 사용할 때는 기본 이쪽을 사용합니다.
이번에는 그 중에서도 Smile_ElasticsuiteVirtualCategory를 이용합니다.

Magento2.3에서는 ElasticSuite2.8.x 시스템을 사용합니다.

3. 1단계 Elasticsearch 설치



3.1 Java 설치


// パッケージの更新 & OpenJDKをインストール
sudo apt-get update && sudo apt-get install default-jdk

// インストールVersionを確認
java -version

아래와 같은 출력이 나오면 OK입니다.
openjdk version “1.8.0_222”
OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-1ubuntu1~16.04.1-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)

3.2 Elasticsearch 설치 및 시작


// Public signing keyを取得
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

// APTレポジトリをインストール
sudo apt-get install apt-transport-https

// aptのソースにレポジトリ定義を保存
echo “deb https://artifacts.elastic.co/packages/6.x/apt stable main” | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list

// パッケージの更新 & Elasticsearchをインストール
sudo apt-get update && sudo apt-get install elasticsearch

// Elasticsearchを起動(systemdの場合)
sudo systemctl start elasticsearch.service

// システム立ち上げ時に自動的に起動するようにする
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service


curl로 부팅 확인
다음과 같은 출력이 나오면 시작 완료.
curl -X GET "localhost:9200/?pretty"


{
  “name” : “u_euS1C”,
  “cluster_name” : “elasticsearch”,
  “cluster_uuid” : “7se8J-n5Sem0Ee1CAoNayQ”,
  “version” : {
    “number” : “6.8.5”,
    “build_flavor” : “default”,
    “build_type” : “deb”,
    “build_hash” : “78990e9”,
    “build_date” : “2019-11-13T20:04:24.100411Z”,
    “build_snapshot” : false,
    “lucene_version” : “7.7.2”,
    “minimum_wire_compatibility_version” : “5.6.0”,
    “minimum_index_compatibility_version” : “5.0.0”
  },
  “tagline” : “You Know, for Search”
}

3.3 Elasticsuite에 필요한 플러그인도 설치하십시오.


cd /usr/share/elasticsearch

bin/elasticsearch-plugin install analysis-phonetic
bin/elasticsearch-plugin install analysis-icu

이제 Elasticsearch를 준비할 수 있었습니다.

4. 2단계 SmileSA/ElasticSuite 설치



DocumentRoot로 이동하여 composer.json을 편집하고
“require”: {
   “smile/elasticsuite”: “^2.8”,
}

추가.

그 후,
composer update

를 실행하여 모듈을 설치합니다.

다음으로 모듈을 활성화합니다.
bin/magento module:enable Smile_ElasticsuiteCore Smile_ElasticsuiteCatalog Smile_ElasticsuiteCatalogRule Smile_ElasticsuiteCatalogOptimizer Smile_ElasticsuiteVirtualCategory

// モジュール有効/無効時には毎回setup:upgradeが必要です。
bin/magento setup:upgrade

이제 Elasticsuite를 사용할 수 있습니다.

5. 3단계 VirtualCategory(가상 카테고리) 만들기



우선 관리 화면에서 보통 카테고리를 추가합니다.

그러면 카테고리의 상품을 선택하는 탭에 Virtual Category로 할지 여부를 선택하는 버튼이 나오므로 Yes를 선택합니다.



규칙을 추가합니다.



인덱스를 재구축하여 완성입니다.

Magento 서버에서 Project Root로 이동하여,
bin/magento indexer:reindex elasticsuite_categories_fulltext

수고하셨습니다.

효율적으로 카테고리의 운용을 실시하는 힌트가 되면 다행입니다!

좋은 웹페이지 즐겨찾기