操作マニュアル
概要
Price Watcher は、複数のECサイト(Amazon.co.jp / 楽天市場 / Yahoo!ショッピング)および任意のECサイト・ブランド公式ショップの商品価格・在庫を自動監視し、変動時にChatWorkへ通知するWebアプリケーションです。
主な機能
- - 商品URLを登録するだけで自動的に価格・在庫情報を取得
- - 定期的な自動データ取得(デフォルト6時間間隔)
- - 価格変動・在庫変動をChatWorkに自動通知
- - 価格推移チャートで変動を可視化
- - 任意のECサイトをCSSセレクタ指定で監視対象に追加可能
はじめに
Step 1: ChatWork連携を設定する
価格変動の通知を受け取るために、まずChatWorkの設定を行います。
- サイドバーの「設定」ページを開く
- ChatWork APIトークンを入力(ChatWork管理画面から取得)
- 通知先のルームIDを入力
- 「接続テスト」ボタンでテストメッセージが届くことを確認
Step 2: 商品を登録する
監視したい商品のURLを登録します。
- サイドバーの「商品登録」ページを開く
- ECサイトの商品ページURLを入力
- 必要に応じてタグや通知閾値を設定
- 「登録」ボタンを押すと、商品名・画像・価格が自動取得される
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になっているか確認してください