2026/06/02

Shopifyで顧客メタフィールドをCSVで管理できるアプリ6選

@ 信条刃

Shopify

今回の記事は Shopify App Store で提供されている、Shopify 顧客メタフィールド CSV のインポート・エクスポートに対応した Shopify アプリについての記事です。

顧客メタフィールドとは

「顧客メタフィールド」とは、Shopify の標準項目(メールアドレス、氏名、住所、電話番号など)では足りない情報を、顧客一人ひとりに自由に追加できるカスタム属性のことです。Shopify 管理画面の「設定 > メタフィールドとメタオブジェクト > お客様」から定義を作成し、namespace と key、タイプ(テキスト、数値、日付、リストなど)を指定することで、ストア独自の情報を保存できるようになります。

たとえば、会員ランク・誕生日・サイズ情報・担当営業の社員コードなど、Shopify 標準の項目では表現できないストア独自のデータを保存するのに使われます。Liquid やテーマ拡張、Shopify Flow、Admin API からも参照できるため、マイページのパーソナライズ表示や、自動アクションのトリガーとしても活用されています。

しかし、顧客が数千〜数万件を超えてくると、Shopify 管理画面で 1 件ずつメタフィールドを編集していくのは現実的ではありません。「会員ランクを一斉に見直したい」「外部システムから取り込んだデータをそのまま反映したい」というニーズが必ず出てきます。そこで活躍するのが、顧客メタフィールドを CSV で一括インポート・エクスポートできる Shopify アプリです。

顧客メタフィールドの CSV 管理について調べるにあたり、以下の記事を参考にしています。

顧客メタフィールドを CSV で管理する利点

  1. 大量の顧客データを一括更新できる
    数千件、数万件の顧客が登録されているストアでも、CSV にまとめて編集してアップロードすれば、まとめて値を更新できます。1 件ずつ Shopify 管理画面で開いて編集する作業から解放されます。

  2. Excel や Google スプレッドシートで編集できる
    日常的に使い慣れたツールで編集できるため、関数や条件付き書式、置換などを駆使して効率的にデータを整形できます。複数人での共同編集も容易です。

  3. 外部システムと連携しやすい
    ERP・CRM・MA ツールなどとデータをやり取りする際、CSV は最も汎用性の高いフォーマットです。エクスポートした CSV をそのまま他のシステムに取り込むことができます。

  4. データのバックアップ手段になる
    定期的にエクスポートしておけば、顧客メタフィールドのスナップショットを残せます。万が一誤った更新を行ってしまった場合でも、過去の CSV から元に戻すことができます。

  5. 属人化の解消
    メタフィールドの更新をエンジニアではない担当者でも安全に行えるようになり、運用の属人化を解消できます。引き継ぎ時にもスムーズです。

  6. パーソナライズ施策の幅が広がる
    会員ランク・誕生日・好みなどを CSV で一括設定できれば、誕生日クーポンの自動配信や、ランク別のオファーといったパーソナライズ施策を迅速に展開できます。

顧客メタフィールド CSV アプリの選び方

顧客メタフィールド CSV アプリを選ぶ際は、以下の観点でチェックすると失敗が少なくなります。

  • インポート・エクスポートの両方に対応しているか
  • 事前にメタフィールド定義を読み取って自動的にカラム化してくれるか
  • バリデーションでエラーを未然に検知できるか
  • 日本語の管理画面に対応しているか
  • 月額料金とサポート範囲のバランスが、自社の運用規模に合っているか
  • 進捗のリアルタイム表示やエラー詳細など、運用面の使い勝手が良いか
  • スケジュール実行や FTP/Google Sheets 連携など、自動化機能が必要かどうか

「とにかく顧客メタフィールドを CSV で一括管理できれば良い」のか、「商品・注文・翻訳など多種多様なデータをまとめて扱いたい」のか、用途を明確にしたうえでアプリを選ぶことが重要です。

おすすめの顧客メタフィールド CSV Shopify アプリ

シンプル顧客メタフィールド CSV インポート・エクスポート ☆ 迷ったらこれ

シンプル顧客メタフィールド CSV インポート・エクスポート

全顧客のメタフィールドを CSV で一括管理できる、シンプル & 日本語対応のアプリ

特徴・機能

「シンプル顧客メタフィールド CSV インポート・エクスポート」は、株式会社 UnReact が提供する、顧客メタフィールドの CSV 管理に特化した Shopify アプリです。すべての顧客のメタフィールドを 1 クリックで CSV としてエクスポートし、Excel や Google スプレッドシートで編集してインポートするだけで、変更内容を一括反映できます。インポート前に CSV の内容を自動でチェックする仕組みが備わっているため、入力ミスによる事故を未然に防げます。メタフィールドのカラムはストアの定義から自動生成されるため、面倒な事前マッピングも不要です。

  • 全顧客のメタフィールドを 1 クリックで CSV にエクスポート
  • 編集後の CSV をアップロードするだけで一括更新
  • インポート前に自動でバリデーション、エラー行を画面で確認可能
  • ストアのメタフィールド定義から CSV カラムを自動生成
  • 「読み込み → バリデーション → 更新」の各ステップの進捗をリアルタイム表示
  • バルクオペレーションでバックグラウンド実行、大量データでも安心
  • 日本語の管理画面で英語が苦手なメンバーでも安心して操作可能
  • CSV 仕様ページからメタフィールド定義画面へワンクリック遷移

価格設定

  • Basic Plan 月額 $9.99 / 年払い $99.99(実質 2 ヶ月分無料)。インストールから 7 日間は無料でお試し可能。
    顧客数・メタフィールド数に関わらずすべての機能を利用できるシンプルな単一プランです。

  • アプリのインストールはこちらから

  • 詳細なご利用ガイドはこちら

StoreRobo Import Export

StoreRobo Import Export

商品・コレクション・注文・顧客・割引を CSV で一括インポート・エクスポート

特徴・機能

WebToffee が提供する、商品・コレクション・注文・顧客・割引などを CSV で一括インポート・エクスポートできる多目的アプリです。WooCommerce API・FTP/SFTP・公開 URL からも商品をインポートできるため、他プラットフォームからの移行用途にも対応しています。

  • 商品・コレクション・注文・顧客・割引を CSV で一括インポート・エクスポート
  • WooCommerce API・FTP/SFTP・公開 URL からのインポートに対応
  • カスタム CSV のフィールドマッピング機能を搭載
  • スケジュール実行と在庫の自動同期
  • インポート・エクスポートジョブ完了時の通知機能

価格設定

  • FREE 無料:商品 25 件 / 顧客 10 件 / 注文 10 件などの試用枠。
  • BASIC 月額 $10 / 年払い $100:商品 5,000 件 / 顧客 2,000 件 / 注文 1,000 件まで。FTP/SFTP・WooCommerce API・スケジュール実行に対応。
  • PRO 月額 $20 / 年払い $200:BASIC のすべてに加え、カスタム CSV インポートとマッピング機能を提供。
  • ENTERPRISE 月額 $100 / 年払い $1,000:すべての件数が無制限。

Matrixify

Matrixify

ほぼすべての Shopify データを Excel / Google Sheets / CSV で扱える定番ツール

特徴・機能

ITissible が提供する、Shopify データのバルクインポート・エクスポートの定番アプリです。商品・コレクション・顧客・B2B カンパニー・割引・下書注文・注文・支払い・ページ・ブログ・リダイレクト・ファイル・メタオブジェクト・メタフィールド・メニュー・翻訳など、ほぼあらゆるデータに対応します。

  • 商品・顧客・注文を含むほぼすべての Shopify データのインポート・エクスポート
  • Excel / Google Sheets / CSV ファイル対応、最大 20GB のファイルも扱える
  • WooCommerce, WordPress, Magento, BigCommerce, Lightspeed からの移行に対応
  • バックアップ・リストア・ストア間のデータコピー
  • スケジュール実行と自動繰り返しジョブ、ジョブの履歴管理
  • 進行中のジョブのモニタリング・制御

価格設定

  • Demo 無料:商品 10 件・顧客 10 件など各データ 10 件まで(メタフィールドのみ無制限)
  • Basic 月額 $20:商品 5,000 件・顧客 2,000 件・注文 1,000 件など
  • Big 月額 $50:商品 50,000 件・顧客 20,000 件・注文 10,000 件など
  • Enterprise 月額 $200:すべて無制限、バッチインポート、並列処理が強化

Vostari CSV converter: Woo

Vostari CSV converter: Woo

WooCommerce の CSV を Shopify 用の CSV に変換する移行特化ツール

特徴・機能

Vostari が提供する、WooCommerce からエクスポートした CSV を Shopify のインポート用フォーマットに変換するための専用ツールです。Shopify 標準の CSV インポート機能と組み合わせて、商品・顧客データを WooCommerce から Shopify に移行する用途に特化しています。

  • WooCommerce の商品・顧客 CSV を Shopify 形式に変換
  • 商品説明に埋め込まれたメディアを HTML 更新付きで Shopify に転送
  • Woo カテゴリーをタグでフィルタするスマートコレクションを作成
  • Shopify Standard Product Taxonomy と Google Taxonomy をクイック検索
  • ブラウザだけで完結、Shopify 標準のインポーターを併用可能

価格設定

  • Pay as you go:無料インストール。変換したデータ量に応じた従量課金で、最低料金は $9.99 USD。最初の変換は無料・カード不要、顧客データ用の CSV 変換は無料で利用可能。

Altera ‑ Export and Import

Altera ‑ Export and Import

Matrixify 互換のモダンなインポート・エクスポートツール。AI 連携も可能

特徴・機能

Abnoba LLC が提供する、Matrixify 互換のファイルフォーマットを採用しつつ、より新しい Shopify のデータ型にも対応するモダンなインポート・エクスポートツールです。CLI と MCP サーバーを提供しており、ChatGPT や Claude などの AI エージェントと連携してデータ操作を自動化できます。

  • 商品・注文・顧客・メタフィールド・メタオブジェクト定義・翻訳・カタログなどに対応
  • Matrixify の Excel/CSV ファイルをそのまま読み書き可能
  • Google Sheets, Google Drive, SFTP, WebDAV, FTP 連携
  • WooCommerce, Etsy からの移行・ストア間のコピー
  • ChatGPT, Claude などの AI エージェントと MCP / CLI で連携

価格設定

  • Community 無料:1 ファイル 100 行まで、1 ジョブずつ実行、標準の変換機能。
  • Developer 無料:Shopify 無料プラン向け。行数無制限・2 ジョブ並列・CLI 対応・MCP フル機能。
  • Pro 月額 $15:スケジュール実行・行数無制限・4 ジョブ並列・カスタム変換・CLI/MCP フル機能。

Order Blender: Order Exporter

Order Blender: Order Exporter

注文データを ERP / 会計向けにきれいな CSV で書き出す注文エクスポート専用ツール

特徴・機能

Didit が提供する、Shopify の注文を ERP・会計システム向けの CSV に整形してエクスポートできるアプリです。日付範囲指定・新規分のみ・全件など柔軟な抽出条件と、Shopify フィールドから任意のカラム名へのマッピング機能を備えています。

  • 日付範囲・全件・新規分のみで注文をエクスポート
  • Shopify の注文フィールドを任意の CSV カラム名にマッピング
  • ERP 向けプリセットテンプレートを内蔵
  • 再利用可能なカスタムテンプレートでチーム共通の出力フォーマットを管理

価格設定

  • Standard Plan 月額 $99、7 日間の無料体験
  • Pro Plan 月額 $199、7 日間の無料体験

コーディングによる実装例

「アプリを使わずに自力で実装したい」という開発者向けに、Shopify Admin API(GraphQL)で顧客メタフィールドを CSV と相互変換するコード例を紹介します。Node.js を想定しています。

エクスポート:bulk operation で全顧客とメタフィールドを取得

Shopify では大量データを扱う場合、bulkOperationRunQuery を使って非同期に取得するのが定石です。

mutation {
  bulkOperationRunQuery(
    query: """
      {
        customers {
          edges {
            node {
              id
              email
              firstName
              lastName
              metafields {
                edges {
                  node {
                    namespace
                    key
                    type
                    value
                  }
                }
              }
            }
          }
        }
      }
    """
  ) {
    bulkOperation {
      id
      status
    }
    userErrors {
      field
      message
    }
  }
}

bulk operation が完了したら、Shopify が JSONL 形式のファイル URL を返してくれるので、それをダウンロードして CSV に整形します。

import { writeFileSync } from 'node:fs';

type CustomerRow = {
  id: string;
  email: string | null;
  firstName: string | null;
  lastName: string | null;
  metafields: Record<string, string>;
};

// JSONL のテキストをパースして顧客とメタフィールドの対応を組み立てる
const buildCustomerRows = (jsonl: string): CustomerRow[] => {
  const lines = jsonl.split('\n').filter(Boolean);
  const customers = new Map<string, CustomerRow>();

  for (const line of lines) {
    const obj = JSON.parse(line) as Record<string, unknown>;
    const id = obj.id as string;
    const parentId = obj.__parentId as string | undefined;

    if (!parentId) {
      // 顧客本体の行
      customers.set(id, {
        id,
        email: (obj.email as string) ?? null,
        firstName: (obj.firstName as string) ?? null,
        lastName: (obj.lastName as string) ?? null,
        metafields: {},
      });
    } else {
      // 親に紐づくメタフィールド行
      const parent = customers.get(parentId);
      if (!parent) continue;
      const columnName = `Metafield: ${obj.namespace}.${obj.key} [${obj.type}]`;
      parent.metafields[columnName] = (obj.value as string) ?? '';
    }
  }
  return [...customers.values()];
};

CSV の出力は、固定カラム+ストアに登場するすべてのメタフィールドカラムを並べる形にします。

const escapeCsv = (value: string): string => {
  // ダブルクォート・カンマ・改行を含む場合のみクォートで囲む
  if (/[",\n]/.test(value)) {
    return `"${value.replace(/"/g, '""')}"`;
  }
  return value;
};

const writeCsv = (rows: CustomerRow[], outputPath: string): void => {
  const metafieldColumns = [
    ...new Set(rows.flatMap((row) => Object.keys(row.metafields))),
  ].sort();

  const header = ['ID', 'Email', 'FirstName', 'LastName', ...metafieldColumns];
  const lines = [header.join(',')];

  for (const row of rows) {
    const cells = [
      row.id,
      row.email ?? '',
      row.firstName ?? '',
      row.lastName ?? '',
      ...metafieldColumns.map((col) => row.metafields[col] ?? ''),
    ].map(escapeCsv);
    lines.push(cells.join(','));
  }

  writeFileSync(outputPath, lines.join('\n'), 'utf-8');
};

インポート:CSV を読み込んで metafieldsSet で更新

CSV を読み込み、Metafield: namespace.key [type] のカラム名を分解して、metafieldsSet ミューテーションのインプットを組み立てます。

import { readFileSync } from 'node:fs';

type MetafieldInput = {
  ownerId: string;
  namespace: string;
  key: string;
  type: string;
  value: string;
};

const parseMetafieldColumn = (
  column: string,
): { namespace: string; key: string; type: string } | null => {
  // 例: "Metafield: custom.member_rank [single_line_text_field]"
  const match = column.match(
    /^Metafield:\s*([^.]+)\.([^\s]+)\s*\[(.+)\]$/,
  );
  if (!match) return null;
  return { namespace: match[1], key: match[2], type: match[3] };
};

const buildMetafieldInputs = (csv: string): MetafieldInput[] => {
  const [headerLine, ...bodyLines] = csv.split('\n').filter(Boolean);
  const headers = headerLine.split(',');
  const idIndex = headers.indexOf('ID');
  if (idIndex < 0) throw new Error('ID 列が見つかりません');

  const inputs: MetafieldInput[] = [];
  for (const line of bodyLines) {
    const cells = line.split(',');
    const customerId = cells[idIndex];
    if (!customerId) continue;

    headers.forEach((header, columnIndex) => {
      const parsed = parseMetafieldColumn(header);
      if (!parsed) return;
      const value = cells[columnIndex] ?? '';
      if (value === '') return; // 空欄はスキップ
      inputs.push({
        ownerId: `gid://shopify/Customer/${customerId}`,
        namespace: parsed.namespace,
        key: parsed.key,
        type: parsed.type,
        value,
      });
    });
  }
  return inputs;
};

metafieldsSet は 1 回のミューテーションで最大 25 件まで指定できるため、25 件ずつに分割しながら更新します。

mutation MetafieldsSet($metafields: [MetafieldsSetInput!]!) {
  metafieldsSet(metafields: $metafields) {
    metafields {
      id
      namespace
      key
    }
    userErrors {
      field
      message
    }
  }
}

このように自前実装することも不可能ではありませんが、エラーハンドリング・進捗管理・大量データ対応など、本番運用に耐えるレベルで作り込むのは想像以上に重たい作業です。運用工数とコストのバランスを考えると、最初は専用アプリを導入するのが現実的な選択になるはずです。

価格比較

各アプリの料金プランを比較すると、以下のような特徴があります。

  • シンプル顧客メタフィールド CSV インポート・エクスポート:月額 $9.99 の単一プラン
  • StoreRobo Import Export:FREE / BASIC $10 / PRO $20 / ENTERPRISE $100
  • Matrixify:Demo 無料 / Basic $20 / Big $50 / Enterprise $200
  • Vostari CSV converter:無料インストール+従量課金(最低 $9.99)
  • Altera:Community / Developer 無料 / Pro $15
  • Order Blender:Standard $99 / Pro $199

「顧客メタフィールドの CSV 管理だけを安価に行いたい」場合は シンプル顧客メタフィールド CSV インポート・エクスポート が最もコストパフォーマンスに優れています。マルチデータを扱いたいなら Matrixify や Altera、注文 ERP 連携が中心なら Order Blender が選択肢になります。

Shopify アプリの日本語サポート

各アプリの日本語対応状況は以下のとおりです。

  • シンプル顧客メタフィールド CSV インポート・エクスポート:管理画面が日本語対応 ○
  • StoreRobo Import Export:英語のみ ×
  • Matrixify:英語のみ ×
  • Vostari CSV converter:英語のみ ×
  • Altera ‑ Export and Import:英語のみ ×
  • Order Blender:英語のみ ×
  • DataChamp(参考):日本語対応 ○

日本人スタッフが運用する場合、管理画面の言語は大きな影響を与えます。日本語に正式対応している シンプル顧客メタフィールド CSV インポート・エクスポート は、エラーメッセージ・進捗バッジまで日本語化されているため安心です。

使いやすさ

最もおすすめできるのは シンプル顧客メタフィールド CSV インポート・エクスポート です。月額 $9.99 という分かりやすい価格で、「顧客メタフィールドを CSV で出して、編集して、戻す」というコア機能だけに集中して作り込まれています。事前のテンプレート設定や複雑な権限設定が不要で、ストアにある顧客メタフィールド定義を読み取ってカラムを自動生成してくれるため、初回利用時から迷わず使えるのが大きな魅力です。

加えて、インポート前のバリデーションと進捗のリアルタイム表示によって、「気付かないうちに本番データを壊してしまった」という運用事故のリスクを大きく減らせます。日本語の管理画面と、CSV 仕様ページから定義画面へのワンクリック遷移など、運用担当者の使い勝手にもしっかり配慮されています。これらの点から、顧客メタフィールドの CSV 管理を始める最初のアプリとして自信を持っておすすめできます。

終わりに

今回は、Shopify で顧客メタフィールドを CSV でインポート・エクスポートできるアプリ 6 選をご紹介しました。「とにかく安価に・手軽に・日本語で始めたい」のであればシンプル顧客メタフィールド CSV インポート・エクスポートが最適です。一方で、商品・注文・翻訳など複数データを総合的に扱いたい場合は Matrixify や Altera を、注文の ERP 連携をしたい場合は Order Blender を組み合わせるとよいでしょう。

ストアの規模や業務の流れに合わせて、ぜひ最適なアプリを見つけてみてください。

参考記事

© 2021 powerd by UnReact