メタフィールドのトリガー

メタフィールドトリガーは、10種類の所有者タイプのいずれかで、特定のメタフィールドの定義が変更された際に発火します。監視対象のメタフィールドは、定義ごとに個別に選択できるため、数百ものメタフィールドを持つストアであっても、ワークフローが関連するメタフィールドについてのみトリガーが発火します。

対応している所有者タイプ

商品、商品のバリエーション、コレクション、顧客、注文、会社、会社の所在地、ブログ、ブログ記事、およびページ。

セットアップする

このページの例では、「Rating」(custom.rating)という製品メタフィールドを監視しています。これは、レビューアプリが書き込むような値です。

1. メタフィールドを選択する

  1. アプリのナビゲーションで「**メタフィールドのトリガー」**を開きます。
  2. [トリガーの追加] をクリックします。
  3. メタフィールドが属するリソースタイプ(例:Product)を選択してください。
  4. リストからメタフィールドの定義を選択し(数が多ければ名前で検索してください)、「**トリガーの追加」**をクリックします。

定義が設定されているメタフィールドのみが表示されます(Shopify管理画面、[設定]、[カスタムデータ])。このリストは1時間のみ保持されるため、先ほど作成した定義が表示されない場合があります。「トリガーの追加」の横にある「メタフィールドを更新」をクリックし、ダイアログを再度開いてください。

リソースタイプが「Product」、メタフィールドが「Rating」、「custom.rating」、「selected」の「メタフィールドのトリガーを追加」ダイアログ
リソースの種類を選択し、次にメタフィールドの定義を選択します。数が多くある場合は、検索機能を利用すると便利です。

2. メタフィールドが監視対象になりました

このメタフィールドはリストに「有効」として表示されます。他に有効にする設定はありません。ここに追加するだけで有効_になります_。「削除」を選択すると、そのメタフィールドの監視が停止します。

このアプリはまず、既存のレコードにあるそのメタフィールドの現在の値を記録するため、最初の編集操作の時点で、正しい以前の値がすでに反映されます。

「メタフィールド・トリガー」リストに、製品のメタフィールド「Rating」および「custom.rating」が「有効」として表示されています
監視対象のメタフィールド「Active」。「メタフィールドの更新」を実行すると、定義の一覧が再読み込みされます。

3. イベントが持つ意味

それ以降、そのメタフィールドに対するすべての編集操作により、Shopify Flow で「**Metafield Update」**イベントが発生します。このイベントには、名前空間とキー、該当するレコード、新しい値、およびpreviousValue(そのメタフィールドの以前の値)が含まれます。メタフィールドが初めて設定された直後は、previousValueは空です。

この例では、評価が4.5から2.5に下がりました。ワークフローの条件「値が3未満で、かつ以前の値が3以上」は、その後の編集のたびにトリガーされるのではなく、評価が3を下回った瞬間に1回だけトリガーされます。手順の詳細はこちら:メタフィールドのトリガー、ステップバイステップ

イベント履歴内のイベント:製品のメタフィールド更新、値 2.5、以前の値 4.5
1つのイベントが開かれた:現在の評価は2.5だが、previousValueによると以前は4.5だった。

汎用トリガーと型付きトリガー

メタフィールドの変更を反映するには、2つの方法があります:

トリガー 表紙 提供します
メタフィールドの更新 10種類のオーナータイプすべて 名前空間、キー、所有者ID、旧値、新値
メタフィールドの更新を指示する 注文のみ 上記に加え、ネイティブのFlow参照としての順序
製品のメタフィールドの更新 商品のみ 上記に加え、ネイティブ参照としてのプロダクト
顧客メタフィールドの更新 お客様限定 上記に加え、顧客をネイティブレファレンスとして指定する
製品バリアントのメタフィールドの更新 商品バリエーションのみ 上記に加え、親製品をネイティブ参照として指定します

ワークフローでリソース自体に対して操作を行う必要がある場合(たとえば、注文にタグを付けたり、その明細を読み取ったりする場合など)、型指定されたトリガーを使用します。ネイティブレファレンスにより、Flowはルックアップステップを経ることなく、そのリソースに対して独自の「Shopify」アクションを直接使用できます。

値が変更されたことを単に把握したい場合や、型指定されたバリアントを持たないオーナー型を監視している場合は、汎用トリガーを使用してください。

各タイプ別のトリガーには、「トリガー」ページにそれぞれ専用のスイッチがあり(そのトリガーを使用するFlowワークフローを有効にすると、そのトリガーも有効になります)、汎用トリガー_に加えて_発動します。これらは1つのイベントを共有しているため、両方を有効にしても、クォータのカウントは2倍にはなりません。