Yahoo! shopping でデイシンの店をひらいているが,楽天から安価で出店できるオファーがあったので,ためしてみることにした. 在庫管理には専用のプログラムが必要なのだが,楽天の在庫データにアクセスするには SOAP の API をつかう必要があることがわかり,調査しているところだ. ネットでさがすと PHP と Python による例がみつかったので,それを参考にしてプログラムを開発しようとかんがえている.
Yahoo! の店では手で在庫管理するのが困難なしかけにしてしまっていて,Python のプログラムで CSV ファイルを操作して在庫のつじつまをあわせるようにしている. 同様のしかけを楽天の店にもいれる必要があるが,CSV ファイルをつかうには月に 1 万円はらう必要がある. しかし,商品 API 以外の API は無償でつかえるということなので,在庫 API をためしてみようとおもっている. この際,Yahoo! のほうも API でアクセスするようにするのも有力な選択肢だ.
まず Rakuten RMS API のドキュメントをみると,SOAP による web サービスをつかっていることがわかった. SOAP は複雑でありがたくないが,それをつかうしかない. そこで Python でつかえる SOAP のライブラリはないかとさがしてみると,なぜか最初にみつかったのは PHP によるライブラリだった: 「楽天 RMS APIのPHPサンプル集・使い方 ほぼ全パターン」. そのプログラムは GitHub にあり,そのなかの getInventoryExternal (在庫の参照) と updateVariationInventory (在庫の更新) とが使用するべき機能だ. しかし,PHP はつかったことがほとんどないし,すでに書いた Python のプログラムとつなげるのに適さない. したがって,このプログラムを参考にしつつ,Python で書きかえる必要がある.
Python で書いたものはないかと,さらにさがしてみると,つぎのプログラムがみつかった: rakuten-ws 0.4.4. これは単なる例ではなくて,Python にインストールすればすぐにつかえるようになっている. だから,これをそのままつかうか,あるいは在庫 API の部分だけとりだして,かきかえてつかうかすればよいだろう. なぜか日本ではなくフランスで開発されたもののようだ. Python (2 & 3) には pip をつかってインストールすることができる. ためしてみると,MacBook に pip3 で問題なくインストールできた. ただし,まだつかっていない.
さらにさがすと PHP とともに Ruby や JavaScript のプログラムもみつかった: Rakuten Web Service. これらも参考になるかもしれない. しかし,ここには Python のプログラムはない.
楽天の商品には「項目選択肢別在庫」というのがあり,ひとつの商品を複数の子商品で構成することができる. つまり,商品構成は単純なリストではない. しかし,在庫管理では単純なリストのかたちであつかうようになっている. それは Yahoo! shopping の「オプション」と同様だ. 単純なリストなので容易にあつかうことができそうだ. ただし,それに対応する SOAP の表現には不可解なネストがある. つまり,ns1:updateRequestExternalItem というタグと ns1:UpdateRequestExternalItem というタグがネストしているのだが,これらがなにを意図しているのかわからない.
関連項目: