Client work · EC自動化
ヤフオク!自動再出品・取消ツール
出品期限切れの商品を自動で再出品し、条件に合う出品を一括取消する Windows アプリ。初回納品後も改造依頼が続き、10 回以上のバージョンアップを重ねてきた長期案件。
- C#
- .NET
- Selenium
- SQLite
Background
依頼の背景・課題
ヤフオク!で多数の商品を継続的に出品しているセラー様からのご依頼。出品には期限があり、落札されなかった商品は手動で再出品する必要があります。数百点規模になると、毎日の再出品と、在庫が無くなった商品の取消だけで数時間かかっていました。
ヤフオク!には出品用の公式ツールもありますが、「特定の条件に合うものだけ再出品したい」「在庫表と突き合わせて取消したい」といった細かい運用ルールには対応できず、結局手作業が残っていました。
Solution
作ったもの
セラーの管理画面をブラウザ自動操作で巡回し、期限切れの出品を検出して自動で再出品する Windows アプリを開発しました。再出品の条件(カテゴリ、価格帯、出品からの経過日数など)と、取消の条件(在庫ファイルとの突合、キーワード)は設定画面から変更できます。
出品状態は SQLite に記録し、前回の実行からの差分だけを処理するので、商品数が増えても実行時間が伸びにくい構造です。実行結果はログとして残り、失敗した商品は次回に再試行します。
初回納品後、「この条件も足したい」「画面が変わって動かなくなった」といった改造依頼に継続して対応し、10 回以上のバージョンアップを重ねています。
Points
工夫した点
- 01
サイト側の変更に強い作り
ブラウザ自動操作は、サイトの HTML が変わると壊れます。要素の特定方法を一箇所に集約し、変更があっても最小限の修正で追随できるようにしました。動かなくなったときは、どの画面のどの要素で失敗したかがログから分かります。
- 02
止まっても分かる、止まっても壊れない
通信エラーやログイン失敗を前提に、リトライと通知を組み込みました。途中で落ちても、処理済みの商品は SQLite に記録されているので、再実行すれば続きから処理されます。
- 03
設定は画面から、プログラム不要
再出品・取消の条件はすべて設定画面から変更できます。運用しているのはエンジニアではないので、コードを触らずにルールを変えられることを優先しました。