操作マニュアル

概要

Price Watcher は、複数のECサイト(Amazon.co.jp / 楽天市場 / Yahoo!ショッピング)および任意のECサイト・ブランド公式ショップの商品価格・在庫を自動監視し、変動時にChatWorkへ通知するWebアプリケーションです。

主な機能

  • - 商品URLを登録するだけで自動的に価格・在庫情報を取得
  • - 定期的な自動データ取得(デフォルト6時間間隔)
  • - 価格変動・在庫変動をChatWorkに自動通知
  • - 価格推移チャートで変動を可視化
  • - 任意のECサイトをCSSセレクタ指定で監視対象に追加可能

はじめに

Step 1: ChatWork連携を設定する

価格変動の通知を受け取るために、まずChatWorkの設定を行います。

  1. サイドバーの「設定」ページを開く
  2. ChatWork APIトークンを入力(ChatWork管理画面から取得)
  3. 通知先のルームIDを入力
  4. 「接続テスト」ボタンでテストメッセージが届くことを確認

Step 2: 商品を登録する

監視したい商品のURLを登録します。

  1. サイドバーの「商品登録」ページを開く
  2. ECサイトの商品ページURLを入力
  3. 必要に応じてタグや通知閾値を設定
  4. 「登録」ボタンを押すと、商品名・画像・価格が自動取得される

Step 3: 自動監視が開始される

登録後は設定した間隔で自動的にデータ取得が行われ、価格変動があればChatWorkに通知されます。ダッシュボードで最新の状況を確認できます。

ダッシュボード

アプリのトップページです。監視状況を一覧で確認できます。

概要カード

監視中の商品数、本日の値下がり/値上がり件数、在庫切れ件数が表示されます。

直近の価格変動

過去24時間以内に検知した価格変動のリストが表示されます。商品名、変動前後の価格、変動率が確認できます。

今すぐ全商品取得

ボタンを押すと、全監視商品のデータを手動で一括取得できます。次回の自動取得を待たずに最新データを確認したい場合に使用します。

商品管理

商品登録

商品ページのURLを入力して登録します。対応サイトの場合、商品名・画像・現在価格が自動取得されます。

対応サイト: Amazon.co.jp / 楽天市場 / Yahoo!ショッピング / 登録済みカスタムサイト

商品一覧

登録済み商品をテーブル形式で表示します。以下のフィルタ・操作が可能です。

  • - プラットフォームで絞り込み(Amazon / 楽天 / Yahoo! / カスタム)
  • - タグで絞り込み
  • - 在庫状態で絞り込み(在庫あり / 在庫切れ / 限定 / 予約 / 不明)
  • - 監視中のみ表示に切り替え

商品詳細・価格推移

商品を選択すると詳細ページが表示されます。

  • - 価格推移チャート: 折れ線グラフで価格の変動を確認(1週間/1ヶ月/3ヶ月/全期間)
  • - 統計情報: 最安値・最高値・平均値
  • - 価格履歴テーブル: 取得日時ごとの価格・在庫状態の詳細履歴
  • - 手動取得: 「今すぐ取得」ボタンで最新データを即座に取得

商品設定

  • - 監視ON/OFF: 個別商品の監視を一時停止/再開できます
  • - 通知閾値: 価格変動の何%以上で通知するかを商品ごとに設定(デフォルト5%)
  • - タグ: 商品をカテゴリ分けするためのタグを設定

サイト管理

監視対象のECサイトを管理します。プリセットサイト(Amazon/楽天/Yahoo!)に加えて、任意のECサイトをカスタム登録できます。

プリセットサイト

Amazon.co.jp / 楽天市場 / Yahoo!ショッピングがデフォルトで登録されています。各サイトのAPI設定状態が確認でき、有効/無効の切り替えが可能です。

カスタムサイト登録

ブランド公式EC、Shopify系ストア、専門店ECなど、任意のサイトを登録できます。3段階の取得方法があります。

方法1: 自動解析(JSON-LD)

設定不要。多くのShopify/BASE/STORESサイトはJSON-LD構造化データを出力しているため、URLを入れるだけで商品名・価格・在庫が自動取得されます。

方法2: CSSセレクタ指定

自動解析で取得できない場合、CSSセレクタを手動で指定します。

  • - 価格セレクタ: 例: .product-price .amount
  • - 在庫セレクタ: 例: .stock-status
  • - 商品名セレクタ: 例: h1.product-title
  • - 画像セレクタ: 例: .product-image img
  • - 在庫判定テキスト: 「在庫あり」「在庫切れ」などのテキスト
  • - JS要否: SPAサイトの場合はONにする(Playwright使用)
方法3: OGP/汎用パターン(フォールバック)

OGP metaタグやページ内の価格パターンから自動で解析を試みます。

テスト実行

カスタムサイトの登録前に「テスト実行」ボタンで実際の商品URLに対してスクレイピングをテストできます。取得結果がプレビュー表示されるので、セレクタ設定の動作確認に使用してください。

データ取得

自動取得

設定した間隔(デフォルト6時間)で、監視中の全商品のデータが自動的に取得されます。取得間隔は「設定」ページから変更可能です。

手動取得

  • - 個別取得: 商品詳細ページの「今すぐ取得」ボタンで個別に取得
  • - 一括取得: ダッシュボードの「今すぐ全商品取得」ボタンで全商品を一括取得

レート制限について

各ECサイトのAPI/サーバーへの負荷を最小限にするため、リクエスト間隔は最低2秒、同時取得数は最大3件に制限されています。大量の商品を登録している場合、一括取得にはしばらく時間がかかります。

通知設定

通知条件

以下の条件に該当した場合にChatWorkへ通知が送信されます。

  • - 価格変動が閾値(デフォルト5%)を超えた場合
  • - 在庫切れ → 在庫復活
  • - 在庫あり → 在庫切れ

※ 初回データ取得時は通知されません(比較対象がないため)

通知時間帯

設定画面で通知の送信時間帯を指定できます(デフォルト: 9:00〜21:00)。時間外に検知した変動は、翌朝の通知開始時刻にまとめて送信されます。

通知メッセージ例

【価格値下がり通知】

商品: Echo Dot (第5世代)

サイト: Amazon.co.jp

旧価格: ¥4,200

新価格: ¥3,980 (-5.2%)

URL: https://www.amazon.co.jp/dp/...

アプリ設定

設定項目説明デフォルト値
ChatWork APIトークンChatWork管理画面で発行するAPIトークン未設定
通知先ルームID通知を送信するChatWorkルームのID未設定
データ取得間隔自動データ取得の実行間隔(時間単位)6時間
通知閾値価格変動がこの%を超えた場合に通知5%
通知開始時間通知を送信する開始時間9時
通知終了時間通知を送信する終了時間21時

API仕様

バックエンドのREST APIは Swagger UI で詳細なドキュメントを確認できます。

Swagger UI を開く (localhost:8000/docs)

主要エンドポイント

メソッドパス説明
GET/api/v1/products商品一覧取得
POST/api/v1/products商品登録
GET/api/v1/products/{id}/prices価格履歴取得
POST/api/v1/products/{id}/collect手動データ取得
POST/api/v1/collection/trigger全商品一括取得
GET/api/v1/dashboardダッシュボードデータ
GET/api/v1/platformsサイト一覧取得
POST/api/v1/platforms/test-scrapeスクレイピングテスト

トラブルシューティング

商品登録時にデータが取得できない

  • - URLが正しいか確認してください
  • - カスタムサイトの場合、CSSセレクタ設定が正しいかテスト実行で確認してください
  • - JavaScriptでレンダリングされるサイトの場合、「JSレンダリング要」をONにしてください

ChatWork通知が届かない

  • - 設定ページで「接続テスト」を実行し、成功するか確認してください
  • - APIトークンとルームIDが正しく設定されているか確認してください
  • - 通知時間帯の設定を確認してください(時間外は送信されません)
  • - 通知が「有効」になっているか確認してください

価格が正しく取得されない

  • - ECサイトのページ構造が変更された可能性があります
  • - カスタムサイトの場合、CSSセレクタを再設定してください
  • - セール価格と通常価格が混在する場合があります

自動取得が動作していない

  • - バックエンドサーバーが稼働しているか確認してください
  • - ダッシュボードの「最終取得日時」を確認してください
  • - 商品の「監視」がONになっているか確認してください