# Shopify Export Integration V2

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の基本知識。


## 必要なAPIスコープ

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文字である必要があります


## Treasure Data Integration の静的 IP アドレス

セキュリティポリシーで IP ホワイトリストが必要な場合は、接続を成功させるために Treasure Data の IP アドレスを許可リストに追加する必要があります。

リージョンごとに整理された静的 IP アドレスの完全なリストは、次のリンクにあります:
[IP Addresses for Integrations](/apis/endpoints/ip-addresses-integrations-result-workers)

## Treasure コンソールを使用

### 認証の作成

最初のステップは、資格情報のセットで新しい認証を作成することです。

1. **Integrations Hub**を選択します。
2. **Catalog**を選択します。


![](/assets/integrationshub-catalog2.e33c0a4c7d81c40cc83dd056c2143b97b1406220e213cab14ef349d69412ffef.eedebb45.png)

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


![](/assets/shopifyi1.4f504665b75eb5d2d1b5f353f6a747aa3f7c1b5d2e55c08b2da6278ecd120a7b.fdf07543.png)
![](/assets/shopifyi2.63ac6cca8a3716b1317b6e19b72e58c952551c47e5b05c6eac4063d4d346b6a2.fdf07543.png)

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


![](/assets/image-20260318-191500.a79b3b0325aad6fd06372f8d3cf2b4d0cfbab8161891cb02456e16925d0784c3.fdf07543.png)
![](/assets/image-20260318-191519.0555658164ec12cf7d03b38e544c9d47949037c8af58bdfa4d26b54e1d38d2e4.fdf07543.png)

**新しい認証フィールド**

| Parameter | Description |
|  --- | --- |
| Store name
 | Shopifyストアのストア識別子。次の2つの形式で入力できます:
- 完全なストアURL: 例 `https://mountbaker.myshopify.com`
- ストア名のみ: 例: `mountbaker`

ストア名のみを使用している場合は、`.myshopify.com`ドメインなしのストアの一意の識別子である必要があります。
 |
| Auth method | 使用する認証方法を選択します:- **Static Token** — 永続的なAdmin APIアクセストークンを使用します（2026年1月1日以前に作成されたレガシーアプリ）。
- **Client Credentials** — Shopify Dev DashboardによるClient IDとClient Secretを使用します（2026年1月1日以降に作成された新しいアプリに必要）。

 |
| 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。 |


1. **Continue**を選択します。
2. 認証の名前を入力し、**Done**を選択します。


### エクスポート用のクエリ結果を設定

Treasure コンソールは、データをエクスポートする複数の方法をサポートしています。次の手順に従って、Data Workbenchからデータをエクスポートしてください。

1. **Data Workbench** > **Queries**に移動します。
2. **New Query**を選択し、クエリを定義します。
3. **Export Results**を選択して、データのエクスポートを設定します。
4. 既存のShopify CAPI認証を選択するか、前述のように新しい認証を作成します。
5. Export Resultsを設定します


![](/assets/shopify3.62b11a057d8d42a0f945a245935ed590aaa008993e28260caa65ab9fdaa3cb92.b90d17e3.png)

| Field  | Description |
|  --- | --- |
| Action | ドロップダウンメニューから、実行するアクションを指定します:- Create metafield
- Update metafield

 |
| Resource
 | ドロップダウンメニューから、メタフィールドを追加するShopifyリソースを選択します:
利用可能なオプション:
- Product
- Media Image
- Product Variant
- Collection
- Blog
- Page
- Draft Order
- Customer
- Article
- Shop

 |
| Stop on failed record | 選択すると、コネクタはエラーが発生した場合に処理を停止します。選択されていない場合は、失敗したレコードをスキップして、残りのレコードの処理を続行します。 |


1. **Done**を選択します。


### Create Metafieldアクションの詳細ガイド

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 | 名前空間内のメタフィールドの一意の識別子 | - 長さ: 3〜64文字
- 許可される文字: 英数字、ハイフン、アンダースコア

 |
| namespace | Yes（アプリ予約名前空間を使用する場合はオプション） | string | 関連するメタフィールドのグループ識別子 | - 長さ: 3〜255文字
- 許可される文字: 英数字、ハイフン、アンダースコア
- $で始めることはできません

 |
| value | Yes | string | メタフィールドの実際のコンテンツ | 常に文字列として保存されます。以下のタイプ固有のフォーマット要件については、「[Value Specifications by Type](/ja/int/shopify-export-integration-v2#h5__745848692)」セクションを参照してください:- 基本タイプ（boolean、color、dateなど）
- 参照タイプ（collection、product、variantの参照）
- リストタイプ（基本タイプと参照タイプの配列）

 |
| type | No | string | 値の解釈方法を定義します | 提供されていない場合、タイプは自動的に検出されます。「[Type Detection and Specification](/ja/int/shopify-export-integration-v2#h5__370322832)」セクションを参照してください。 |


#### 自動タイプ検出

クエリ結果に`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である必要があります
- 大文字と小文字を区別します
- 最大長: 65k文字

 | `true`, `false` |
| color | カラーコード | - 有効な16進数カラーコードである必要があります
- #で始まる必要があります
- #の後に6文字である必要があります
- 最大長: 65k文字

 | `"#fff123"`, `"#FF5733"` |
| date | 日付値 | - ISO 8601形式である必要があります
- タイムゾーン情報なし
- 形式: YYYY-MM-DD
- 最大長: 65k文字

 | `"2022-02-02"` |
| date_time | 日時値 | - ISO 8601形式である必要があります
- タイムゾーンなし（デフォルトはGMT）
- 形式: YYYY-MM-DDThh:mm:ss
- 最大長: 65k文字

 | `"2024-01-01T12:30:00"` |
| dimension | 寸法測定 | - 有効なJSONオブジェクトである必要があります
- `value`および`unit`プロパティを含む必要があります
- 値は数値である必要があります
- 単位は次のいずれかである必要があります: in、ft、yd、mm、cm、m
- 最大長: 65k文字

 | `{"value": 25.0, "unit": "cm"}` |
| json | JSON形式データ | - 有効なJSONデータである必要があります
- オブジェクト、配列、文字列、数値、ブール値、またはnullを使用できます
- 最大長: 2M文字

 | `{"ingredient": "flour", "amount": 0.3}` |
| link | リンクまたは参照 | - 有効なJSONオブジェクトである必要があります
- `text`および`url`プロパティを含む必要があります
- URLは有効である必要があります
- 最大長: 65k文字

 | `{"text": "Learn more", "url": "https://shopify.com"}` |
| money | 金額値 | - 有効なJSONオブジェクトである必要があります
- `amount`および`currency_code`プロパティを含む必要があります
- 金額は数値文字列である必要があります
- 通貨コードはストアの通貨と一致する必要があります
- 最大長: 65k文字

 | `{"amount": "5.99", "currency_code": "CAD"}` |
| multi_line_text_field | 複数行テキストコンテンツ | - 複数行を含めることができます
- 最大長: 65k文字

 | `"IngredientsnFlournWaternMilknEggs"` |
| number_decimal | 小数点付き数値 | - 範囲: +/-9999999999999.999999999
- 有効な10進数である必要があります
- 最大長: 65k文字

 | `"10.4"`, `"-123.456"` |
| number_integer | 整数 | - 範囲: +/-9,007,199,254,740,991
- 整数である必要があります
- 最大長: 65k文字

 | `10`, `-42` |
| rating | 評価値 | - 有効なJSONオブジェクトである必要があります
- `value`、`scale_min`、`scale_max`プロパティを含む必要があります
- 値はスケール範囲内である必要があります
- スケール値は数値である必要があります
- 最大長: 65k文字

 | `{"value": "3.5", "scale_min": "1.0", "scale_max": "5.0"}` |
| rich_text_field | 書式設定されたテキストコンテンツ | - 有効なJSONオブジェクトである必要があります
- 有効なリッチテキストJSON構造である必要があります
- `type`および`children`プロパティを含む必要があります
- 最大長: 65k文字

 | `{"type": "root", "children": [{"type": "paragraph", "children": [{"type": "text", "value": "Bold text.", "bold": true}]}]}` |
| single_line_text_field | 単一行テキストコンテンツ | - 単一行のみ（改行なし）
- 最大長: 65k文字

 | `"VIP shipping method"` |
| url | Web URL | - 有効なURL形式である必要があります
- 許可されたスキームを使用する必要があります: https、http、mailto、sms、tel
- 最大長: 2,048文字

 | `"https://www.shopify.com"` |
| volume | 容量測定 | - 有効なJSONオブジェクトである必要があります
- `value`および`unit`プロパティを含む必要があります
- 値は数値である必要があります
- 単位は次のいずれかである必要があります: ml、cl、l、m3、us_fl_oz、us_pt、us_qt、us_gal、imp_fl_oz、imp_pt、imp_qt、imp_gal
- 最大長: 65k文字

 | `{"value": 20.0, "unit": "ml"}` |
| weight | 重量測定 | - 有効なJSONオブジェクトである必要があります
- `value`および`unit`プロパティを含む必要があります
- 値は数値である必要があります
- 単位は次のいずれかである必要があります: oz、lb、g、kg
- 最大長: 65k文字

 | `{"value": 2.5, "unit": "kg"}` |


**参照タイプ**

| Type | Description | Validation Rules | Examples |
|  --- | --- | --- | --- |
| collection_reference | コレクションへの参照 | - 有効なShopifyグローバルID形式である必要があります
- 形式: gid://shopify/Collection/{id}

 | `"gid://shopify/Collection/1"` |
| file_reference | メディアファイルへの参照 | - 有効なShopifyグローバルID形式である必要があります
- 形式: gid://shopify/MediaImage/{id}

 | `"gid://shopify/MediaImage/123"` |
| metaobject_reference | メタオブジェクトへの参照 | - 有効なShopifyグローバルID形式である必要があります
- 形式: gid://shopify/Metaobject/{id}
- 指定されたメタオブジェクト定義と一致する必要があります

 | `"gid://shopify/Metaobject/123"` |
| mixed_reference | メタオブジェクトへの参照 | - 有効なShopifyグローバルID形式である必要があります
- 形式: gid://shopify/Metaobject/{id}

 | `"gid://shopify/Metaobject/123"` |
| page_reference | ページへの参照 | - 有効なShopifyグローバルID形式である必要があります
- 形式: gid://shopify/Page/{id}

 | `"gid://shopify/Page/1"` |
| product_reference | 製品への参照 | - 有効なShopifyグローバルID形式である必要があります
- 形式: gid://shopify/Product/{id}

 | `"gid://shopify/Product/1"` |
| variant_reference | 製品バリアントへの参照 | - 有効なShopifyグローバルID形式である必要があります
- 形式: gid://shopify/ProductVariant/{id}

 | `"gid://shopify/ProductVariant/1"` |


**リストタイプ**

リストタイプは、基本タイプと参照タイプの配列をサポートします。リストタイプにはlist.というプレフィックスが付き、すべてのリストタイプは、各配列要素に適用される基本タイプの検証ルールをサポートします。以下の例は、一般的なリストタイプを示しています。

注意:

| Type | Description | Validation Rules | Examples |
|  --- | --- | --- | --- |
| list.collection_reference | コレクション参照の配列 | - 有効なコレクション参照の配列である必要があります
- 各項目はcollection_referenceルールに従う必要があります

 | `["gid://shopify/Collection/1", "gid://shopify/Collection/2"]` |
| list.color | カラーコードの配列 | - 有効なカラーコードの配列である必要があります
- 各項目はcolorルールに従う必要があります

 | `["#FFF123", "#E6E6FA"]` |
| list.date | 日付の配列 | - 有効な日付の配列である必要があります
- 各項目はdateルールに従う必要があります

 | `["2022-01-01", "2022-05-05"]` |
| list.date_time | タイムスタンプの配列 | - 有効なタイムスタンプの配列である必要があります
- 各項目はdate_timeルールに従う必要があります

 | `["2024-01-01T12:30:00", "2024-05-01T12:30:00"]` |
| list.dimension | 寸法オブジェクトの配列 | - 有効なJSONオブジェクトの配列である必要があります
- 各項目はdimensionルールに従う必要があります

 | `[{"value": 25.0, "unit": "cm"}, {"value": 35.0, "unit": "cm"}]` |
| list.number_integer | 整数の配列 | - 有効な整数の配列である必要があります
- 各項目はnumber_integerルールに従う必要があります

 | `[10, 20, 30]` |
| list.number_decimal | 10進数の配列 | - 有効な10進数の配列である必要があります
- 各項目はnumber_decimalルールに従う必要があります

 | `["10.4", "20.5", "30.6"]` |
| list.single_line_text_field | テキスト文字列の配列 | - 文字列の配列である必要があります
- 各項目はsingle_line_text_fieldルールに従う必要があります

 | `["VIP shipping method", "Standard shipping method"]` |
| list.url | URLの配列 | - 有効なURLの配列である必要があります
- 各項目はurlルールに従う必要があります

 | `["https://www.shopify.com", "https://www.shopify.dev"]` |


### Update Metafieldアクションの詳細ガイド

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である必要があります | - 数値IDまたはグローバルID形式（例: gid://shopify/MetaField/123）を使用できます。 - コネクタは必要に応じてグローバルID形式への変換を自動的に処理します。

 |
| value | string | メタフィールドの新しい値 | - タイプに関係なく常に文字列として保存されます - メタフィールドのタイプ検証ルールに準拠する必要があります

 | - タイプ固有の要件については、Create Metafieldドキュメントの「Value Specifications by Type」セクションを参照してください。

 |


#### オプション列

これらのフィールドは更新には必須ではありませんが、検証目的で含めることができます:

| Field  | Data Type  | Description  | Validation Rules  | Notes  |
|  --- | --- | --- | --- | --- |
| key | string | 名前空間内のメタフィールドの識別子 | - 長さ: 3〜64文字 - 許可される文字: 英数字、ハイフン、アンダースコア

 | 提供された場合、コネクタは更新前にこれが既存のメタフィールドと一致することを確認します。 |
| namespace | string | 関連するメタフィールドのグループ識別子 | - 長さ: 3〜255文字 - 許可される文字: 英数字、ハイフン、アンダースコア - $で始めることはできません

 | 提供された場合、コネクタは更新前にこれが既存のメタフィールドと一致することを確認します。 |
| type | string | 値の解釈方法を定義します | サポートされているタイプのいずれかである必要があります（Create Metafieldドキュメントを参照） | 提供された場合、コネクタは更新前にこれが既存のメタフィールドと一致することを確認します。 |


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

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

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

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

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

#### Treasure コンソール を使用してジョブをスケジュールする

1. **Data Workbench > Queries** に移動します
2. 新しいクエリを作成するか、既存のクエリを選択します。
3. **Schedule** の横にある None を選択します。
![](/assets/image2021-1-15_17-28-51.f1b242f6ecc7666a0097fdf37edd1682786ec11ef80eff68c66f091bc405c371.0f87d8d4.png)
4. ドロップダウンで、次のスケジュールオプションのいずれかを選択します:
![](/assets/image2021-1-15_17-29-47.45289a1c99256f125f4d887e501e204ed61f02223fde0927af5f425a89ace0c0.0f87d8d4.png)
| ドロップダウン値 | 説明 |
|  --- | --- |
| Custom cron... | [Custom cron... の詳細](#custom-cron-details)を参照してください。 |
| @daily (midnight) | 指定されたタイムゾーンで 1 日 1 回午前 0 時 (00:00 am) に実行します。 |
| @hourly (:00) | 毎時 00 分に実行します。 |
| None | スケジュールなし。 |


#### Custom cron... の詳細

![](/assets/image2021-1-15_17-30-23.0f94a8aa5f75ea03e3fec0c25b0640cd59ee48d1804a83701e5f2372deae466c.0f87d8d4.png)

| **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.


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

div
| フィールド値  | 例  | 例の説明  |
|  --- | --- | --- |
| 各フィールドに対して上記で表示された制限内の単一の値。 |  |  |
| フィールドに基づく制限がないことを示すワイルドカード
`'*'`。 | `'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 出力をカスタマイズします。


![](/assets/ouput.b2c7f1d909c4f98ed10f5300df858a4b19f71a3b0834df952f5fb24018a5ea78.8ebdf569.png)

- 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** を設定します。


![](/assets/snippet-output-connector-on-audience-studio-2024-08-28.a99525173709da1eb537f839019fa7876ffae95045154c8f2941b030022f792c.8ebdf569.png)

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


1. **Create** を選択します。


batch journey の activation を作成する必要がある場合は、[Creating a Batch Journey Activation](/products/customer-data-platform/journey-orchestration/batch/creating-a-batch-journey-activation) を参照してください。

## （オプション）CLIを使用したエクスポート統合

td queryコマンドの--resultオプションを使用してShopifyサーバーにエクスポートする情報を指定することで、CLI（Toolbelt）を使用してShopifyに結果をエクスポートすることもできます。td queryコマンドの詳細については、[TD Toolbelt: Query Commands](/tools/cli-and-sdks/api#query-commands)を参照してください。

TD Toolbeltで使用される.yml設定ファイルのオプションはJSON形式でフォーマットされており、一般的な構造は次のとおりです。

- メタフィールドの作成用


Static Token（レガシー）

```yaml
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
```

Client Credentials（OAuth）

```yaml
out:
  type: 'shopify_v2'
  auth_method: CLIENT_CREDENTIALS
  client_id: {client_id}
  client_secret: {client_secret}
  store_name: {store_name}
  action: 'create'
  resource: 'product'
  stop_on_failed_record: false
```

- メタフィールドの更新用


Static Token（レガシー）

```yaml
out:
  type: 'shopify_v2'
  admin_api_access_token: {admin_api_access_token}
  store_name: {store_name}
  action: 'update'
  stop_on_failed_record: false
```

Client Credentials（OAuth）

```yaml
out:
  type: 'shopify_v2'
  auth_method: CLIENT_CREDENTIALS
  client_id: {client_id}
  client_secret: {client_secret}
  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"` — 永続的なAdmin APIアクセストークンを使用します。
- `"CLIENT_CREDENTIALS"` — Client IDとClient Secretを使用します（OAuth 2.0クライアント資格情報グラント）。

 | `"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
- Update

 | Create | Yes |
| resource | メタフィールドを作成するオブジェクト | サポートされる値:- article
- blog
- collection
- customer
- draft_order
- media_image
- page
- product
- product_variant
- order
- shop

 | Shop | actionがcreateの場合はYes |
| stop_on_failed_record | レコードが無効なデータの場合にジョブを停止します | TrueまたはFalse | False | N/A |


### CLI使用例

**メタフィールドの作成**


```bash
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
```

**メタフィールドの更新**


```bash
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 コンソール](https://docs.treasuredata.com/smart/project-product-documentation/scheduling-jobs-using-td-console)を参照してください。
- すべてのインポートおよびエクスポート統合は、[Treasure ワークフロー](/products/customer-data-platform/data-workbench/workflows)に追加できます。td>: データオペレータは、クエリ結果を指定された統合にエクスポートできます。詳細については、[Reference for Treasure ワークフロー Operators](/products/customer-data-platform/data-workbench/workflows/operators)を参照してください。