Skip to content
Last updated

Shopify Export Integration

Shopify Export Integrationコネクタを使用して、MetafieldデータをShopifyにエクスポートできます。

前提条件

  • Treasure Dataの基本知識
  • Shopifyの基本知識

制限事項

  • 結果出力スキーマは、リソースに必要な列(名前とデータ型)と一致する必要があります

TD Consoleを使用した接続の作成

Shopify認証情報の取得

Shopify認証情報を取得するには、以下の手順を実行します。

  1. https://www.shopify.com/ でサインアップして、ユーザーのオンラインストアを作成します。
  2. ユーザーに関する詳細を入力します。
  3. ビジネスに関する追加の詳細を入力します。
  4. カスタムアプリを作成します。
  5. ユーザーはストアのAPI認証情報を確認して使用でき、さまざまな外部アプリケーションと接続できます。このAPIキーは、Treasure Dataへの接続を作成するために必要です。

ストア名の設定

Shopifyは、自由形式のストア名をURL対応の値に変換します。特殊文字を切り捨て、スペースをハイフンに置き換えます。次の例を参照してください。

Example Shop-123-!#$ は example-shop-123 になります

変換された値を使用する必要があります(サインイン後の管理URLに表示されます)。

新しい接続の作成

Treasure Dataでは、クエリを実行する前に、エクスポート時に使用するデータ接続を作成して設定する必要があります。データ接続の一部として、統合にアクセスするための認証を提供します。

  1. TD Consoleを開きます。

  2. Integrations Hub > Catalogに移動します。

  3. Shopify Metafieldを検索します。Createを選択します。

  4. 次のダイアログが開きます。必須フィールドに入力してから、Continueを選択します。Passwordの値については、Shopify consoleでAdmin API access tokenを確認してください。

  5. 接続の名前を入力します。

  6. Doneを選択します。

データ接続でのエクスポート結果の設定

このステップでは、クエリを作成または再利用します。クエリでデータ接続を設定します。

場合によっては、クエリで列マッピングを定義する必要があります。

パラメータを指定して接続を設定する

  1. TD Consoleを開きます。
  2. Data Workbench > Queriesに移動します。
  3. データのエクスポートに使用する予定のクエリを選択します。

各リソースタイプには、特定の列と列のデータ型が必要です。

ActionResourceColumn requireQueryNote
CreateShop[key: String, namespace: String, value: any]SELECT key, namespace, value FROM table
CreateProduct[product_id: Integer, key: String, namespace: String, value: any]SELECT product_id, key, namespace, value FROM table ORDER BY product_idパフォーマンスを向上させるためにORDER BYを使用してください
CreateProduct Variant[variant_id: Integer, key: String, namespace: String, value: any]SELECT variant_id, key, namespace, value FROM table ORDER BY variant_idパフォーマンスを向上させるためにORDER BYを使用してください
CreateProduct Image[product_id: Integer, image_id: Integer, key: String, namespace: String, value: any]SELECT product_id, image_id, key, namespace, value FROM table ORDER BY product_id, image_idパフォーマンスを向上させるためにORDER BYを使用してください
CreateCustom Collection[custom_collection_id: Integer, key: String, namespace: String, value: any]SELECT custom_collection_id, key, namespace, value FROM table ORDER BY custom_collection_idパフォーマンスを向上させるためにORDER BYを使用してください
CreateSmart Collection[smart_collection_id: Integer, key: String, namespace: String, value: any]SELECT smart_collection_id, key, namespace, value FROM table ORDER BY smart_collection_idパフォーマンスを向上させるためにORDER BYを使用してください
CreateCustomer[customer_id: Integer, key: String, namespace: String, value: any]SELECT customer_id, key, namespace, value FROM table ORDER BY customer_idパフォーマンスを向上させるためにORDER BYを使用してください
CreateOrder[order_id: Integer, key: String, namespace: String, value: any]SELECT order_id, key, namespace, value FROM table ORDER BY order_idパフォーマンスを向上させるためにORDER BYを使用してください
CreateDraft Order[draft_order_id: Integer, key: String, namespace: String, value: any]SELECT draft_order_id, key, namespace, value FROM table ORDER BY draft_order_idパフォーマンスを向上させるためにORDER BYを使用してください
CreateBlog[blog_id: Integer, key: String, namespace: String, value: any]SELECT blog_id, key, namespace, value FROM table ORDER BY blog_idパフォーマンスを向上させるためにORDER BYを使用してください
CreateArticle[blog_id: Integer, article_id: Integer, key: String, namespace: String, value: any]SELECT blog_id, article_id, key, namespace, value FROM table ORDER BY blog_id, article_idパフォーマンスを向上させるためにORDER BYを使用してください
CreatePage[page_id: Integer, key: String, namespace: String, value: any]SELECT page_id, key, namespace, value FROM table ORDER BY page_idパフォーマンスを向上させるためにORDER BYを使用してください
Update[metafield_id: Integer, value: any]SELECT metafield_id, value FROM table
  1. クエリエディタの上部にあるExport Resultsを選択します。Choose Integrationダイアログが開きます。 結果をエクスポートするために使用する接続を選択する際、既存の接続を使用するか、新しい接続を作成するかの2つのオプションがあります。

既存の接続を使用する

  1. 検索ボックスに接続名を入力してフィルタリングします。

  1. 接続を選択します。Nextを選択します。

新しいShopify接続を作成する

  1. Create New Integrationを選択します。
  2. 接続のTypeを選択します。
  3. 接続のNameを入力します。
  4. Store Name、Password、API Keyを入力します。
  5. Nextを選択します。次のダイアログが開きます。

  1. Actionを選択します。アクションがCreate Metafieldの場合、metafieldと一緒に作成するリソースを選択します。
  2. エラーが発生したときにジョブを停止する場合は、Stop on failed recordを選択します。
  3. Doneを選択します。

(オプション) Query Export ジョブをスケジュールする

Scheduled Jobs と Result Export を使用して、指定したターゲット宛先に出力結果を定期的に書き込むことができます。

Treasure Data のスケジューラー機能は、高可用性を実現するために定期的なクエリ実行をサポートしています。

2 つの仕様が競合するスケジュール仕様を提供する場合、より頻繁に実行するよう要求する仕様が優先され、もう一方のスケジュール仕様は無視されます。

例えば、cron スケジュールが '0 0 1 * 1' の場合、「月の日」の仕様と「週の曜日」が矛盾します。前者の仕様は毎月 1 日の午前 0 時 (00:00) に実行することを要求し、後者の仕様は毎週月曜日の午前 0 時 (00:00) に実行することを要求するためです。後者の仕様が優先されます。

TD Console を使用してジョブをスケジュールする

  1. Data Workbench > Queries に移動します

  2. 新しいクエリを作成するか、既存のクエリを選択します。

  3. Schedule の横にある None を選択します。

  4. ドロップダウンで、次のスケジュールオプションのいずれかを選択します:

    ドロップダウン値説明
    Custom cron...Custom cron... の詳細を参照してください。
    @daily (midnight)指定されたタイムゾーンで 1 日 1 回午前 0 時 (00:00 am) に実行します。
    @hourly (:00)毎時 00 分に実行します。
    Noneスケジュールなし。

Custom cron... の詳細

Cron 値説明
0 * * * *1 時間に 1 回実行します。
0 0 * * *1 日 1 回午前 0 時に実行します。
0 0 1 * *毎月 1 日の午前 0 時に 1 回実行します。
""スケジュールされた実行時刻のないジョブを作成します。
 *    *    *    *    *
 -    -    -    -    -
 |    |    |    |    |
 |    |    |    |    +----- day of week (0 - 6) (Sunday=0)
 |    |    |    +---------- month (1 - 12)
 |    |    +--------------- day of month (1 - 31)
 |    +-------------------- hour (0 - 23)
 +------------------------- min (0 - 59)

次の名前付きエントリを使用できます:

  • Day of Week: sun, mon, tue, wed, thu, fri, sat.
  • Month: jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec.

各フィールド間には単一のスペースが必要です。各フィールドの値は、次のもので構成できます:

フィールド値 例の説明
各フィールドに対して上記で表示された制限内の単一の値。
フィールドに基づく制限がないことを示すワイルドカード '*''0 0 1 * *'毎月 1 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。
範囲 '2-5' フィールドの許可される値の範囲を示します。'0 0 1-10 * *'毎月 1 日から 10 日までの午前 0 時 (00:00) に実行するようにスケジュールを設定します。
カンマ区切りの値のリスト '2,3,4,5' フィールドの許可される値のリストを示します。0 0 1,11,21 * *'毎月 1 日、11 日、21 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。
周期性インジケータ '*/5' フィールドの有効な値の範囲に基づいて、 スケジュールが実行を許可される頻度を表現します。'30 */2 1 * *'毎月 1 日、00:30 から 2 時間ごとに実行するようにスケジュールを設定します。 '0 0 */5 * *' は、毎月 5 日から 5 日ごとに午前 0 時 (00:00) に実行するようにスケジュールを設定します。
'*' ワイルドカードを除く上記の いずれかのカンマ区切りリストもサポートされています '2,*/5,8-10''0 0 5,*/10,25 * *'毎月 5 日、10 日、20 日、25 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。
  1. (オプション) Delay execution を有効にすることで、クエリの開始時刻を遅延させることができます。

クエリを実行する

クエリに名前を付けて保存して実行するか、単にクエリを実行します。クエリが正常に完了すると、クエリ結果は指定された宛先に自動的にエクスポートされます。

設定エラーにより継続的に失敗するスケジュールジョブは、複数回通知された後、システム側で無効化される場合があります。

(オプション) Delay execution を有効にすることで、クエリの開始時刻を遅延させることができます。

Audience Studio で Segment をアクティベートする

Audience Studio で activation を作成することで、segment データをターゲットプラットフォームに送信することもできます。

  1. Audience Studio に移動します。
  2. parent segment を選択します。
  3. ターゲット segment を開き、右クリックして、Create Activation を選択します。
  4. Details パネルで、Activation 名を入力し、前述の Configuration Parameters のセクションに従って activation を設定します。
  5. Output Mapping パネルで activation 出力をカスタマイズします。

  • Attribute Columns
    • Export All Columns を選択すると、変更を加えずにすべての列をエクスポートできます。
    • + Add Columns を選択して、エクスポート用の特定の列を追加します。Output Column Name には、Source 列名と同じ名前があらかじめ入力されます。Output Column Name を更新できます。+ Add Columns を選択し続けて、activation 出力用の新しい列を追加します。
  • String Builder
    • + Add string を選択して、エクスポート用の文字列を作成します。次の値から選択します:
      • String: 任意の値を選択します。テキストを使用してカスタム値を作成します。
      • Timestamp: エクスポートの日時。
      • Segment Id: segment ID 番号。
      • Segment Name: segment 名。
      • Audience Id: parent segment 番号。
  1. Schedule を設定します。

  • スケジュールを定義する値を選択し、オプションでメール通知を含めます。
  1. Create を選択します。

batch journey の activation を作成する必要がある場合は、Creating a Batch Journey Activation を参照してください。

オプション:Workflowでのエクスポート結果の設定

metafieldの作成

timezone: UTC

_export:
  td:
    database: sample_datasets

+td-result-into-target:
  td>: queries/sample.sql
  result_connection: your_connections_name
  result_settings:
    apikey: {apikey}
    password: {password}
    store_name: {store_name}
    action: create
    resource: shop
    stop_on_failed_record: false

metafieldの更新

timezone: UTC

_export:
  td:
    database: sample_datasets

+td-result-into-target:
  td>: queries/sample.sql
  result_connection: your_connections_name
  result_settings:
    apikey: {apikey}
    password: {password}
    store_name: {store_name}
    action: update
    stop_on_failed_record: false

Workflowでデータコネクタを使用してデータをエクスポートする方法の詳細については、こちらをクリックしてください。