Client work · EC自動化

ヤフオク!自動再出品・取消ツール

出品期限切れの商品を自動で再出品し、条件に合う出品を一括取消する Windows アプリ。初回納品後も改造依頼が続き、10 回以上のバージョンアップを重ねてきた長期案件。

  • C#
  • .NET
  • Selenium
  • SQLite

Background

依頼の背景・課題

ヤフオク!で多数の商品を継続的に出品しているセラー様からのご依頼。出品には期限があり、落札されなかった商品は手動で再出品する必要があります。数百点規模になると、毎日の再出品と、在庫が無くなった商品の取消だけで数時間かかっていました。

ヤフオク!には出品用の公式ツールもありますが、「特定の条件に合うものだけ再出品したい」「在庫表と突き合わせて取消したい」といった細かい運用ルールには対応できず、結局手作業が残っていました。

Solution

作ったもの

セラーの管理画面をブラウザ自動操作で巡回し、期限切れの出品を検出して自動で再出品する Windows アプリを開発しました。再出品の条件(カテゴリ、価格帯、出品からの経過日数など)と、取消の条件(在庫ファイルとの突合、キーワード)は設定画面から変更できます。

出品状態は SQLite に記録し、前回の実行からの差分だけを処理するので、商品数が増えても実行時間が伸びにくい構造です。実行結果はログとして残り、失敗した商品は次回に再試行します。

初回納品後、「この条件も足したい」「画面が変わって動かなくなった」といった改造依頼に継続して対応し、10 回以上のバージョンアップを重ねています。

Points

工夫した点

  1. 01

    サイト側の変更に強い作り

    ブラウザ自動操作は、サイトの HTML が変わると壊れます。要素の特定方法を一箇所に集約し、変更があっても最小限の修正で追随できるようにしました。動かなくなったときは、どの画面のどの要素で失敗したかがログから分かります。

  2. 02

    止まっても分かる、止まっても壊れない

    通信エラーやログイン失敗を前提に、リトライと通知を組み込みました。途中で落ちても、処理済みの商品は SQLite に記録されているので、再実行すれば続きから処理されます。

  3. 03

    設定は画面から、プログラム不要

    再出品・取消の条件はすべて設定画面から変更できます。運用しているのはエンジニアではないので、コードを触らずにルールを変えられることを優先しました。