🌟

Shopifyで特定の商品を購入した際に、自動で顧客タグ付けを行う方法について考察

2025/02/07に公開

はじめに

今回は、Shopify で「特定の商品を購入した顧客にタグをつける」方法について考察していきます。顧客タグを自動で付与し、顧客管理やマーケティング施策を効率化するテクニックを中心に解説します

それでは、頑張っていきましょう。

今回は、以下の記事を参考にしています。

Shopify で「特定の商品を購入した顧客にタグ付け」を実装する定義

顧客タグは、Shopify の管理画面に表示される各顧客情報にラベルのような形で付与されるものです。たとえば「VIP」「初回購入者」「セール対象」「特定の商品購入者」など、任意の文字列を自由に設定できます。

特定の商品を購入した顧客にタグを付与することで、

  • すぐに顧客をセグメントできる
  • 個別のメールマーケティングやロイヤルティプログラムを実行しやすくなる
  • 商品ごとの購入状況をダイレクトに把握できる
    など、Shopify での販売活動を効率化し、売上向上につなげられるメリットがあります。

Shopify で「特定の商品を購入した顧客にタグ付け」を実装するメリット

まずは、Shopify で特定の商品を購入した顧客にタグ付けを実装するメリットについて解説していきます。大きく 5 つのポイントを挙げてみましょう。

1. 顧客管理が容易になる

顧客タグを活用することで、どの顧客がどの商品の購入者なのかを簡単にセグメントできます。たとえば、高額商品を購入した顧客に「VIP」タグを付ければ、ハイエンド向けのキャンペーンを送る際に素早く対象を抽出可能です。

2. マーケティング戦略を高度化できる

タグによるセグメント分けはメールマーケティング、クーポン発行、リターゲティング広告などに活かせます。たとえば「特定の商品購入者」に向けて上位互換商品をオファーする、自社ブランドのコアファンにロイヤルティプログラムを提案するなど、マーケティング施策の精度が上がります。

3. 自動化により人的コストを削減

「特定の商品を購入したら自動的にタグを付与する」という運用を確立すれば、担当者が手動で作業する必要がなくなります。定期的な管理もほぼ不要になり、オペレーションの負荷が軽減されます。

4. 在庫・売上動向の分析がしやすい

タグを活用すると、「タグ保有者がどれだけリピート購入しているか」「どのタグの顧客が一番売上貢献しているか」などの分析に役立ちます。タグベースのレポートやデータ活用が可能になり、ビジネス上の意思決定をより正確に行えます。

5. 他アプリや外部ツールと連携しやすい

Shopify の顧客タグは、メール配信アプリ、ロイヤルティプログラムアプリ、配送アプリなど、多くのツールと連携可能です。自動化フローの中心としてタグを活用することで、さまざまな追加施策へ展開しやすくなります。

Shopify で「特定の商品を購入した顧客にタグ付け」を実装するデメリット

続いて、Shopify で特定の商品を購入した顧客にタグ付けを実装する際に考えられるデメリットについてまとめます。

1. 設計や管理ルールの複雑化

どの商品を購入したらどのタグを付与するのか、ルールを複数設定すると管理が煩雑になる場合があります。取り扱う商品数やキャンペーン数が多いショップほど、タグ運用ルールの設計に注意が必要です。

2. 誤ったタグ運用による混乱

同じ顧客に競合する複数のタグを付けてしまう、あるいは正しくない商品にタグを紐づけてしまうと、顧客データが混乱してしまいます。一度タグを誤って付与すると修正が面倒になるケースもあるため、運用フローの明確化が求められます。

3. 過度なタグ乱立による管理負荷

多種多様なタグを無計画に発行すると、結果的に管理しきれない数のタグがたまってしまいます。タグは増やしすぎず、適切な命名・運用ポリシーが大切です。

4. コードや設定の変更が難しい場合がある

Shopify Flow や Liquid、Webhook などを活用して独自に実装をしようとすると、やや専門知識が必要となります。テーマのカスタマイズや外部サービスとの連携も含めると、ある程度の開発スキルやコストがかかることもあります。

Shopify で「特定の商品を購入した顧客にタグ付け」を実装する方法

ここからは、Shopify 上で顧客タグを自動で付与する方法を簡単に考察します。大きく分けると次の 2 つがあります。

  1. Shopify Flow や Webhook を用いるカスタム実装
    上位プランで提供される Shopify Flow を使えば、トリガー「注文が作成された」を使って「注文の中の商品が○○であればタグを付与」といったワークフローを作成できます。Flow が使えないプランの場合は Webhook を受け取り、外部サーバーで自動的に処理する方法もありますが、開発コストがかかります。

  2. 手動で注文や顧客を確認してタグを追加する
    コストをかけずに始めたい場合、管理画面から手動で顧客情報にタグを付与する方法があります。ただし、商品数や注文数が増えると運用は煩雑になりやすいため、手動での管理はあくまで少量のときだけ有効です。

上記の方法は自由度がある一方で、設定や管理がやや複雑になることもあります。

まずは、Webhook を用いて、特定の商品を購入した顧客にタグを自動付与する方法について考察していきましょう。

Shopify Webhook を用いた「特定の商品を購入した顧客にタグ付け」の仕組み

それでは、Webhook を用いて顧客タグを自動的に付与する仕組みを簡単に整理しておきましょう。

  1. Webhook の登録
    Shopify 管理画面の「設定 > 通知 > ウェブフック」から「注文作成(Order creation)」などのイベントを登録します。Webhook のエンドポイント(URL)は、あとで構築するサーバーのエンドポイントを指定します。

  2. サーバー側でリクエストを受け取る
    Webhook からのリクエストは JSON 形式で送信されます。Node.js や Ruby、Python など任意の言語で受け取り、注文データを解析します。

  3. 注文内の Line Items をチェック
    特定の商品(あるいは特定の商品タグ・SKU など)が含まれているかどうかを判定し、条件に合致すれば購入者の顧客情報を取得します。

  4. 顧客タグを付与
    Shopify Admin API(REST もしくは GraphQL)を呼び出し、対象顧客にタグを付与します。すでに他のタグがあれば上書きしないように注意しながらタグを追記する形が一般的です。

Webhook と Shopify Admin API を組み合わせた具体的なコード例

ここでは、Node.js + Express を用いた最小限のサンプルを示します。以下の例では、ある特定の「product_id」が含まれるかどうかで判断し、顧客にタグを付与します。

※ 実運用では署名検証やセキュアな環境変数管理、エラー処理などを適切に行ってください。

// server.js
const express = require("express");
const bodyParser = require("body-parser");
const fetch = require("node-fetch"); // Node v18 以上なら標準fetchも可

const app = express();
app.use(bodyParser.json());

// 環境変数などで管理するのがおすすめ
const SHOPIFY_ACCESS_TOKEN = "YOUR_SHOPIFY_ACCESS_TOKEN";
const SHOPIFY_STORE_DOMAIN = "YOUR_STORE_NAME.myshopify.com";

// 特定の商品ID (例: 123456789) を購入したらタグ付け
const TARGET_PRODUCT_ID = 123456789;
const TAG_TO_ADD = "Purchased_Special_Item";

app.post("/webhook/order-created", async (req, res) => {
  try {
    // Shopify Webhook から送られる注文データ
    const order = req.body;
    console.log("Received new order:", order);

    // 特定の商品が含まれているか確認
    const lineItems = order.line_items || [];
    const hasTargetProduct = lineItems.some(
      (item) => item.product_id === TARGET_PRODUCT_ID
    );

    if (!hasTargetProduct) {
      // 特定の商品が含まれていなければ何もしない
      return res.status(200).send("No target product in order");
    }

    // 顧客情報が存在するかチェック
    if (!order.customer) {
      return res.status(200).send("No customer info in order");
    }

    const customerId = order.customer.id;
    const existingTags = order.customer.tags || ""; // 既存のタグ

    // すでに同じタグがあれば重複しないようにチェック
    let updatedTagsArray = existingTags
      ? existingTags.split(",").map((tag) => tag.trim())
      : [];

    if (!updatedTagsArray.includes(TAG_TO_ADD)) {
      updatedTagsArray.push(TAG_TO_ADD);
    }

    // カンマ区切りの文字列に変換
    const updatedTags = updatedTagsArray.join(", ");

    // Shopify Admin API を用いて顧客タグをアップデート
    // https://shopify.dev/docs/api/admin-rest/2023-04/resources/customer#update-customer
    const response = await fetch(`https://${SHOPIFY_STORE_DOMAIN}/admin/api/2023-04/customers/${customerId}.json`, {
      method: "PUT",
      headers: {
        "Content-Type": "application/json",
        "X-Shopify-Access-Token": SHOPIFY_ACCESS_TOKEN,
      },
      body: JSON.stringify({
        customer: {
          id: customerId,
          tags: updatedTags,
        },
      }),
    });

    if (!response.ok) {
      console.error("Failed to update customer tags");
      return res.status(500).send("Failed to update customer tags");
    }

    console.log("Customer tags updated successfully");
    res.status(200).send("Customer tags updated successfully");
  } catch (err) {
    console.error("Error handling webhook:", err);
    res.status(500).send("Error handling webhook");
  }
});

// サーバー起動
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
  console.log(`Webhook server is running on port ${PORT}`);
});

ポイント解説

  • Webhook 受信用のエンドポイント
    /webhook/order-created を例として用意し、Shopify 管理画面で「注文作成(Order creation)」に対応する Webhook URL として登録します。
  • Line Items のチェック
    line_items.some((item) => item.product_id === TARGET_PRODUCT_ID) で購入された商品の中に対象 ID があるかを確認しています。
  • 顧客タグの更新
    existingTags を既存のタグ情報として取得し、カンマ区切りで配列へ変換し、重複がなければ TAG_TO_ADD を追加してまとめています。
  • Shopify Admin API 呼び出し
    PUT /admin/api/2023-04/customers/<customerId>.json を用いてタグを更新しています。アクセストークンはパスワード型の公開アプリやプライベートアプリ(またはカスタムアプリ)で取得したものを利用してください。

Shopify アプリを用いて「特定の商品を購入した顧客にタグ付け」を実装する方法

Shopify アプリを活用することで、ノーコードに近い形で「商品 X を購入したらタグ Y を付与する」という仕組みを構築できます。専門的な知識を必要としないため、非常に手軽です。

Shopify アプリストアには多種多様な顧客タグ付けアプリが存在しますが、日本語対応やサポートの充実度、価格プランなどを比較しながら検討するとよいでしょう。

シンプル特定の商品を購入した顧客にタグをつけるアプリ|特定の商品を購入した顧客に自動でタグ付けを行える!の機能について

ここでご紹介するのが、株式会社UnReact が提供する日本製アプリ「シンプル特定の商品を購入した顧客にタグをつけるアプリ」です。Shopiy 顧客タグ 自動 特定の商品、といったキーワードに最適な機能が詰まっています。

  • 価格
    月額 $9.99 で利用でき、インストール日から 7 日間は無料体験が可能です。

  • 主な機能

    1. 自動タグ付け
      「特定の商品を購入したら顧客にタグ X を付ける」といったルールを設定するだけで完了します。購入直後に自動でタグが付与されるため、タイムラグがありません。
    2. 複数ルールの管理
      たとえば高額商品の購入者には「VIP」、初回購入者には「Welcome」、といった複数パターンの自動タグ付けを並行して設定できます。管理画面で一覧管理できるため、スムーズに編集・削除が可能です。
    3. 日本語対応 & シンプルな操作
      設定画面は日本語に対応しており、シンプルなステップで導入できます。難しいコードを扱わなくても、管理画面からタグ付けルールを作れるのが特徴です。
    4. 他アプリとの連携
      付与されたタグをもとにメール配信アプリやロイヤルティアプリなどと連携すれば、購入後のフォローやアップセル施策を自動化できます。
  • 評価 & レビュー
    現在の評価は 0.0(0 レビュー) ですが、今後のアップデートで多くの店舗に導入されていくと期待されています。

  • 開発者
    株式会社UnReact

  • カテゴリー
    ワークフローの自動化

特定の商品を購入した顧客にタグを付与し、顧客管理からマーケティング施策まで広げたい方にとって、使いやすい選択肢の一つとなるでしょう。

シンプル特定の商品を購入した顧客にタグをつけるアプリの概要

ここからは、シンプル特定の商品を購入した顧客にタグをつけるアプリの機能についてざっくりと解説していきます。

以下のアプリリストを参考にしています。

https://apps.shopify.com/shopify-application-446

こちらのアプリを利用すると、特定の商品を購入した顧客に自動でタグ付けを行えます。

例えば、会員費等の商品を購入した顧客に対して、会費登録済等のタグを付与することが可能です。

また、顧客への自動タグ付けの設定は、2 STEP で完了することができます。特定の商品を選択して、その商品購入した際に顧客に付与されるタグを設定することができます。

また、設定した自動タグ付けの設定は、一覧で確認・編集・削除ができます。

ここまでで、シンプル特定の商品を購入した顧客にタグをつけるアプリの概要は終了です。

以下のアプリストアから、インストールが可能です。

https://apps.shopify.com/shopify-application-446

最後に

今回は、特定の商品を購入した顧客に自動でタグを付与する方法について、定義・メリット・デメリットから具体的な実装方法まで幅広くご紹介しました。Shopify Flow などを使った独自の実装も可能ですが、「シンプル特定の商品を購入した顧客にタグをつけるアプリ」のような専用アプリを使えば、少ない工数で素早く運用を開始できます。

顧客データのセグメント化は、よりパーソナライズされたマーケティングや売上向上をもたらしてくれるはずです。ぜひ活用してみてください。

参考記事

以下の記事もあわせて参考にしてみてください。

Discussion