楽天市場の在庫アップロードは、管理画面からもできるし、FTPからでもできる。
商品点数が少ないのであれば、管理画面からアップロードするほうが直感的でわかりやすいので、そちらを採用する人も多いかもしれないが、
商品点数が数百、数万、数十万と抱えているEC店舗では、FTPアップロード一択だと思う。
そこで今回は、楽天市場の在庫ファイルをFTPにアップロードするという作業を、WinActor を使って再現したいと思う。
※以下長い記事になるので、ザックリ作業の全体図を見たいという方は、黄色の枠を中心に読み進めることをおすすめ。
①ファイルの形式は「item.csv」のみ
まず一番最初の基本中の基本すぎて申し訳ないが、
楽天市場で在庫ファイルをFTPアップロードする場合、その形式は「item.csv」でなければならない。
他のファイル名だとアップロードエラーが出るので注意が必要。
また拡張子も例えば「.xlsx」などにすると、これまたエラーが出るのでちゃんとCSV形式になっていることを確認する必要がある。
ちなみに既存のエクセルファイルをCSV形式で保存する方法はこちら↓
②1回にアップロードできる商品点数は5万点
また、これも基本中の基本といえるのだが、楽天市場のFTPアップロードの上限点数は5万点。
これを上回る場合には、ファイルを分割して複数回に分けてアップロードする必要がある。
分割アップロードについては、あとあと詳しく説明していく。
ちなみにファイル分割については、私は無料で使えるCSV分割ツールを使用している。
私も会社の仕事の中で、10万点20万点に及ぶ商品点数の在庫ファイルのアップロードを任せられることがあるので、逐一このCSV分割ツールで細分化してアップロードしている。
mall_001.csv~mall_010.csv ←このファイルたちをアップロードする前に item.csv にリネームしてアップロードさせる。
つまり、10ファイル分を item.csv にリネーム・上書き保存してアップロードする必要があるので、シナリオ自体も下記掲載図のようにやや長ったらしいものになる。
もっと簡略化したいのが本音だが、item.csv という形式でしか楽天市場の在庫に反映されない以上、このような形をとらざるを得ない…。
③FTPを設定
FTPソフトは基本的に自分が使いやすいとか慣れているものを使えば良いと思う。
ちなみに私はWinSCPを使っているので、ここからもWinSCPの画面に基づいて説明していく。
すでに楽天市場のFTPの設定が完了していれば、起動後はこのような画面が表示されているはず。
この画面を画像マッチングで読み取り、左上の「楽天一括編集」もしくは右下の「ログイン」をダブルクリックさせ、ホスト内へと入っていく。
画像マッチングのプロパティをこのように設定していく。
ポイントは「左ボタンをダブルクリック」の箇所で、どうしてかというとシングルクリックだけだと選択のみになってしまい、ホスト内にログインすることができない。
④いざアップロード
ホスト内にログインできたら、あとはアップロードするだけ。
④-1 F5キーでアップロード
左のローカルフォルダに保存されてある「item.csv」を、右側のアップロード先フォルダにアップロードしていく作業。
■画像マッチングで item.csv を選択
・「item.csv」を右クリすると、アップロードの選択肢が出てくるのでそれをエミュレーションで選択するのもいいし、
・画像マッチングで左クリックさせて、単純にF5キーを押させるエミュレーションを作ればアップロードできるのでそれでも構わない。
どちらか使いやすいほうを。
④-2 1ファイルのアップロードに数分~30分かかる
以上がアップロードまでの基本的な流れであるのだが、分割してファイルをアップロードする場合には1つ大きな問題がある。
それが1ファイルのアップロード完了までの時間が、数分~30分に渡って行われることだ。
5万点以下なら1ファイルのアップロードのみで終わるため、WinActorのシナリオもここで終了させていいのだが、何十万点という商品数がある場合には、複数回のファイルアップロードが必須だ。
④-3 方法1「指定時間待機」でひたすら待つ
まず考えられるシナリオは指定時間待機。
30分ほど待てば、確実に次のファイルをアップロードできるので、この指定時間待機が最もシンプルで使いやすい方法だ。
ただデメリットもある。
商品点数が多ければ多いほど、莫大な時間がかかってしまう点だ。
例えば50万点の商品在庫データをアップロードしようものなら、
10ファイル(1ファイル5万点)×30分=300分(5時間)
これだけの時間がかかってしまう。
つまり時間的効率が良くない。
④-4 方法2「画像マッチング」でアップロード状態確認
そこでおすすめしたいのがこちらの方法。
先ほどのFTP画面でいうと、右側のアップロードフォルダの画面情報をもとにシナリオを作成していくという方法だ。
まだアップロードして間もないので、右側のアップロードフォルダには「item.csv」が残っている状態。
item.csv が残っている間は、1回FTPを閉じて5分おきに確認しにくる
こういったシナリオを作る。
シナリオで表現すると、このような形になる。
こうすることで、指定時間待機でおもむろに30分待つという行為がなくなり、
5分おきに確認するので、最小時間に近い形で次のファイルのアップロードに移ることができるというわけだ。
そして次に、
もしアップロードが完了していたら、次の item.csv をアップロードする
というシナリオを作る。
右側のアップロードフォルダ側に item.csv がない場合(=アップロード完了済み)に例外処理に移行させる。
左は先述の5分おきに確認しにくるシナリオで、もしアップロードが完了(FTPのアップロードフォルダ側に item.csv がない場合)には、右の例外処理に移ることになる。
何も新しいことはなく、これも最初にF5を使ってFTPにファイルをアップロードするときと同じ手順なので、シナリオを見るだけである程度イメージできると思う。
少し説明が長くなってしまったが、要するに
5分間おきにFTPを開いてアップロード状態を確認させ、アップロードが完了していれば次の item.csv をアップロード、もし完了していなければFTPを閉じてまた5分後に確認する
という流れ。
まとめ
以上、楽天市場の在庫データをどうやってFTPアップロードすれば良いのかについて、ファイル分割ツールの存在や、楽天市場独自のルールを前提にしながら解説してきた。
一見長ったらしい記事に見えがちだが、黄色い枠や画面キャプチャを中心に飛ばし読みすることで、どうやってファイルアップロードしていきたいのか、想定しているシナリオはどのようなものかがぼんやりとイメージできると思う。
参考になれば幸いだ。