薪の重さを量るには

薪の重さってあまり気にならなかったんですが、もし販売するなら、やはり乾燥具合を把握したり、出荷の際のある程度の計量が必要になるわけで、どうやって量ろうか、と思案していました。

そうした所、画期的に楽な方法を見つけたので記録しておきます。

P1040334

薪ストーブユーザーの中では、にわかに話題が沸騰しているらしい wood bag でお馴染みのいのり薪生産組合さんのブログに、薪の出荷の計量シーンが公開されていて、その中で、フォークリフトに後付のアナログ荷重計が取り付けてあり、カゴごと量ってる様子が公開されていました。

その写真をよくよく見ると、リフトメーカーもうちと同じで TCM!
これはうちの子ももっとお利口さんになるのではあるまいか!
(画像は、いのり薪生産組合さんのブロクから引用させて頂いております)

これまでは、ユニックにクレーンスケールを取り付けて量る、床置きのパレット用荷重計で量る、というような方法を思案していたんですが、一人で考えても埒が明かないのでネットを彷徨い、とても几帳面な方(なんせ薪の樹皮を剥ぐほどの徹底ぶり)の、精密な取引に使える検定付きの台はかりを導入している記事を見つけたのですが。。。

「ウッドバッグ1袋丸ごと購入して頂くとき等に大量の薪を計量しなければいけない」って、この秤にどうやってウッドバッグを載せるのか、すぐには全く理解できなかったのですが、どうやら袋からだして、すこづつ量る計画のようです。
ヤマト便なんかでの出荷には必要そうではありますが、少なくとも今回自分の求めるものではないようですし、お値段も結構お高い。。。

他の人はどうしているのか、悩みは深まるばかりだったのです。

さらに、自分は、薪はメッシュパレット、みかんのキャリーを T11 樹脂パレットに 3 段重ねたもの(カゴ18個)、そして wood bag で保管してあるので、クレーンスケールや大型の台はかりでは、あちらを立てればこちらが立たず状態。

ですが、リフトの荷重計なら、どれも手間なく量れます。

うーん、Gosh, great!

早速ググると、白光機器という会社の製品のようで、電話で問い合わせた所、一番安いモデルで定価 7 万円程度(ALS2)ということでした。
十分手が届きます。

念のため、eBay でチャイニーズジャンクの価格を調べてみるのですが、デジタルスケールタイプでやはり同じくらいの価格がするのでお話になりません。
信頼性・堅牢性を考えると、MADE IN JAPAN が一番でしょう。

早速 TCM に電話したのは言うまでもありません。

いのり薪生産組合さんは、個人での小規模な薪づくりに関して、非常に参考になりますので、みなさんもチェックしてみてください。

STORES.jp の倉庫サービスを使ってみて

出店したと少し前のエントリーで書いた STORES.jp ですが、BASE と同じく、CtoC のサービスとしてとても注目されていて、両者とも急成長しているのは皆さんご存知の通りだと思います。

スピード感があって、次々と新サービスが打ち出されてくるものの、まだまだ発展途上のサービスであり、使い心地としては、箱庭の中に収まっている間はシンプルで心地いいんですが、BtoC、あるいは、BtoB と規模が大きくなり、顧客のニーズが多様化するに連れ、非常に使いづらいか、あるいは、使いものにならなくなっていく、というのが率直な感です。基本的にビギナーが簡単に参入できることにフォーカスしすぎているため、極端にシンプルにしすぎているためでしょう。

STORES.jp を利用する最大のメリット(BASE は使ってないのですが、多分同じだと思います)は、やはり倉庫サービスと言えます。オンラインストアのトラブルの大部分は、品物の発送に起因するものだそうですが、倉庫サービスを利用すると、在庫の管理・発送という業務から開放され、本来注力すべき仕入れや販売に専念できるからです。

しかしながら、メリットであると同時に、まだ立ち上がったばかりで、問題点も多く抱えているように感じます。
その中でも、クリティカルな問題点について、整理をしてみたいと思います。

その問題点とは、ズバリ「預け入れの手順がシンプル過ぎて、その後が大変」ということです。

そもそも論として、STORES.jp には、Amazon でいうところの asin (Amazon Standard Item Number) のような仕組みがありませんし、各テナントストアは完全に独立しています。
なので、横断的に商品そのものを一意に管理するための仕組みそのものが存在しません。
じゃあどうなっているのかというと、あくまでも推測ですが、アイテムを登録した際に、24 文字の一意な id が発行されるようで、便宜上これを item number と呼ぶことにしますが、これでストアの側では受注などを管理をします。
しかし、item number を少なくとも利用者(ストアのオーナー)が意識し、利用することはできません。

次に、じゃあ倉庫どうやって在庫を管理しているのかというと、預け入れた際に、20 文字の id ができるようなのです。
これは便宜上 storage number と呼ぶことにしましょう。
ただ、そのままだと item number と storage number は全く無関係なので、意味がわからなくなりますよね?
どうやって判定するのか、というと、倉庫でアイテムの写真を取って、それで識別してね、というアナログな仕組みなんです。
実際の画面をお見せしましょう。
商品の低解像度の写真と、在庫数だけしか表示されません。
ちなみに、左上から、預け入れが古い順となっていて(ただし、バグがあり位置が時々入れ替わる)、それにより先入れ先出しを担保します。

Screen Shot 2014-08-22 at 1.51.30 PM

非常にシンプルで設計思想自体はとてもいいと思うのですが、でも、ちょっとこれはシンプルすぎる。

まず、在庫の管理ができません。
なぜか、といえば、storage number と item number とが紐付いていないので、item number が同じ商品がいくつ存在するのか、それを調べることができないからです。(無論、人間が数えれば済みますけど)
仮に紐付けたとしても、アイテムを削除して、登録しなおせば、storage number に紐付いた item number がなくなることもありえます。

一応、商品の名称も登録されているようなので、発送を申請した時に送られてくるメールなどに表示されるようになっているのですが、発送の申請時、並びに申請後のウェブサイトでは確認することができません。
しかも、この名称も、倉庫で登録作業をする人が手作業で入力しているようで、時々間違えて登録されているので、更に混乱に拍車がかかる状態が生じるわけです。

よって、この問題を解決するもっとも手っ取り早い方法というのは、倉庫に預け入れてある商品について、item number と storage number を紐付けてあげることです。

ただし、これには注意点があります。

ひとつは、バリエーションの有る商品、例えば、サイズ違い、色違い、これらの扱いをどうするのか、という問題点。別々のアイテムとして登録すれば問題はないのですが、画像はアイテムごとにしか登録できないので、画像で識別する方法だと問題が生じる予感がします。(現状、深くは調査していません)

それと、もうひとつは、同じ商品であるにもかかわらず、複数アイテム登録せざるを得ない現状がある、それに起因して生じている問題です。具体的にいえば、STORES.jp はシンプル過ぎて融通がきかないので、まとめ買いすると割引、というような機能がなく、セット商品を別のアイテムとして登録せざるを得ないわけです。セット商品といっても、ただ単にまとめ売りでしかないので、倉庫から出す数が違うだけで、アイテム的には同じものなんですが、item number が複数ある、そして在庫状況によっては、複数の strage number の商品をパッキングしないといけない、という状態が発生しうるわけです。

よって、下手に作りこまれない事自体が、今回は不幸中の幸いとなっているわけです。

以上のように、悪戦苦闘しているわけですが、STORES.jp の事務局から、数日前に、新倉庫サービスの案内を頂いたのですが、すぐに始まるサービスではないようだし、当面は、Chrome Extension を制作することにより、この件に関する負荷を軽減していこうと思います。

で、振りが長かったですが、ここからが本題です。

STORES.jp ですが、Web Inspector でみると、よくわからないタグがあり、明らかに何らかの Framework で動的にページが生成されていることに気づきます。
なんだろうかと思ったら、AngularJS という Google による Framework を採用しているようです。

ブラ三以来ですから、かれこれ 5 年くらいは JavaScript は触ってこなくて忘れているところですが、当時は、Firefox + GreaseMonkey で、Chrome はでたばっかりくらいでしたが、今は Chrome に絞って、AngularJS を使った Extension を書いたほうがいいように思います。

とはいえ、リハビリが必要ですから、まずは、スクリーンショットの画面で、storage number をキーにメモを取れるように(localStrage を使い永続させる)する Chrome Extension を作成し、これは、GraseMonkey と共用とし、その後、AngularJS を学習して、より作りこんでいく、という方向で行きたいと思います。
ちょっと 課題 もあるようなので。

STORES.jp のサービス自体のスピードが早いので、拙速にいかないと、完成した頃には、動かなくなっていそうですから。

というわけで、貼り。
やっつけ仕事ですから、動かなかったら、ごめんなさい。予め謝っておきます。

やはり動的に生成しているページのため、普通に GreaseMonkey Script を実行すると、その時点では在庫一覧が取得されていないため、textarea が表示されませんでした。ちょっと不細工ですが、setInterval を使って対処しました。

とりあえず、動作が不安定なので、AngularJS が動的に element を生成して DOM に追加されたタイミングで event listener で hook するようにしないと安定して動作しなさそうです。jQuery の live() で img の click を仕込んでみたんですが、ちょっと気持ち悪い動きになったのと、jQuery 自体の使い方をすっかり忘れているので、今日はもう寝ます。w

// ==UserScript==
// @name            STORES.jp misc utilities
// @namespace       org.shigematsu.STORES_utils
// @include         https://stores.jp/dashboard*
// @version         $Revision$
// ==/UserScript==

// $Id$

(function(){
    console.log('Hello, world!');

     // GM functions for Chrome
     // @copyright      2009, James Campos
     // @license        cc-by-3.0; http://creativecommons.org/licenses/by/3.0/
    if ((typeof GM_getValue == 'undefined') || (GM_getValue('a', 'b') == undefined)) {
        GM_addStyle = function(css) {
            var style = document.createElement('style');
            style.textContent = css;
            document.getElementsByTagName('head')[0].appendChild(style);
        };

        GM_deleteValue = function(name) {
            localStorage.removeItem(name);
        };

        GM_getValue = function(name, defaultValue) {
            var value = localStorage.getItem(name);
            if (!value)
                return defaultValue;
            var type = value[0];
            value = value.substring(1);
            switch (type) {
                case 'b':
                    return value == 'true';
                case 'n':
                    return Number(value);
                default:
                    return value;
            }
        };

        GM_log = function(message) {
            console.log(message);
        };

        GM_registerMenuCommand = function(name, funk) {
            //todo
        };

        GM_setValue = function(name, value) {
            value = (typeof value)[0] + value;
            localStorage.setItem(name, value);
        };
    }

    // STORAGE SERVICE
    console.log(document.URL);
    if ('https://stores.jp/dashboard#!/storages' == document.URL) {
        t = window.setInterval(function(){
            var items = document.querySelectorAll('ul#storage_wrapper>li');
            if (!items.length) return;
            for (var i = 0; i < items.length; ++i) {
                try {
                    function stateChanged(ev) {
                        GM_setValue(ev.target.name, ev.target.value);
                    };
                    var img  = items[i].querySelector('img');
                    var sn   = img.src.replace(/^.*\/([0-9a-f]{20})_100x100\.jpeg$/,'$1');
                    var name = 'sn:'+sn;
                    var note = GM_getValue(name, sn); // sn, or storage number
                    var ta   = document.createElement('textarea');
                    ta.name  = name;
                    ta.value = note;
                    ta.addEventListener('input', stateChanged, false);
                    ta.addEventListener('text',  stateChanged, false);
                    img.parentNode.appendChild(ta);
                }
                catch (e) { GM_log(e); }
            }
            window.clearTimeout(t);
        }, 200);
    }
})();

/* vim:set foldmethod=marker: */ 

チェンソーの輸入販売に関しての規制

輸入品のチェンソー販売に積極的に参入する必然性は高くはないと思うんですが、今扱っているアイテムは、どうしても季節によって需要に著しい差があるので、年間を通してある程度の売上を確保するためには、やはり、ある程度の単価で、ある程度の需要のある製品を取り扱っていくしかないと考えています。

もともと、チェンソーも取り扱える契約で PL 保険も加入しているので、法的な問題を調査しています。

http://www.husqvarna.com/jp/support/genuine-husqvarna/

ここでも警告されている通り、無責任な業者や、コピー品を扱う業者というのが少なからず存在するようで、名指しすることは避けますが、自分も商品の説明などの盗用被害に遭ったことは、一度や二度ではありません。
さもありなん、ということになるんですが、他山の石としなければならないですね。

チェンソーに関していえば、労働安全衛生法で規制があるようです。

http://www.jetro.go.jp/world/japan/qa/importproduct_12/04M-010653

http://www.mhlw.go.jp/new-info/kobetu/roudou/gyousei/anzen/dl/090820-1a.pdf

これに対しては、40cc 以上のモデルを扱わない、という方針で進めたいと思います。

薪ストーブ関連の市場規模と経営の方針

雑貨屋を始めてみたものの、好きでやっているので、市場調査などをしたわけではありませんでした。

とはいえ、長く責任をもってやっていくには、継続して利益を出していかないといけない。
どこかの代理店の傘下になって、そこの都合で動くようなことはしたくないし、独立を保つためにも、はやり市場規模を知っておくことは大切かなと思ったので、ちょっと調べてみました。

知っている人は知っていると思うのですが、いま「木材利用ポイント事業」というものが行われています。
国内森林資源の消費を促すためのキャンペーンで、薪ストーブ(ペレットストーブも含む)を購入すると、ポイントが貰える、という事業があり、その申請数などが公開されています。
最新のデータは 8 月 10 日の時点ですが、7733 件の申請があったようです。

この中で、薪ストーブが何台か、ということまではわかりませんが、仮に半数が薪ストーブだったと仮定すると、3860 件程度はこの 1 年間に導入されている、ということになります。
無論、入れ替えの需要もあるでしょうし、正確なことはわかりません。

日本の人口は、概ね 1.2 億人で、この内 414.2 万人が四国に居住しています。
人口と普及の割合は等価ではないのは明白ですが、人口の比率と同じと仮定すると、上記台数の 2.8% が四国での販売となり、年 110 台程度の市場が存在することになりますね。

愛媛では、ムーミー、サンシン暖炉、アローフィールド、あたり。ペレットだと内藤鋼業。
四国の販売店としては、しげ設備、桑原電気、薪おじさん、メトスプランニング、あたりがあるようですが、全てを把握しているわけではないので、細かな違いはあるにせよ、推定 10 店舗程度ではないかと思います。
薪おじさんなんかは、支店もある大きな事業者さんのようですし、ムーミーさんは、工務店の奥さんがやられている感じ、サンシン暖炉さんは、元々は林業機械などを販売している会社で、新宮商行が暖炉を扱っていたので、扱うようになった印象を受けました。(あくまでも、お店をおじゃましての自分の勝手な想像・感想)

これだけの多くの事業者さんが 110 台程度の市場を奪い合ってるってことなんでしょうか?
仮に 1 台が 100 万円(煙突含む)だとしても、1 事業者が 10 台売ったのでは、たったの 1000 万しか売上がありませんね。
単価が大きくても、ストーブ本体の販売だけでは、とても事業が成り立ちそうにありません。

地域を限定して、実店舗(ショールーム)などを構えるのは、自殺行為であり、新参者の野良は生き残れないですね。実店舗があると、信用が全く違ってくるので、ダブテイルログのショールームをつくろうと本気で思ってたんですが、まったく無理がありました。

当面は、やはり消耗品を中心に雑貨の通販で実績を積み重ねて、知名度を上げていこうと思います。

Hearth & Home

雑貨屋をはじめました。屋号は「Hearth & Home」といいます。

ここに書くのははじめてかもしれませんが、かれこれ 10 年前に、父の病気のため、実家のある愛媛に戻って、ブログのタイトルのように「晴耕雨読」で暮らしております。
ログハウス、要するに丸太小屋を建てての田舎暮らしです。

丸太小屋はいわゆるセルフビルドで、お金もないし、自分で建てちゃえ!、ってことで、建てました。その過程で、ログビルディングに必要な道具、薪ストーブなどを個人輸入しました。超円高もあって、内外格差にはほんとうに驚きました。

そういう紆余曲折の経験を元に、「ログハウスと薪ストーブの輸入雑貨」を扱う「Hearth & Home」というお店をはじめました。

まだ、できたばかりなので、品揃えもいまいちですが、よろしければお立ち寄り下さい。

hh

こちらのブロクでは、雑貨屋の日常についても、報告していければと思います。