ECサイトの立ち上げや運用において、多くの担当者が直面する課題の一つが商品データの登録作業です。特に紙のカタログやPDF形式で管理されている商品情報を、そのままECサイトに反映するのは簡単ではありません。手作業での入力は時間がかかるだけでなく、入力ミスや表記ゆれの原因にもなります。また、商品点数が増えるほど作業負担は指数的に増加し、更新作業や在庫管理にも影響が出る可能性があります。
StructFlowの概要
StructFlowは、PDFやテキストなどの非構造化データをJSON形式の構造化データへ変換できるツールです。従来は人手で整理する必要があった商品情報を、自動で抽出し整形できる点が大きな特徴です。さらに、抽出ルールをプロンプトとして柔軟に変更できるため、企業ごとのデータフォーマットや商品仕様に合わせて最適化できます。これにより、単なるデータ変換にとどまらず、データの標準化や一貫性の確保にもつながります。
n8nの概要
n8nは、さまざまなアプリケーションやサービスを連携し、業務の自動化を実現できるワークフロー自動化ツールです。ノーコードまたはローコードで直感的にフローを構築できるため、プログラミングの専門知識がなくても活用しやすい点が特徴です。API連携やデータ変換処理、条件分岐などを組み合わせることで、柔軟な業務プロセスを構築できます。
全体の流れ
今回の仕組みでは、n8nを使って以下のような流れで処理を行います。
この一連の流れを自動化することで、従来は数時間かかっていた作業を数分に短縮することも可能です。また、担当者の作業負担を軽減し、より付加価値の高い業務に時間を割けるようになります。
n8nによるワークフロー構築
まず、n8nでワークフローを作成します。トリガーにはフォーム送信を利用し、PDFファイルを入力として受け取ります。その後、「Extract from PDF」ノードを使ってテキストを抽出します。ファイル形式に応じて分岐処理を行うことで、より柔軟な運用が可能になります。また、社内のSharePointやTeamsと連携すれば、ファイルアップロードをトリガーにした自動処理も実現できます。
抽出したテキストはStructFlowへ送信し、必要な情報だけを取得するためのプロンプトを設定します。この際、商品名や価格だけでなく、Shopifyで利用されるカテゴリ体系に基づいた商品カテゴリの自動分類も同時に行うよう指示できます。これにより、インポート後のカテゴリ設定作業を省き、よりスムーズに商品登録を進めることが可能になります。さらに、ブランド名やバリエーション情報なども抽出対象に含めることで、より実務に即したデータ整備が可能になります。
あなたは高精度なデータ抽出AIです。 入力として与えられるフルーツ・野菜カタログPDFから商品情報を抽出し、以下の仕様に従ってJSON形式で出力してください。 # Shopify Taxonomy参照(必須) カテゴリは必ず以下のShopify Standard Product Taxonomyに基づく: https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=gid%3A%2F%2Fshopify%2FTaxonomyCategory%2Ffb-2-10 ※このカテゴリは「Food, Beverages & Tobacco > Food Items > Produce」に属する ※Shopifyではカテゴリは階層(breadcrumb形式)で指定する必要がある # 重要:カテゴリ出力形式 product-categoryは必ず以下のような「階層(breadcrumb)」形式で出力する: 例: - Food, Beverages & Tobacco > Food Items > Produce > Fresh Fruits - Food, Beverages & Tobacco > Food Items > Produce > Fresh Vegetables ※省略は禁止 ※「produce.fruit」のような短縮形式は禁止 # 抽出対象 各商品について以下の項目を抽出・生成してください:
# 例 入力: ## りんご 説明: 甘い 単位: 1 個 価格: 150 円 出力: { "catalog_title": "フルーツ・野菜カタログ", "products": [ { "sku": "SKU001", "name": "りんご", "product-category": "Food, Beverages & Tobacco > Food Items > Produce > Fresh Fruits", "description": "甘い", "unit": "1個", "unit-price": "150円", "unit_price_value": 150 } ] }
StructFlowによるデータ抽出
StructFlowを実行すると、商品名、価格、カテゴリなどの情報がJSON形式で出力されます。これにより、もともとバラバラだった情報が整理され、機械的に扱える状態になります。さらにカテゴリ分類も自動化できるため、後続のEC登録作業が大幅に簡素化されます。データが構造化されることで、他のシステムとの連携や分析にも活用しやすくなる点もメリットです。
rumjvincucbyra1cth2yjc", "model": "azure/gpt-5.4-mini", "status": "completed", "summary": { "total": 1, "succeeded_count": 1, "failed_count": 0 }, "results": [ { "status": "succeeded", "output": { "catalog_title": "フルーツ・野菜カタログ", "products": [ { "sku": "SKU001", "name": "りんご", "product-category": "Food, Beverages & Tobacco > Food Items > Produce > Fresh Fruits", "description": "甘くてシャキシャキした日本産のりんご。", "unit": "1個", "unit-price": "150円", "unit_price_value": 150 }, { "sku": "SKU002", "name": "みかん", "product-category": "Food, Beverages & Tobacco > Food Items > Produce > Fresh Fruits", "description": "冬に人気の甘い柑橘類。", "unit": "1袋", "unit-price": "400円", "unit_price_value": 400 },
{
"sku": "SKU020",
"name": "さくらんぼ",
"product-category": "Food, Beverages & Tobacco > Food Items > Produce > Fresh Fruits",
"description": "小さくて甘い果物。",
"unit": "1パック",
"unit-price": "700円",
"unit_price_value": 700
}
]
},
"id": "uuid:3fc1b1bb-fa32-477a-9d1d-ef1a87d89a3c"
}
],
"usage": {
"total_input_characters": 806,
"processed_input_characters": 806,
"skipped_characters": 0,
"output_characters": 4083,
"vector_bytes": 0
}
}
]
CSV変換とShopify連携
ShopifyではCSVファイルを使った商品インポートが可能です。そのため、n8nのJavaScriptノードを使い、JSONデータをCSV形式に変換します。この処理はテンプレート化できるため、一度作成すれば継続的に再利用できます。
const products = $input.first().json.results[0].output.products; // Build CSV const headers = Object.keys(products[0]); let csv = headers.join(",") + "\n"; for (const p of products) { let row = []; for (const h of headers) { let value = String(p[h]); if (value.includes(",") || value.includes('"')) { value = '"' + value.replace(/"/g, '""') + '"'; } row.push(value); } csv += row.join(",") + "\n"; } // Convert CSV string to binary (Buffer) const binaryData = Buffer.from(csv, "utf-8"); // Return as downloadable file return [ { binary: { data: { data: binaryData.toString("base64"), // required format mimeType: "text/csv", fileName: "catalog.csv" } } } ];
生成されたCSVはダウンロードし、Shopifyの[商品管理]→[インポート]からアップロードします。また、[列見出しの順序を変更する]機能を使えば、CSVの項目とShopifyのフィールドを柔軟に対応付けできます。
さらに、APIキーを利用すれば、CSVを介さずに直接商品登録を行うことも可能です。これにより、完全自動化された商品登録フローを構築でき、人的作業をほぼゼロに近づけることができます。
まとめ
StructFlowとn8nを組み合わせることで、PDFなどの非構造化データから簡単に商品情報を抽出し、Shopifyへ登録できる仕組みを構築できます。これにより、これまで手作業で行っていた入力作業を削減し、業務効率と正確性を大きく向上させることが可能です。特に商品数が多い企業ほどその効果は大きく、業務コスト削減にも直結します。EC化が進む現在、こうしたデータ活用の自動化は競争力を高める重要な要素となります。ぜひ本記事の内容を参考に、自社の業務改善に役立ててみてください。
| 項目 | 内容 |
|---|---|
| 使用サービス | LDX hub — StructFlow |
| モデル | azure/gpt-5.4-mini |
| オーケストレーション | n8n(フォーム送信トリガー / Extract from PDF / Code ノード) |
| 入力 | フルーツ・野菜カタログPDF(806文字) |
| 出力 | 商品情報 JSON(4,083文字 / 20商品) |
| 抽出項目 | 7項目(name / description / unit / unit-price / unit_price_value / product-category / sku) |
| カテゴリ体系 | Shopify Standard Product Taxonomy(breadcrumb形式) |
| 連携先 | Shopify(CSVインポート / API 直接登録) |