Skip to content
Last updated

Shopify Export Integration V2

This feature is in BETA version. For more information, contact your Customer Success Representative.

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

制限事項と既知の問題

  • MediaImage vs Product Image—V1からV2への重要な変更は、画像関連のメタフィールドの処理方法です:
    • V1では製品画像のメタフィールドを作成/更新するためにProduct Image IDを使用していましたが、V2ではMediaImage IDが必要です。
    • MediaImageは、さまざまなメディアタイプ(製品画像だけでなく)を参照できる、より汎用性の高いリソースタイプです。
    • V1でProduct Image IDで作成された既存のメタフィールドは、MediaImage IDを使用するように移行する必要があります
  • メタフィールドのキーは3〜64文字である必要があります
  • 名前空間は3〜255文字である必要があります

Static IP Address of Treasure Data Integration

If your security policy requires IP whitelisting, you must add Treasure Data's IP addresses to your allowlist to ensure a successful connection.

Please find the complete list of static IP addresses, organized by region, at the following link:
https://api-docs.treasuredata.com/en/overview/ip-addresses-integrations-result-workers/

TD Consoleを使用

認証の作成

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

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

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

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

新しい認証フィールド

ParameterDescription
Store nameShopifyストアのストア識別子。これは2つの形式で入力できます: - 完全なストアURL: 例 https://mountbaker.myshopify.com - ストア名のみ: 例: mountbakerストア名のみを使用している場合は、.myshopify.comドメインなしのストアの一意の識別子である必要があります。
Admin API access tokenShopifyのAdmin APIで認証するために使用されるアクセストークン。このトークンは、Shopify管理パネルのApps > Develop apps > Create an app > Configure Admin API scopesから生成できます。トークンには、メタフィールドの管理などの操作を実行するための適切な権限が必要です。
  1. Continueを選択します。
  2. 認証の名前を入力し、Doneを選択します。

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

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

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

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)、およびkeynamespacevalue列のいずれかを含める必要があります
Null Value ColumnsNULL値を持つ列は、エクスポート中に無視されます
Duplicated Columnsエクスポートクエリでは、重複する列名は許可されていません
Maximum Value Length列の値には、そのタイプに基づいて特定の長さ制限があります(Field/Column-Level Specificationsセクションで詳しく説明)

フィールド/列レベルの仕様

デフォルトフィールド列

FieldRequiredData TypeDescriptionAdditional Specifications
resource_idYesstringShopifyリソース(製品、バリアントなど)の識別子数値IDまたはグローバルID形式を使用できます。コネクタは必要に応じてグローバルID形式への変換を自動的に処理します。
keyYesstring名前空間内のメタフィールドの一意の識別子
  • 長さ: 3〜64文字
  • 許可される文字: 英数字、ハイフン、アンダースコア
namespaceYes(アプリ予約名前空間を使用する場合はオプション)string関連するメタフィールドのグループ識別子
  • 長さ: 3〜255文字
  • 許可される文字: 英数字、ハイフン、アンダースコア
  • $で始めることはできません
valueYesstringメタフィールドの実際のコンテンツ常に文字列として保存されます。以下のタイプ固有のフォーマット要件については、「Value Specifications by Type」セクションを参照してください:
  • 基本タイプ(boolean、color、dateなど)
  • 参照タイプ(collection、product、variantの参照)
  • リストタイプ(基本タイプと参照タイプの配列)
typeNostring値の解釈方法を定義します提供されていない場合、タイプは自動的に検出されます。「Type Detection and Specification」セクションを参照してください。

自動タイプ検出

クエリ結果にtype列を含めない場合、コネクタはvalue列のデータタイプに基づいてメタフィールドタイプを自動的に決定します:

Type Automatically Detected As
Numbers without decimal placesnumber_integerタイプ
Text valuessingle_line_text_fieldタイプ
Numbers with decimal placesnumber_decimalタイプ
Boolean valuesbooleanタイプ
Other data typesテキストに変換され、single_line_text_fieldタイプとして設定されます

タイプ別の値仕様

基本タイプ

Type DescriptionValidation Rules Examples
booleanTrue/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"}
jsonJSON形式データ
  • 有効な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オブジェクトである必要があります
  • valuescale_minscale_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"
urlWeb 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"}

参照タイプ

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

注意:

TypeDescriptionValidation RulesExamples
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_decimal10進数の配列- 有効な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.urlURLの配列- 有効なURLの配列である必要があります - 各項目はurlルールに従う必要があります["https://www.shopify.com", "https://www.shopify.dev"]

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

Shopifyで既存のメタフィールドを更新するには、必要なフィールドを含むデータエクスポートクエリを構築する必要があります。コネクタは各フィールドのデータ検証とフォーマット要件を自動的に処理します。

エクスポートクエリの仕様

Specification Description
Required Columnsクエリ結果にはmetafield_idvalue列を含める必要があります。
Optional Columns更新前にメタフィールド情報を検証する場合は、keynamespace、およびtype列を含めることができます。
Null Value ColumnsNULL値を持つ列は、エクスポート中に無視されます。
Duplicated Columnsエクスポートクエリでは、重複する列名は許可されていません。

必須列

Field Data Type Description Validation Rules Notes
metafield_idstring既存のメタフィールドの識別子有効な既存のメタフィールドIDである必要があります
  • 数値IDまたはグローバルID形式(例: gid://shopify/MetaField/123)を使用できます。 - コネクタは必要に応じてグローバルID形式への変換を自動的に処理します。
valuestringメタフィールドの新しい値
  • タイプに関係なく常に文字列として保存されます - メタフィールドのタイプ検証ルールに準拠する必要があります
  • タイプ固有の要件については、Create Metafieldドキュメントの「Value Specifications by Type」セクションを参照してください。

オプション列

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

Field Data Type Description Validation Rules Notes
keystring名前空間内のメタフィールドの識別子
  • 長さ: 3〜64文字 - 許可される文字: 英数字、ハイフン、アンダースコア
提供された場合、コネクタは更新前にこれが既存のメタフィールドと一致することを確認します。
namespacestring関連するメタフィールドのグループ識別子
  • 長さ: 3〜255文字 - 許可される文字: 英数字、ハイフン、アンダースコア - $で始めることはできません
提供された場合、コネクタは更新前にこれが既存のメタフィールドと一致することを確認します。
typestring値の解釈方法を定義しますサポートされているタイプのいずれかである必要があります(Create Metafieldドキュメントを参照)提供された場合、コネクタは更新前にこれが既存のメタフィールドと一致することを確認します。

(Optional) Schedule Query Export Jobs

You can use Scheduled Jobs with Result Export to periodically write the output result to a target destination that you specify.

Treasure Data's scheduler feature supports periodic query execution to achieve high availability.

When two specifications provide conflicting schedule specifications, the specification requesting to execute more often is followed while the other schedule specification is ignored.

For example, if the cron schedule is '0 0 1 * 1', then the 'day of month' specification and 'day of week' are discordant because the former specification requires it to run every first day of each month at midnight (00:00), while the latter specification requires it to run every Monday at midnight (00:00). The latter specification is followed.

Scheduling your Job Using TD Console

  1. Navigate to Data Workbench > Queries

  2. Create a new query or select an existing query.

  3. Next to Schedule, select None.

  4. In the drop-down, select one of the following schedule options:

    Drop-down ValueDescription
    Custom cron...Review Custom cron... details.
    @daily (midnight)Run once a day at midnight (00:00 am) in the specified time zone.
    @hourly (:00)Run every hour at 00 minutes.
    NoneNo schedule.

Custom cron... Details

Cron ValueDescription
0 * * * *Run once an hour.
0 0 * * *Run once a day at midnight.
0 0 1 * *Run once a month at midnight on the morning of the first day of the month.
""Create a job that has no scheduled run time.
 *    *    *    *    *
 -    -    -    -    -
 |    |    |    |    |
 |    |    |    |    +----- day of week (0 - 6) (Sunday=0)
 |    |    |    +---------- month (1 - 12)
 |    |    +--------------- day of month (1 - 31)
 |    +-------------------- hour (0 - 23)
 +------------------------- min (0 - 59)

The following named entries can be used:

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

A single space is required between each field. The values for each field can be composed of:

Field ValueExampleExample Description
A single value, within the limits displayed above for each field.
A wildcard '*' to indicate no restriction based on the field.'0 0 1 * *'Configures the schedule to run at midnight (00:00) on the first day of each month.
A range '2-5', indicating the range of accepted values for the field.'0 0 1-10 * *'Configures the schedule to run at midnight (00:00) on the first 10 days of each month.
A list of comma-separated values '2,3,4,5', indicating the list of accepted values for the field.0 0 1,11,21 * *'Configures the schedule to run at midnight (00:00) every 1st, 11th, and 21st day of each month.
A periodicity indicator '*/5' to express how often based on the field's valid range of values a schedule is allowed to run.'30 */2 1 * *'Configures the schedule to run on the 1st of every month, every 2 hours starting at 00:30. '0 0 */5 * *' configures the schedule to run at midnight (00:00) every 5 days starting on the 5th of each month.
A comma-separated list of any of the above except the '*' wildcard is also supported '2,*/5,8-10'.'0 0 5,*/10,25 * *'Configures the schedule to run at midnight (00:00) every 5th, 10th, 20th, and 25th day of each month.
  1. (Optional) You can delay the start time of a query by enabling the Delay execution.

Execute the Query

Save the query with a name and run, or just run the query. Upon successful completion of the query, the query result is automatically exported to the specified destination.

Scheduled jobs that continuously fail due to configuration errors may be disabled on the system side after several notifications.

(Optional) You can delay the start time of a query by enabling the Delay execution.

Activate a Segment in Audience Studio

You can also send segment data to the target platform by creating an activation in the Audience Studio.

  1. Navigate to Audience Studio.
  2. Select a parent segment.
  3. Open the target segment, right-mouse click, and then select Create Activation.
  4. In the Details panel, enter an Activation name and configure the activation according to the previous section on Configuration Parameters.
  5. Customize the activation output in the Output Mapping panel.

  • Attribute Columns
    • Select Export All Columns to export all columns without making any changes.
    • Select + Add Columns to add specific columns for the export. The Output Column Name pre-populates with the same Source column name. You can update the Output Column Name. Continue to select + Add Columnsto add new columns for your activation output.
  • String Builder
    • + Add string to create strings for export. Select from the following values:
      • String: Choose any value; use text to create a custom value.
      • Timestamp: The date and time of the export.
      • Segment Id: The segment ID number.
      • Segment Name: The segment name.
      • Audience Id: The parent segment number.
  1. Set a Schedule.

  • Select the values to define your schedule and optionally include email notifications.
  1. Select Create.

If you need to create an activation for a batch journey, review Creating a Batch Journey Activation.

(オプション)CLIを使用したエクスポート統合

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

パラメータ

NameDescriptionValueDefault ValueRequired
typeコネクタタイプshopify_v2N/AYes
admin_api_access_tokenTDからのエクスポートを認証するためのマスターAPIキーN/AN/AYes
store_nameShopifyストア名N/AN/AYes
actionShopifyメタフィールドに対する操作サポートされる値:
  • Create
  • Update
CreateYes
resourceメタフィールドを作成するオブジェクトサポートされる値:
  • article
  • blog
  • collection
  • customer
  • draft_order
  • media_image
  • page
  • product
  • product_variant
  • order
  • shop
Shopactionがcreateの場合はYes
stop_on_failed_recordレコードが無効なデータの場合にジョブを停止しますTrueまたはFalseFalseN/A

CLI使用例

メタフィールドの作成

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 TD Consoleを参照してください。
  • すべてのインポートおよびエクスポート統合は、TD Workflowに追加できます。td>: データオペレータは、クエリ結果を指定された統合にエクスポートできます。詳細については、Reference for Treasure Workflow Operatorsを参照してください。