> ## Documentation Index
> Fetch the complete documentation index at: https://moengage.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 商品カタログの同期

> Shopify の商品カタログを MoEngage に同期して、顧客向けのパーソナライズされたレコメンデーションを生成します。

カタログ同期を有効にすると、MoEngage は Shopify の商品データを取得し、キャンペーン、Flows、パーソナライズで利用できるようにします。この記事では、カタログ同期の動作、同期に含まれるデータ、カタログを維持するためのガイダンスについて説明します。

<Check>
  **前提条件**

  カタログ同期をパーソナライズに使用する前に、アカウントで Basic Recommendations を有効にする必要があります。Enterprise プランのアカウントでは、Basic Recommendations がデフォルトで有効になっています。他のプランを使用している場合は、カスタマーサクセスマネージャーまたは MoEngage サポートチームに連絡して、この機能を有効にできます。
</Check>

## カタログ同期の動作

MoEngage は、ストアからリアルタイムでデータを取得して Shopify の商品カタログを同期します。同期されたカタログは、商品レコメンデーションブロック、メッセージ内の動的コンテンツ、セグメンテーションフィルターのデータソースとして機能します。

カタログ同期はデフォルトでは有効になっていません。有効にするには、MoEngage の Shopify 統合設定に移動し、**Catalog Sync** トグルをオンにします。このトグルが有効になるには、MoEngage 側で 1 回限りのセットアップ手順が必要であることに注意してください。

<Warning>
  **1 回限りの有効化が必要です**

  カタログ同期が機能する前に、MoEngage チームがワークスペースで有効化する必要があります。トグルを有効にした後に商品が表示されない場合は、カスタマーサクセスマネージャーに連絡するか、サポートチケットを作成してください。
</Warning>

## カタログ同期の設定

最初の同期をリクエストする前に、カタログのスキーマを定義します。カタログに名前を付け、各属性を Shopify のソースにマッピングし、アイテムを一意に識別する属性を選択し、商品価格の通貨を選択します。

カタログ同期を設定して開始するには、次の手順を実行します。

1. Shopify 管理画面で **Apps** > **MoEngage** に移動します。
2. **Sync product catalog** タブをクリックします。
3. **Catalog name** にカタログの名前を入力します。
4. テーブル内の各属性について、**Data type** と **Shopify source** を選択します。
5. カタログ内の各アイテムを一意に識別する属性の **Mark unique** チェックボックスを選択します。
6. テーブルにまだ表示されていない属性をマッピングするには、**Add custom attributes** に名前を入力し、**Data type** を選択して **Add attribute** をクリックします。
7. **Choose currency of product price** で、商品価格に使用する通貨を選択します。
8. **Request catalog sync** をクリックします。
9. **Confirm catalog sync** ダイアログで **Confirm** をクリックします。

<img src="https://mintcdn.com/moengage/-R8ccvGQW5QDFNiJ/images/ShopifyCatalogSchema1.png?fit=max&auto=format&n=-R8ccvGQW5QDFNiJ&q=85&s=344a3bd6327bbd97618f6e51db3f1a1e" alt="カタログ名、属性マッピングテーブル、通貨の選択が表示された Sync product catalog タブ" width="1410" height="1768" data-path="images/ShopifyCatalogSchema1.png" />

MoEngage は、[同期される属性](#synced-attributes)で説明されているデフォルトのマッピングをテーブルに事前入力します。事前入力された属性のデータ型や Shopify のソースを変更したり、行の末尾にある削除アイコンを使用して属性を削除したりできます。

追加した各カスタム属性は、テーブルの末尾に新しい行として表示されます。すべての行にデータ型と Shopify のソースの両方が設定されるまで、**Request catalog sync** は無効のままです。

<img src="https://mintcdn.com/moengage/-R8ccvGQW5QDFNiJ/images/ShopifyCatalogSchema2.png?fit=max&auto=format&n=-R8ccvGQW5QDFNiJ&q=85&s=ddb2fdd6924dade8d14bcf7c4b63dd69" alt="名前が入力され、データ型が選択された Add custom attributes フィールドと Add attribute ボタン" width="2006" height="1340" data-path="images/ShopifyCatalogSchema2.png" />

**Shopify source** リストには、Product title、Description (HTML)、Vendor / Brand、Tags、URL Handle、Variant Price、Compare at price、SKU、Inventory Qty、Variant name、Primary Image URL などのネイティブの商品フィールドが含まれます。Shopify のメタフィールドもこのリストに **Meta field** として表示されます。

### 一意の識別子を選択する

すべてのカタログには、各アイテムを一意に識別する属性が 1 つ必要です。その属性の行にある **Mark unique** チェックボックスを選択します。一意の識別子として、**Variant ID**、**SKU**、またはカスタム属性を指定できます。

最初の同期が完了した後は一意の識別子を変更できないため、アイテムごとに値が異なる属性を選択してください。2 つ以上のアイテムが同じ値を共有している場合、MoEngage はそれらを同じアイテムとして扱い、その識別子について最後に受信した値のみを保持します。つまり、先のアイテムはカタログ内で上書きされます。

### 最初の同期後に変更できない設定

最初の同期が正常に完了すると、MoEngage はスキーマの一部を固定するため、同期をリクエストする前にマッピングを確認してください。

<Warning>
  同期すると、通貨とそれまでに追加された属性は編集または削除できなくなります。新しい属性は後から追加できます。
</Warning>

最初の同期が正常に完了した後は、テーブルにすでに存在する属性の名前変更や削除、データ型の変更、Shopify のソースの変更、カタログの通貨の変更はできません。新しいカスタム属性はいつでも追加でき、MoEngage は次回の同期でそれらを含めます。

<img src="https://mintcdn.com/moengage/-R8ccvGQW5QDFNiJ/images/ShopifyCatalogSchema3.png?fit=max&auto=format&n=-R8ccvGQW5QDFNiJ&q=85&s=9493bab1aaeae201415b6fb0523dde20" alt="Confirm ボタンがハイライトされた Confirm catalog sync ダイアログ" width="964" height="336" data-path="images/ShopifyCatalogSchema3.png" />

## 同期頻度

最初の同期が完了した後、MoEngage はカタログをリアルタイムで最新の状態に保ちます。Shopify で商品が変更されると、その変更はスケジュールされた更新を待たずに MoEngage のカタログに反映されるため、商品価格、画像、在庫状況などのカタログ属性に依存するキャンペーンでは最新の値が使用されます。

<Note>
  リアルタイムのカタログ同期はアーリーアクセスで提供されています。
</Note>

MoEngage は、Shopify のステータスが **Active** の商品のみを同期します。商品のステータスが **Active** から他の値に変更されると、MoEngage はその商品をカタログから削除します。

## 同期される属性

MoEngage は、次の商品属性をマッピングテーブルに事前入力します。最初の同期の前であれば、これらのデータ型や Shopify のソースを変更したり、不要な属性を削除したり、独自の属性を追加したりできます。

| 属性 | 説明 | Shopify のソースフィールド |
| - | - | - |
| **Product title** | ストアに表示される商品名。 | Product title |
| **Variant ID** | 各商品バリアント（サイズ、色など）の一意の識別子。カタログ内の各アイテムのプライマリキーとして機能します。 | Variant ID |
| **Product ID** | 親商品の一意の識別子。複数のバリエーション ID が同じ商品 ID を持つことができます。 | Product ID |
| **Product URL** | ストアフロントでアイテムにアクセスするための URL。 | Product URL |
| **Primary Image URL** | バリエーション ID に関連付けられたメインの商品画像の URL。 | Primary Image URL |
| **Vendor / Brand** | 商品のベンダー、ブランド、またはサプライヤーの名前。 | Vendor / Brand |
| **SKU (Stock Keeping Unit)** | このバリアントの社内商品コード。 | SKU |
| **Variant Name** | 特定のバリアントの名前（例: Blue / XL）。 | Variant Name |
| **Variant Price** | このバリアントの表示価格。 | Variant Price |
| **Inventory Qty** | ストアにあるこのバリアントの利用可能な在庫数。 | Inventory Qty |
| **Description (HTML)** | 商品の説明テキスト。 | Description (HTML) |
| **Created At** | Shopify で商品を作成した日付（ISO 8601 形式）。 | Product creation date |
| **Updated At** | Shopify で商品を最後に変更した日付（ISO 8601 形式）。 | Last modified date |

## 除外されるデータ

次のデータは、デフォルトのカタログ同期では同期されません。

* **サードパーティアプリのフィールド**: ソースとして利用できるのは、ネイティブの Shopify 商品フィールドと Shopify のメタフィールドのみです。

## 同期とパーソナライズに関する重要な考慮事項

カタログデータを効果的に使用するには、次の情報を確認してください。

<AccordionGroup>
  <Accordion title="Webhook のカタログエンリッチメント">
    **Shopify - Order Placed** や **Shopify - Add to Cart** などの Webhook イベントのペイロードには、商品 URL や画像 URL は含まれません。これらの属性をキャンペーンのパーソナライズで使用するには、送信時にカタログエンリッチメントを使用します。MoEngage は同期されたカタログで該当する商品を検索し、その属性をメッセージに付加します。詳細については、[こちら](/docs/ja/user-guide/content/recommendations/getting-started/overview)を参照してください。
  </Accordion>

  <Accordion title="データの一貫性に関する要件">
    商品を正しくインポートするには、カタログ全体でフィールド値の型が一貫している必要があります。たとえば、**Variant Name** フィールドにほとんどの商品ではテキスト文字列が、一部の商品では数値が含まれている場合、MoEngage は数値を持つ商品をスキップします。同期する前に、Shopify のデータで **SKU**、**Price**、**Variant Name** フィールドの形式に不整合がないか確認してください。
  </Accordion>
</AccordionGroup>

## カタログ同期の確認

同期が正しく完了したことを確認するには、次の手順を実行します。

1. MoEngage ダッシュボードで **Content** > [**Catalog**](/docs/ja/user-guide/content/recommendations/getting-started/catalogs) に移動し、商品の総数を確認します。
2. この数を Shopify のアクティブな商品数（Shopify 管理画面 > **Products** で、アクティブかつ下書きでないアイテムでフィルタリング）と比較します。
3. 数が想定より少ない場合は、Shopify の商品データで値に不整合があるフィールド（特に **Variant Name**）を確認します。
4. データに一貫性があるにもかかわらず商品が不足している場合は、ワークスペース ID と不足している商品のおおよその数を添えてサポートにお問い合わせください。

## トラブルシューティング

カタログの問題をトラブルシューティングするには、次の表を確認してください。

| 症状 | 確認事項 |
| - | - |
| カタログ同期を有効にした後に商品が表示されない。 | カタログ同期には 1 回限りの有効化が必要です。カスタマーサクセスマネージャーに確認するか、サポートチケットを作成して、ワークスペースで有効化されているか確認してください。 |
| 同期の完了後、MoEngage で一部の商品が除外される。 | 次の点を確認してください。<ul><li>Shopify のステータスが **Active** でない商品は同期されません。</li><li>商品間でデータ型が一貫していないフィールド（たとえば、一部はテキストで他は数値）はインポートされません。</li><li>一意として指定した属性が複数のアイテムで同じ値を持つ場合、MoEngage はそれらのアイテムを 1 つとして扱い、最新の値のみを保持するため、先のアイテムは表示されません。</li></ul> |
| カタログにメタフィールドの値が含まれない。 | **Sync product catalog** タブで、メタフィールドを属性にマッピングしてください。メタフィールドは **Shopify source** リストに **Meta field** として表示されます。後から属性のソースを変更することはできないため、最初の同期の前にマッピングしてください。 |
| SKU が一意の商品識別子として機能しない。 | 最初の同期の前に、**SKU** 行の **Mark unique** チェックボックスを選択してください。MoEngage はデフォルトで **Variant ID** を一意として指定しており、最初の同期が完了した後はマッピングを変更できません。 |

<Info>
  **情報**

  Shopify 統合について質問がある場合は、[FAQ](/docs/ja/developer-guide/ecommerce-platforms/shopify/faqs) をお読みください。
</Info>
