EC-CUBEで在庫管理ができますか?

「EC-CUBEで在庫管理ができるようにしたいのですが改造してください」というリクエストはすごく多いです。それは、在庫管理という機能を必要としているショップオーナーの方が多いということ、そしてノーマルのEC-CUBEではきっちり管理することが難しいと皆様がお感じになっているのだと思います。
実は、EC-CUBEには本当の「在庫」を管理する機能はありません。なので、EC-CUBEにちょっと手を加えれば在庫管理ができるというわけではないのです。
そんなことを言うと、『EC-CUBEには「在庫数」という項目があるじゃないか』という声が聞こえそうですね。そうなんです。よく誤解されるのですが、この「在庫数」は本当の在庫数ではないんです。むしろ「販売許可数」とでも言ったほうが機能的には適切だと思うのです。
本当の在庫数ではないとはどういう意味かといいますと、本来の在庫は倉庫から出荷したときに数が減ります。当たり前ですね。ですが、EC-CUBEの「在庫数」は注文をもらった時点で減ってしまいますよね。つまり倉庫に10個の在庫があっても、3個分注文をもらえば、EC-CUBEの「在庫数」は7個と表示されるわけです。つまり在庫数-受注数=販売可能数といった意味合いになると思います。もちろん、お客様に対しては、購入可能な数=在庫数と思っていただいても構わないでしょうし、むしろ直感的にわかりやすいので「在庫数」という表現がよいですね。
では、在庫管理をしたい場合はどうすればよいのでしょうか? それは、EC-CUBEだけでモノを売るのか、リアル店舗や楽天等の他チャンネルでも販売するのかによります。
リアル店舗などでも販売されている場合は、販売管理や仕入・在庫管理をする市販のパッケージソフトを導入されるのが正攻法だと思います。そのようなパッケージ群の中で、EC-CUBEは受注を入力する専用画面だと解釈して、受注情報をCSVでダウンロードして販売管理ソフトに流し込むという方向性で解決されているショップオーナー様が多いようです。販売管理と在庫管理は連動していて、売上時に在庫を落とす仕組みができあがっているケースが多いです。
蛇足ですが、EC-CUBEのもともとの仕様で、受注を取り消してもその分の「在庫数」がもとに戻らないという問題があり、ときどき話題にのぼるようです。これはバグではなく仕様だと思っています。確かに、発送前にお客様からのキャンセルで受注を取り消した場合は商品数が戻ってくれるとよいのです。しかし、商品が出荷前に壊れたとか、不良品で返品を受けたとか、そういった事情で受注をキャンセルにするケースもあると思います。その場合は商品数は戻ってはいけないですよね。そもそも受注がキャンセルになるのは、イレギュラーなので、そのときは常に人間が「在庫数」を戻すかどうか判断するというフローにしておいてもよいのではないかと思います。
いずれにしても、EC-CUBEの「在庫数」は販売可能数なのですから、その特性を生かして使用したほうがよいと思います。在庫は少なくても、短リードタイムでどんどん補充の利く商品であれば、「在庫数」を多めにしておくことも可能でしょうし、反対に商品の補充が利かず、リアル店舗でも販売している場合は、実在庫よりは一定割合少なく設定するルールを設けたりするなど、工夫しながら使う必要がありそうです。そのあたりは仕組みとして実装することができると思います。
ちなみにEC-CUBEのオフィシャルサイトでも紹介されていますが、EC-CUBEや楽天等の多チャンネルで販売されている方のために、在庫数(販売許可数)を同期をとってくれるサービスがあります。zaiko robotです。面白いサービスですね。ただし、このサービスも標準の更新時間は30分。最短5分です。ですので、その5分~30分の更新時間の間にEC-CUBEと楽天の両方で売れてしまうと、売り越しになってしまう可能性があります。ですので、本当の意味での在庫数をEC-CUBEや楽天など複数のサイトの在庫数として登録していると、在庫切れなのに注文を受け付けてしまう可能性を完全に予防することはできません。そこは現実的な工夫が必要なのではないかと思います。