Shopify Export Connector V2は、ShopifyのGraphQL Admin APIを使用して、さまざまなShopifyリソースのメタフィールドを作成および更新するように設計されています。より効率的で柔軟なGraphQL APIを活用することで、このバージョンのコネクタは、REST APIエンドポイントを使用していたV1からの大幅なアップグレードとなります。
主な機能
- パフォーマンスと柔軟性を向上させるためのGraphQL API統合
- 複数のリソースタイプにわたるメタフィールドの作成と更新のサポート
- バッチ処理機能
- 包括的なエラー処理と検証
- ShopifyのAPIガイドラインに準拠したレート制限
サポートされるリソースタイプ
コネクタは、次のShopifyリソースのメタフィールド操作をサポートしています:
- Product
- MediaImage(V1のProduct Imageの代わり)
- ProductVariant
- Collection
- Blog
- Page
- DraftOrder
- Customer
- Article
- Shop
- TD Toolbeltを含むTreasure Dataの基本知識。
- Shopifyの基本知識。
Shopifyアプリを設定する際は、使用するリソースとアクションに応じて以下のAPIスコープが付与されていることを確認してください。
| リソース | メタフィールドの作成 | メタフィールドの更新 |
|---|---|---|
| Article、Blog、Page | write_content | read_content、write_content、read_online_store_pages |
| Product、ProductVariant、Collection、MediaImage | write_products | read_products、write_products |
| Customer | write_customers | read_customers、write_customers |
| Draft Order | write_draft_orders | read_draft_orders、write_draft_orders |
| Order | write_orders | read_orders、write_orders |
| Shop | 不要 | 不要 |
- MediaImage vs Product Image—V1からV2への重要な変更は、画像関連のメタフィールドの処理方法です:
- V1では製品画像のメタフィールドを作成/更新するためにProduct Image IDを使用していましたが、V2ではMediaImage IDが必要です。
- MediaImageは、さまざまなメディアタイプ(製品画像だけでなく)を参照できる、より汎用性の高いリソースタイプです。
- V1でProduct Image IDで作成された既存のメタフィールドは、MediaImage IDを使用するように移行する必要があります
- メタフィールドのキーは3〜64文字である必要があります
- 名前空間は3〜255文字である必要があります
セキュリティポリシーで IP ホワイトリストが必要な場合は、接続を成功させるために Treasure Data の IP アドレスを許可リストに追加する必要があります。
リージョンごとに整理された静的 IP アドレスの完全なリストは、次のリンクにあります: IP Addresses for Integrations
最初のステップは、資格情報のセットで新しい認証を作成することです。
- Integrations Hubを選択します。
- Catalogを選択します。

- CatalogでShopifyを検索し、アイコンの上にマウスを置いてCreate Authenticationを選択します。

- Credentialsタブが選択されていることを確認してから、統合の資格情報を入力します。

新しい認証フィールド
| Parameter | Description |
|---|---|
Store name | Shopifyストアのストア識別子。次の2つの形式で入力できます:
ストア名のみを使用している場合は、 |
| Auth method | 使用する認証方法を選択します:
|
| Admin API access token | (Auth methodがStatic Tokenの場合に必須) ShopifyのAdmin APIで認証するための永続的なアクセストークン。このトークンは、Shopify管理パネルのApps > Develop apps > Create an app > Configure Admin API scopesから生成できます。トークンには、メタフィールドの管理などの操作を実行するための適切な権限が必要です。 |
| Client ID | (Auth methodがClient Credentialsの場合に必須) アプリ用にShopify Dev Dashboardが発行したClient ID。 |
| Client Secret | (Auth methodがClient Credentialsの場合に必須) アプリ用にShopify Dev Dashboardが発行したClient Secret。 |
- Continueを選択します。
- 認証の名前を入力し、Doneを選択します。
Treasure コンソールは、データをエクスポートする複数の方法をサポートしています。次の手順に従って、Data Workbenchからデータをエクスポートしてください。
- Data Workbench > Queriesに移動します。
- New Queryを選択し、クエリを定義します。
- Export Resultsを選択して、データのエクスポートを設定します。
- 既存のShopify CAPI認証を選択するか、前述のように新しい認証を作成します。
- Export Resultsを設定します

| Field | Description |
|---|---|
| Action | ドロップダウンメニューから、実行するアクションを指定します:
|
Resource | ドロップダウンメニューから、メタフィールドを追加するShopifyリソースを選択します: 利用可能なオプション:
|
| Stop on failed record | 選択すると、コネクタはエラーが発生した場合に処理を停止します。選択されていない場合は、失敗したレコードをスキップして、残りのレコードの処理を続行します。 |
- Doneを選択します。
Shopifyでメタフィールドを作成するには、Shopifyのガイドラインに準拠した必要なフィールドを含むデータエクスポートクエリを構築する必要があります。デフォルトフィールドの場合、列名が「Field/Column-Level Specifications」セクションにリストされているものと一致することを確認してください。コネクタは列名を自動的に正規化してShopifyの必要な形式に一致させるため、大文字と小文字を区別する必要はありません。たとえば、フィールド名が「resource_id」の場合、「RESOURCE_ID」、「Resource_Id」、または「resource_id」と記述でき、コネクタはShopifyの要件に一致するように標準化します。
| Specification | Description |
|---|---|
| Conditionally Required Columns | クエリ結果には、メタフィールドを添付するリソースを識別するためのresource_id(例: product_id、variant_id)、およびkey、namespace、value列のいずれかを含める必要があります |
| Null Value Columns | NULL値を持つ列は、エクスポート中に無視されます |
| Duplicated Columns | エクスポートクエリでは、重複する列名は許可されていません |
| Maximum Value Length | 列の値には、そのタイプに基づいて特定の長さ制限があります(Field/Column-Level Specificationsセクションで詳しく説明) |
| Field | Required | Data Type | Description | Additional Specifications |
|---|---|---|---|---|
| resource_id | Yes | string | Shopifyリソース(製品、バリアントなど)の識別子 | 数値IDまたはグローバルID形式を使用できます。コネクタは必要に応じてグローバルID形式への変換を自動的に処理します。 |
| key | Yes | string | 名前空間内のメタフィールドの一意の識別子 |
|
| namespace | Yes(アプリ予約名前空間を使用する場合はオプション) | string | 関連するメタフィールドのグループ識別子 |
|
| value | Yes | string | メタフィールドの実際のコンテンツ | 常に文字列として保存されます。以下のタイプ固有のフォーマット要件については、「Value Specifications by Type」セクションを参照してください:
|
| type | No | string | 値の解釈方法を定義します | 提供されていない場合、タイプは自動的に検出されます。「Type Detection and Specification」セクションを参照してください。 |
クエリ結果にtype列を含めない場合、コネクタはvalue列のデータタイプに基づいてメタフィールドタイプを自動的に決定します:
| Type | Automatically Detected As |
|---|---|
| Numbers without decimal places | number_integerタイプ |
| Text values | single_line_text_fieldタイプ |
| Numbers with decimal places | number_decimalタイプ |
| Boolean values | booleanタイプ |
| Other data types | テキストに変換され、single_line_text_fieldタイプとして設定されます |
基本タイプ
| Type | Description | Validation Rules | Examples |
|---|---|---|---|
| boolean | True/False値 |
| true, false |
| color | カラーコード |
| "#fff123", "#FF5733" |
| date | 日付値 |
| "2022-02-02" |
| date_time | 日時値 |
| "2024-01-01T12:30:00" |
| dimension | 寸法測定 |
| {"value": 25.0, "unit": "cm"} |
| json | JSON形式データ |
| {"ingredient": "flour", "amount": 0.3} |
| link | リンクまたは参照 |
| {"text": "Learn more", "url": "https://shopify.com"} |
| money | 金額値 |
| {"amount": "5.99", "currency_code": "CAD"} |
| multi_line_text_field | 複数行テキストコンテンツ |
| "IngredientsnFlournWaternMilknEggs" |
| number_decimal | 小数点付き数値 |
| "10.4", "-123.456" |
| number_integer | 整数 |
| 10, -42 |
| rating | 評価値 |
| {"value": "3.5", "scale_min": "1.0", "scale_max": "5.0"} |
| rich_text_field | 書式設定されたテキストコンテンツ |
| {"type": "root", "children": [{"type": "paragraph", "children": [{"type": "text", "value": "Bold text.", "bold": true}]}]} |
| single_line_text_field | 単一行テキストコンテンツ |
| "VIP shipping method" |
| url | Web URL |
| "https://www.shopify.com" |
| volume | 容量測定 |
| {"value": 20.0, "unit": "ml"} |
| weight | 重量測定 |
| {"value": 2.5, "unit": "kg"} |
参照タイプ
| Type | Description | Validation Rules | Examples |
|---|---|---|---|
| collection_reference | コレクションへの参照 |
| "gid://shopify/Collection/1" |
| file_reference | メディアファイルへの参照 |
| "gid://shopify/MediaImage/123" |
| metaobject_reference | メタオブジェクトへの参照 |
| "gid://shopify/Metaobject/123" |
| mixed_reference | メタオブジェクトへの参照 |
| "gid://shopify/Metaobject/123" |
| page_reference | ページへの参照 |
| "gid://shopify/Page/1" |
| product_reference | 製品への参照 |
| "gid://shopify/Product/1" |
| variant_reference | 製品バリアントへの参照 |
| "gid://shopify/ProductVariant/1" |
リストタイプ
リストタイプは、基本タイプと参照タイプの配列をサポートします。リストタイプにはlist.というプレフィックスが付き、すべてのリストタイプは、各配列要素に適用される基本タイプの検証ルールをサポートします。以下の例は、一般的なリストタイプを示しています。
注意:
| Type | Description | Validation Rules | Examples |
|---|---|---|---|
| list.collection_reference | コレクション参照の配列 |
| ["gid://shopify/Collection/1", "gid://shopify/Collection/2"] |
| list.color | カラーコードの配列 |
| ["#FFF123", "#E6E6FA"] |
| list.date | 日付の配列 |
| ["2022-01-01", "2022-05-05"] |
| list.date_time | タイムスタンプの配列 |
| ["2024-01-01T12:30:00", "2024-05-01T12:30:00"] |
| list.dimension | 寸法オブジェクトの配列 |
| [{"value": 25.0, "unit": "cm"}, {"value": 35.0, "unit": "cm"}] |
| list.number_integer | 整数の配列 |
| [10, 20, 30] |
| list.number_decimal | 10進数の配列 |
| ["10.4", "20.5", "30.6"] |
| list.single_line_text_field | テキスト文字列の配列 |
| ["VIP shipping method", "Standard shipping method"] |
| list.url | URLの配列 |
| ["https://www.shopify.com", "https://www.shopify.dev"] |
Shopifyで既存のメタフィールドを更新するには、必要なフィールドを含むデータエクスポートクエリを構築する必要があります。コネクタは各フィールドのデータ検証とフォーマット要件を自動的に処理します。
エクスポートクエリの仕様
| Specification | Description |
|---|---|
| Required Columns | クエリ結果にはmetafield_idとvalue列を含める必要があります。 |
| Optional Columns | 更新前にメタフィールド情報を検証する場合は、key、namespace、およびtype列を含めることができます。 |
| Null Value Columns | NULL値を持つ列は、エクスポート中に無視されます。 |
| Duplicated Columns | エクスポートクエリでは、重複する列名は許可されていません。 |
| Field | Data Type | Description | Validation Rules | Notes |
|---|---|---|---|---|
| metafield_id | string | 既存のメタフィールドの識別子 | 有効な既存のメタフィールドIDである必要があります |
|
| value | string | メタフィールドの新しい値 |
|
|
これらのフィールドは更新には必須ではありませんが、検証目的で含めることができます:
| Field | Data Type | Description | Validation Rules | Notes |
|---|---|---|---|---|
| key | string | 名前空間内のメタフィールドの識別子 |
| 提供された場合、コネクタは更新前にこれが既存のメタフィールドと一致することを確認します。 |
| namespace | string | 関連するメタフィールドのグループ識別子 |
| 提供された場合、コネクタは更新前にこれが既存のメタフィールドと一致することを確認します。 |
| type | string | 値の解釈方法を定義します | サポートされているタイプのいずれかである必要があります(Create Metafieldドキュメントを参照) | 提供された場合、コネクタは更新前にこれが既存のメタフィールドと一致することを確認します。 |
Scheduled Jobs と Result Export を使用して、指定したターゲット宛先に出力結果を定期的に書き込むことができます。
Treasure Data のスケジューラー機能は、高可用性を実現するために定期的なクエリ実行をサポートしています。
2 つの仕様が競合するスケジュール仕様を提供する場合、より頻繁に実行するよう要求する仕様が優先され、もう一方のスケジュール仕様は無視されます。
例えば、cron スケジュールが '0 0 1 * 1' の場合、「月の日」の仕様と「週の曜日」が矛盾します。前者の仕様は毎月 1 日の午前 0 時 (00:00) に実行することを要求し、後者の仕様は毎週月曜日の午前 0 時 (00:00) に実行することを要求するためです。後者の仕様が優先されます。
Data Workbench > Queries に移動します
新しいクエリを作成するか、既存のクエリを選択します。
Schedule の横にある None を選択します。

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

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

| 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) に実行するようにスケジュールを設定します。 |
- (オプション) Delay execution を有効にすることで、クエリの開始時刻を遅延させることができます。
クエリに名前を付けて保存して実行するか、単にクエリを実行します。クエリが正常に完了すると、クエリ結果は指定された宛先に自動的にエクスポートされます。
設定エラーにより継続的に失敗するスケジュールジョブは、複数回通知された後、システム側で無効化される場合があります。
(オプション) Delay execution を有効にすることで、クエリの開始時刻を遅延させることができます。
Audience Studio で activation を作成することで、segment データをターゲットプラットフォームに送信することもできます。
- Audience Studio に移動します。
- parent segment を選択します。
- ターゲット segment を開き、右クリックして、Create Activation を選択します。
- Details パネルで、Activation 名を入力し、前述の Configuration Parameters のセクションに従って activation を設定します。
- 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 番号。
- + Add string を選択して、エクスポート用の文字列を作成します。次の値から選択します:
- Schedule を設定します。

- スケジュールを定義する値を選択し、オプションでメール通知を含めます。
- Create を選択します。
batch journey の activation を作成する必要がある場合は、Creating a Batch Journey Activation を参照してください。
td queryコマンドの--resultオプションを使用してShopifyサーバーにエクスポートする情報を指定することで、CLI(Toolbelt)を使用してShopifyに結果をエクスポートすることもできます。td queryコマンドの詳細については、TD Toolbelt: Query Commandsを参照してください。
TD Toolbeltで使用される.yml設定ファイルのオプションはJSON形式でフォーマットされており、一般的な構造は次のとおりです。
- メタフィールドの作成用
out:
type: 'shopify_v2'
admin_api_access_token: {admin_api_access_token}
store_name: {store_name}
action: 'create'
resource: 'product'
stop_on_failed_record: false- メタフィールドの更新用
out:
type: 'shopify_v2'
admin_api_access_token: {admin_api_access_token}
store_name: {store_name}
action: 'update'
stop_on_failed_record: false- Static Token: 2026年1月1日以前に作成されたレガシーカスタムアプリには
admin_api_access_tokenを使用します。これがデフォルトです(auth_methodのデフォルトはSTATIC_TOKEN)。 - Client Credentials: 2026年1月1日以降、ShopifyはレガシーカスタムアプリへのPermanent Tokenの作成を許可しなくなりました。新しいアプリはShopify Dev DashboardのClient IDとClient Secretで
auth_method: CLIENT_CREDENTIALSを使用する必要があります。トークンはコネクタによって自動的に更新されます。
パラメータ
| Name | Description | Value | Default Value | Required |
|---|---|---|---|---|
| type | コネクタタイプ | shopify_v2 | N/A | Yes |
| auth_method | 使用する認証方法。 | 文字列。次のいずれか:
| "STATIC_TOKEN" | No |
| admin_api_access_token | ShopifyのAdmin APIで認証するための永続的なアクセストークン。auth_methodがSTATIC_TOKENの場合に必須。 | 文字列 | N/A | Yes(auth_methodがSTATIC_TOKENの場合) |
| client_id | Shopify Dev Dashboardが発行したClient ID。auth_methodがCLIENT_CREDENTIALSの場合に必須。 | 文字列 | N/A | Yes(auth_methodがCLIENT_CREDENTIALSの場合) |
| client_secret | Shopify Dev Dashboardが発行したClient Secret。auth_methodがCLIENT_CREDENTIALSの場合に必須。 | 文字列 | N/A | Yes(auth_methodがCLIENT_CREDENTIALSの場合) |
| store_name | Shopifyストア名 | N/A | N/A | Yes |
| action | Shopifyメタフィールドに対する操作 | サポートされる値:
| Create | Yes |
| resource | メタフィールドを作成するオブジェクト | サポートされる値:
| Shop | actionがcreateの場合はYes |
| stop_on_failed_record | レコードが無効なデータの場合にジョブを停止します | TrueまたはFalse | False | N/A |
メタフィールドの作成
td query --result '{"type":"shopify_v2","admin_api_access_token":"admin_api_access_token","store_name":"store_name","action":"create,"resource":"shop", "stop_on_failed_record":true}' -d sample_database "select shop_id,key,namespace,value from tbl_shop" -T prestoメタフィールドの更新
td query --result '{"type":"shopify_v2","admin_api_access_token":"admin_api_access_token","store_name":"store_name","action":"update, "stop_on_failed_record":true}' -d sample_database "select metafield_id,value from tbl_metafield" -T presto- 結果エクスポートは、ターゲット宛先に定期的にデータをアップロードするようにスケジュールできます。Scheduling Jobs Using Treasure コンソールを参照してください。
- すべてのインポートおよびエクスポート統合は、Treasure ワークフローに追加できます。td>: データオペレータは、クエリ結果を指定された統合にエクスポートできます。詳細については、Reference for Treasure ワークフロー Operatorsを参照してください。