今日は楽天の商品管理をCSVで行なうための調査をしています。CSVファイルで一気に操作が出来るので、プログラミングできる人ならシステムと連携してCSVファイルを書き出せば、それをFTPで楽天のサーバーにアップロードするだけで楽できますしかなり作業効率アップです。しかし、プログラムを組もうにも楽天側のシステムの仕組みが分かっていないとどうしようもないので、その調査って訳です。

分かってしまえばそれまでなのですが、テストして結果を見てみないと分からないことが多々あります。マニュアル読めって話ですが、楽天のマニュアルは本当に分かりづらい(でもビッダーズよりはマシかな?)。なので手っ取り早く試してみる方が早かったりします。

CSVファイルのアップロードは、GOLDスペースじゃなくRMSの方になるみたいです。/ritem/batchにCSVファイルを放り込むとバッチ処理が走ります。数分待たされて結果がメールで送られてきます。結果の詳細は/ritem/logsにCSVファイルとして生成されます。

ここで多々遭遇したのは、「一行目の項目数が一致しません」と言うエラー。楽天のCSVファイルは全て文字列として扱われるらしく、"値"というダブルクォートで囲んでおり、区切りはカンマ(,)です。ところがExcelで作業すると、ダブルクォートは勝手に削除されてしまうし、空白列は省略されてしまいます。特に後者が原因で行の項目が足りないって事が発生します。

もっと簡易な、単純にカンマで区切っているだけのCSVデータとして、ありのままの編集ができるツールは無いもんかなと調べてみたらありました。

Cassava Editor

オプション設定に「全ての値を""で囲む」という機能が備わっており、これで少なくとも行の項目数が合わないって事は回避できるようになりました。ありがたいことです。しかも拡張子毎にルールを設定できるので応用すれば色々な拡張子で挙動をコントロールできます。

これでかなり作業がやりやすくなりました。まだまだ楽天の仕様がつかみきれず、CSVをアップロード->結果エラーの繰り返しですが、少なくともしょうも無いエラーで弾かれることはなくなりました。

Excelって便利なんだけど不便。最近そんなことを思います。テキストエディタで正規表現を扱える様になったので、多少の修正は苦になりませんが、項目そのものが削られるってのは許しがたいものです。

"項目選択肢用コントロールカラム","商品管理番号(商品URL)","選択肢タイプ","Select/Checkbox用項目名","Select/Checkbox用選択肢","項目選択肢別在庫用横軸選択肢","項目選択肢別在庫用横軸選択肢子番号","項目選択肢別在庫用縦軸選択肢","項目選択肢別在庫用縦軸選択肢子番号","項目選択肢別在庫用取り寄せ可能表示","項目選択肢別在庫用在庫数","在庫戻しフラグ","在庫切れ時の注文受付","在庫あり時納期管理番号","在庫切れ時納期管理番号"
"u","test-9999","i","","","Sサイズ","1","レッド","1","0","100","0","0","",""
"u","test-9999","i","","","Sサイズ","1","ブラック","2","0","100","0","0","",""
"u","test-9999","i","","","Sサイズ","1","ブルー","3","0","100","0","0","",""
"u","test-9999","i","","","Mサイズ","2","レッド","1","0","100","0","0","",""
"u","test-9999","i","","","Mサイズ","2","ブラック","2","0","100","0","0","",""
"u","test-9999","i","","","Mサイズ","2","ブルー","3","0","100","0","0","",""
"u","test-9999","i","","","Lサイズ","3","レッド","1","0","100","0","0","",""
"u","test-9999","i","","","Lサイズ","3","ブラック","2","0","100","0","0","",""
"u","test-9999","i","","","Lサイズ","3","ブルー","3","0","100","0","0","",""

在庫を管理する為に使う実際のCSVデータ(select.csv)はこんな感じです。こんなのテキストエディタではやってられないですからね。便利なツールをありがとうございますって感謝の気持ちです。