Amela
機密保持のため、企業名・サービス名・システム画像は仮名およびモックに置き換えています。
AgriHarvest株式会社様 プラットフォーム構築ストーリー

「同じ食品を最安値で買いたい」を、4EC横断 価格比較で解決。

FreshPrice は、4大ECサイトを横断して野菜・果物・米・調味料・加工食品など50万SKU超を24時間モニタリングする、消費者向け食品価格比較プラットフォーム。「同じ商品の最安値」「過去30日の価格推移」「セール検知通知」を1ポータルに統合し、買い時を逃さない購買体験を提供する Next.js + Node.js Web アプリ。

「EC4サイトを行き来する手間・価格履歴の不透明さ・値下げ見逃し・横断ランキングの不在」 ─ 食品EC利用者が抱える4軸の課題を同時に解決するプラットフォームを、ゼロから10ヶ月で内製構築した、新規プラットフォーム立ち上げストーリー。

対象EC
4 大EC
大手3 + 食品専門1
モニタリング
50万+ SKU
24時間 自動収集
クロール処理
100万+ req/日
分散クローラ 自動拡張
対応プラットフォーム
Web
PC / スマートフォン対応
01
CLIENT
お客様について

国内有数の食品EC事業者、「AgriHarvest株式会社様」。

AgriHarvest株式会社様は、産地直送の野菜・果物・米・調味料・加工食品を取り扱う食品EC事業者。生鮮食品の購買体験を変えるため、自社販売チャネルに加えて「消費者が他EC との価格を即比較できる」横断比較ポータルの立ち上げを計画しました。市場には書籍や家電の価格比較サイトはあれど、生鮮食品に特化した横断ポータルがほぼ存在しませんでした。

「同じ食品の最安値を、買い物のたびに迷わず判断できる体験を」をコンセプトに、消費者向け価格比較プラットフォームを内製。Python Scrapy + Scrapy-Redis ベースの分散クローラ基盤で4大EC を24時間モニタリングし、Node.js API で同一商品マッチング・価格履歴・通知を提供。Next.js Web アプリで横断比較画面を実装しています。

モニタリング対象
50万+ SKU
対象EC
4 大EC (大手3 + 食品専門1)
クロール処理
100万+ リクエスト/日
BUSINESS FLOW
01
STEP
商品ブラウズ
カテゴリ・キーワードで食品を検索
02
STEP
4EC 横断比較
同一商品の価格・送料・在庫を一覧
03
STEP
価格履歴で判断
30日推移チャートで買い時を確認
04
STEP
購入 or 通知設定
最安値で購入、または目標価格で通知
02
CHALLENGE
解くべき設計課題

プラットフォームに求められた、4つの構造要件。

いずれも技術選定の問題ではなく、価格鮮度・データ精度・運用コスト・ユーザー継続率に直結する事業要件。

① 4ECサイトを24時間モニタリングしなければ、最安値を保証できない

各EC は日次・時間単位で価格・在庫が変動。1日1回のバッチクロールでは古い価格を表示し、消費者の信頼を失う。

② 同一商品マッチングの精度が低ければ、誤った価格を比較してしまう

各EC で商品名の表記揺れ (容量、産地、ブランド名) があり、「同じ商品」の判定が誤れば 価格比較自体が無意味になる。

③ クローラ基盤を固定リソースで構築すれば、運用コストが嵩む

セール時期・新規EC追加など クロール量が時期により10倍以上変動。常時ピーク量に合わせれば、平時のコスト効率が悪化する。

④ 値下げ通知が遅ければ、買い時を逃して離脱する

値下げ検知から通知まで時間が空けば、セール終了後に通知が届く ことになり、消費者の信頼を失う。

03
ARCHITECTURE
共に築いた構成

価格比較体験を、4つの領域で「止まらない基盤」へ。

AgriHarvest様の食品価格比較プラットフォームを、ゼロから内製で構築しました。Python Scrapy + Scrapy-Redis の分散クローラ基盤を AWS EC2 上で自動スケール、Node.js + Express の API で同一商品マッチング・価格履歴・通知配信を実装。Next.js Web アプリで横断比較画面を提供しています。

領域 ①
分散クローラ基盤
課題
4ECサイトを24時間モニタリングしなければ、最安値を保証できない。
解決策
Scrapy + Scrapy-Redis で 分散クローラ swarm を構成
EC2 ワーカー群が共有 Redis キューからタスクを取得、4EC × 15スパイダーで24時間並列クロール
領域 ②
同一商品マッチング
課題
同一商品マッチングの精度が低ければ、誤った価格を比較してしまう。
解決策
ETL + 正規化エンジンで SKU 揺れを統一
商品名・容量・産地・ブランドをルール+Elasticsearch ファジーマッチで正規化、人手レビュー UI で品質維持
領域 ③
自動スケーリング
課題
クローラ基盤を固定リソースで構築すれば、運用コストが嵩む。
解決策
クローラ EC2 を Redis キュー長で自動拡張・縮退
専用オーケストレータが backlog を監視し EC2 を自動起動/停止、平時とセール時の両方でコスト最適化
領域 ④
リアルタイム通知
課題
値下げ通知が遅ければ、買い時を逃して離脱する。
解決策
Bull キュー + Socket.io + SendGrid で多チャネル即配信
価格更新時に目標到達ユーザーを即抽出、Push (Socket.io) + メール (SendGrid) で数秒以内に通知
TECH STACK
Frontend
Next.js ReactM Material-UI / Ant Design📊 Chart.js
Backend
Node.js + Express MongoDB MySQL Elasticsearch Redis · Bull Socket.io
クローラ / Infra
Python Scrapy + Scrapy-Redis AWS EC2 (auto-scale) S3 SendGrid
04
IMPACT
プラットフォームが生み出す価値

AgriHarvest様の「消費者の購買体験」が、加速する。

この基盤は技術指標ではなく、価格鮮度・購買継続率・運用コスト・通知精度といったビジネスアウトカムを継続的に生み出します。

① 「同じ商品の最安値」を1画面で即判定できる基盤

4EC を行き来する手間を削減し、消費者が買い物のたびに迷わず最安値で購入できる体験を提供。

② 価格判断の透明性を確保する設計

30日価格履歴チャートで「今は買い時か、待つべきか」を消費者自身が判断可能。価格の透明性が信頼に直結。

③ 運用コストを最適化する自動拡張

クローラ EC2 が需要に応じて自動増減。セール時にも安定稼働しつつ、平時のコスト効率を維持。

④ 値下げ通知でユーザーをアプリに引き戻す

数秒以内の Push + メール通知で「セール終了前に届く」体験を実現。再訪率・LTV の継続的な向上に寄与。

05
DEMO
3つのシナリオ

実際に動くデモで、AgriHarvest様の体験を。