Shopizerマルチマーチャントシステム設定:多店舗管理をサポートする完全ガイド

Shopizerマルチマーチャントシステム設定:多店舗管理をサポートする完全ガイド

ShopizerはJavaベースのオープンソース電子商取引ソリューションで、ヘッドレスコマースとREST APIを提供し、現代的な電子商取引プラットフォームの構築をサポートします。本チュートリアルでは、Shopizerのマルチマーチャントシステム設定を詳細に説明し、多店舗管理機能を実装する方法を解説します。これにより、事業者は複数の独立した店舗を簡単に構築・管理できます。

一、マルチマーチャントシステムの基本概念

ShopizerのマルチマーチャントシステムはShopEntityモデルに基づいて実装されており、各マーチャント店舗は独立した設定、商品、注文、ユーザーデータを持ちます。主要なクラスは以下の通りです:

  • ShopEntity:店舗の基本情報(名称、URL、連絡先など)を格納
  • ReadableShopEntity:店舗情報読み取りモデル
  • PersistableShopEntity:店舗情報永続化モデル

関連実装はこちらで確認できます:sm-shop-model/src/main/java/com/salesmanager/shop/model/store/ShopEntity.java

二、マルチマーチャント環境の迅速な構築

2.1 環境準備

  1. プロジェクトリポジトリをクローンします:
git clone https://gitcode.com/gh_mirrors/sh/shopizer

  1. システムに以下がインストールされていることを確認します:
  • JDK 11+
  • Maven 3.6+
  • MySQL 8.0+

2.2 マルチマーチャントサポートの設定

Shopizerのマルチマーチャント機能はデフォルトで統合されており、主な設定ファイルは以下にあります:

  • コア設定:sm-core/src/main/java/com/salesmanager/core/business/configuration/CoreApplicationConfiguration.java
  • データ設定:sm-core/src/main/java/com/salesmanager/core/business/configuration/DataConfiguration.java

三、マーチャント店舗の作成と管理

3.1 新規店舗の作成

APIを使用して新規店舗を作成する例:

PersistableShopEntity newShop = new PersistableShopEntity();
newShop.setCode("SHOP2023");
newShop.setName("私の新しいストア");
newShop.setUrl("https://newstore.example.com");
// その他の店舗情報を設定...

// 店舗作成APIを呼び出し
ResponseEntity<Void> creationResponse = restTemplate.exchange(
    "/api/v1/private/shop/" + ShopEntity.DEFAULT_SHOP,
    HttpMethod.POST,
    new HttpEntity<>(newShop, headers),
    Void.class
);

詳細な実装はテストクラスを参照:sm-shop/src/test/java/com/salesmanager/test/shop/integration/shop/ShopApiIntegrationTest.java

3.2 店舗情報の管理

Shopizerは以下の店舗管理機能を提供します:

  • 店舗情報の更新
  • 店舗ロゴの設定
  • 配送方法の設定
  • 支払いオプションの管理

関連APIインターフェースはsm-shop/src/main/java/com/salesmanager/shop/store/api/v1/ディレクトリの店舗管理コントローラにあります。

四、多店舗間のデータ分離

ShopizerはShopEntityパラメータを使用してデータ分離を実装し、すべてのコアサービスに店舗識別子を渡す必要があります:

// 指定された店舗の商品リストを取得
ReadableProductList fetchProductsByShop(
    ShopEntity shop, 
    Language language, 
    Long manufacturerId, 
    int startPosition, 
    int maxResults
) throws Exception;

例はこちらから:sm-shop-model/src/main/java/com/salesmanager/shop/store/controller/items/facade/ProductItemsFacade.java

五、店舗のカスタマイズ設定

5.1 配送設定

各店舗は配送方法とエリアを独立して設定できます:

// 店舗の配送設定を取得
ExpeditionConfiguration retrieveShippingConfig(ShopEntity shop, Language language);

// 店舗の配送設定を保存
void saveShippingConfig(ExpeditionConfiguration config, ShopEntity shop);

実装クラス:sm-shop-model/src/main/java/com/salesmanager/shop/store/controller/shipping/facade/ShippingFacade.java

5.2 ユーザー権限管理

マルチ店舗環境でのユーザー権限制御:

// ユーザーが店舗にアクセスする権限があるか確認
boolean checkShopAccess(ShopEntity shop, String requestPath);

実装クラス:sm-shop-model/src/main/java/com/salesmanager/shop/store/controller/user/facade/UserFacade.java

六、よくある問題の解決策

6.1 店舗間のデータ競合

すべてのデータベースクエリにShopEntity条件を含め、店舗間のデータ混同を避けてください。

6.2 複数店舗間のアクセス制御

checkShopAccessメソッドを使用してユーザーの店舗アクセス権を検証します。実装はユーザー管理モジュールにあります。

6.3 店舗設定のバックアップ

定期的に店舗設定データをバックアップしてください。関連設定ファイルはsm-shop/files/shop/ディレクトリにあります。

七、まとめ

ShopizerのマルチマーチャントシステムはShopEntityモデルを通じて強力な多店舗管理機能を提供し、店舗の独立した設定、データ分離、権限制御をサポートします。本チュートリアルの設定ガイドにより、マルチマーチャント対応の電子商取引プラットフォームを迅速に構築し、各事業者の個別のニーズに対応できます。

さらなる機能の詳細については、プロジェクト内のテストケースとAPIドキュメントを参照してください。マルチマーチャントの電子商取引プラットフォーム構築を始めましょう! 🚀

タグ: Java Shopizer マルチマーチャント 電子商取引 REST API

7月9日 16:23 投稿