---
title: "製品リポジトリの理解"
slug: "understanding-the-product-repository"
abstract: "製品同期のための製品リポジトリを扱う際のベストプラクティスの概要。"
---
# 製品リポジトリの理解

もしあなたのCommerce Connectソリューションが製品同期を使用しているなら、製品リポジトリを使ってSitecoreに製品をローカルに保存します。

> !注プロダクト同期の利用可能性については、[dev.sitecore.net](https://dev.sitecore.net/Downloads/Sitecore_Commerce/90/Sitecore_Experience_Commerce_90_Update2.aspx)を参照してください。

## 単一のリポジトリ

複数のウェブショップが同じSitecoreインスタンスにホストされていても、単一の製品リポジトリのみを管理するのがベストプラクティスです。プロダクトリポジトリは複数のウェブショップを扱うよう設計されており、製品は完全に隔離されている場合もあれば、一部は異なるウェブショップ間で共有されることもあります。ディビジョンを使って商品にタグ付けでき、製品に複数のディビジョンでタグ付けすることも可能です。ディビジョンは、例えば製品がどのウェブショップまたはウェブショップに属しているかを示すために使うことができます。

> !注デフォルトの実装は単一の製品リポジトリのみを扱うよう設計されていますが、カスタマイズ可能です。

## アイテムモデルのテンプレート設計

[製品同期サービス層](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/understanding-the-product-synchronization-service-layer.html "Understanding the Product Synchronization service layer")は、複数の事前定義されたテンプレートに基づくSitecore XPコンテンツ内のアイテムモデル表現も含んでいます。モデルは以下の通りです:

-   複合木構造を含むメインのバケット製品リポジトリで、それぞれが製品を表します。
-   製造業者、分類、カテゴリ、製品タイプ、部門、リソースなど、製品に関連するデータを保持する複数の関連リポジトリがあります。

製品リポジトリ設計の典型的なアプローチは、すべての製品データを単一のアイテムにまとめてSitecoreで製品を表現することです。この単一項目のアプローチは、以下の欠点を伴うフラットモデルを生み出します。

-   **冗長データ** とは、同じデータが複数の製品アイテムに複製され、同じ情報を共有することを指します。これはSQLデータベースやSitecoreではベストプラクティスではありません。データが重複すればするほど、容量を消費し、データ変更時の維持管理が難しくなります。
-   **テンプレート過負荷** – 以下のような望ましくないデザインのいずれかを引き起こすことがあります:
    -   リポジトリ内のすべての種類の製品のすべてのフィールドの組み合わせを含む、すべての製品に一つのテンプレートを用意します。各製品ごとに入力されるフィールドはごく一部だけです。
    -   製品ごとに1つのテンプレートを用意し、その製品ごとに専用フィールドを設けます。テンプレート継承は良いアイデアのように思えますが、製品タイプが多すぎてテンプレートが過剰になる可能性があります。

Commerce Connectでは、製品データを複数のアイテムに分割し、コア製品データ用のテンプレートと、追加情報の種類ごとに限定された少数の追加テンプレートを用意する方法の解決策です。

アイテムベースモデルで使用されるテンプレートは、製品の種類に関わらず同じままです。