AmazonFBA の納品データ作りがものすごく大変になった件

つい最近のことなんですが、AmazonFBA の納品時のミスが多いためか、納品の際に輸送箱の三辺のサイズや重量等のデータ登録が義務付けられました。

とりあえず、輸送箱に連番のシールを貼って、サイズ等を測り、それをいちいち Numbers に入力して、その後、xlsx ファイルをダウンロードして、そこに転記していますが、かなり面倒くさいのです。

出力される FBA ラベルは、tcpdf を使って、連番、例えば、輸送箱が 50 箱ならば、1/50 — 50/50 という風に表示を追加して、貼り間違いや、箱のロストがわかるように工夫しています。

それでふと思ったのが、箱詰めの指示自体を同じようにラベルシールで出力して、そのシールに情報登録用 URL を出力しておき、iPhone でアクセス、ラベルに箱サイズ等を手書きして OCR 処理して入力すればミスが減るのではと思いました。

で、Google Cloud Vision API を使い、PHP で手書き文字の認識を試してみました。
使ってみた画像はこちら。

結果ですが。。。

6 0f: LCC3
W 50 636H21 4KG

という感じ。
流石に字が汚いので、微妙なところですが、数字だけならそこそこかもしれません。

ただまあ、いちいち写真を撮影したりする手間を掛けるのなら、普通に打ち込んだ方が早いかもしれません。

今のところ、どうするのがいいのか考えあぐねている状態なので、おいおい煮詰めていこうと思います。

積み込みはしたものの出発を延期

昨日、薪(のようなもの)の積み込みしはしたのですが、出発は延期にしました。
というのも、今回初めての CFS に搬入になるのですが、そこを管轄する検疫所・税関がどこかわからないためです。
FAX の調子が悪かったようで、ずっと A/N が届かないので、再度電話をして、メールで送ってもらったものを確認したのが 17 時を回っていたため、検疫所・税関に確認が取れなかったのです。

神戸のあたりは、いつもの六甲出張所、ポートアイランド出張所の他に、本関というところがあるようですが、ここは一度も行ったことがなく、記憶が確かなら、石造りのレトロな庁舎で、とても 40ft コンテナトレーラの駐車場があるようなところではないのです。

検疫所も、六甲であれば、神戸検疫所食品監視第二課なので、六甲の税関出張所の 5F に入っている(去年の浸水被害で引っ越した)ので、楽なのですが、そうでないなら、和田岬の方になります。
ここは行ったことがないのですが、庁舎内への駐車は難しそうです。

もし、六甲でなくなるのであれば、すでにドラフトを提出してるものからやり直しになるし、駐車場の問題等もあり、1 日で終われないと 16 日の神社祭日に戻れないリスクが高いので、延期にしました。

でも、17 日に出発するとしても、この日は、午前中に配達と出張祭典(お祓い)があるので、早くても午後からなので、18 日早朝までに和歌山着、荷下ろしをして神戸に向かって、だいたい 4 時間は見ておかないといけないので、早くても午後スタート、そうなると引き取りのタイムリミットの 16 時に間に合う可能性はかなり低く、この日は、書類関連を提出して審査をしてもらうところで終わりそうです。
翌日の 19 日に通関、検査がなくてすんなり引き取れたとして、休憩も含めると 10 時間以上はかかるので、20 日にギリギリ間に合うか、間に合わないか、といったところです。
20 日には、分会の大麻頒布始祭があって、祭員を頼まれているのですが、どうしたものか。。。
後で電話して相談してみようと思います。

それと、引き上げてきた雑貨類も、荷下ろしを終え、パレットからバラして、あらかた検品をしましたが。。。
NO STACK と書いてあるんですが、その上に他の貨物が積み上げられていて、下の方の箱がずれてしまっています。
困ったものです。
これでは品質が保てないので、倉庫を変更することにしたわけです。

なんだかんだで、昨日、100kg ほど、特に急ぐ商品を納品しました。
今日、明日と延期にしたので、検品・梱包・納品(出荷)を進めていきたいと思います。

後、備忘録。

fpdf で申告等の書類を出力しているわけですが、既存の書類の中に文字を流し込みたい、というニーズがあるわけですが、今までは IPA の等幅明朝体を使って、いちいち行に分割して出力していました。
でも、プロポーショナルフォントを使うこともあるだろうし、そういう場合に、幅を取得したり、あるいは指定した矩形の中に描画したいこともあるわけで、ちょっとやり方を調べてみました。

まず、文字列の幅の取得方法については、そのままズバリですが、

矩形の中に描画するには、MultiCell という機能を使うようです。

上記のようなコードで、出力は以下のようになるそうです。

PDF ファイルのページ数を知る方法

PDF ファイルのページ数を知る方法ですが、どうやるんだろうな、と思っていて、ざっくり調べたんですが、ずっと分からずにいたんですが、ひょんなことから、わかりました。

そのままズバリ。
今まで捨てていた、setSourceFile の戻り値がページ数でした。
これで、複数ページあるインボイスにページ番号を振ることができるようになります。
実に素晴らしい。

それと、ふと思ったこととして、クリックポストの宛名のラベル印刷ですが、Safari から直接やると、中央で crop されて、左上ではないので、一旦保存して、Preview.app を使って切り抜いているんです。
まあ、紙をいちいちハサミで切るような間抜けなことをするよりはマシなんですが、とても美しくない。

それで、

とやってみたんですが、そのままだと、Encrypted とか抜かしてエラーになるんですよ。
この時の PDF は出力されたものをそのまま command + S で保存したもの。

一旦 Preview.app で開いて、Export to PDF… をすると、暗号化が外れて問題なし。
あるいは、command + P で印刷出力したものも問題なし。

ただ、手間は大して変わらないので、なら初めから Preview.app で crop したのでいい気がしてきました。

そんなこんなで、さらに正確に輸出入の申告用の書類を作成することができそうです。

で、今日は、昨日頑張って通関してきた荷物をデバンして、代わりに乾燥させていた薪を製品に加工するため、太陽電池小屋から運び出して、コンテナに積み込みました。

まあ、それにしても高く積んでくれたものです。
パレットが 2 枚重ねてあって、意味がわからなかったんですが、重すぎてパレットが折れて、2 枚重ねにしてあったようです。
1 枚抜こうとしたら、もっと折れて、全部バラして積み直す羽目になりました。
何度も、何度も、高く積むなと言っているんですが。。。

途中、グリ石を道端にストックしてあったものが邪魔になるので片付けたり、そのついでに去年の豪雨で市道が崩れて流れ込んでいるものが放置されているのも片付けたりしてたもんだから、積み終えたら 16 時を回ってしまいました。
それから、回送したので、第 2 ヤードに着いたら真っ暗で、誰もいなくて、煙突の打ち合わせとか、いろいろしようと思ったんですが、間に合いませんでした。

明日は、加工前の薪は下ろして、和歌山に納品する薪を積み込み、その帰りに神戸に寄って、遅れた荷物を通関・引き取りを済ませたいところです。

ただ、昨日 A/N を発行すると電話があったものの、その後なしのつぶてなので、とっても危険な匂いがプンプンしています。
流石に 2 度空ぶるのはキツすぎるので、18, 19 日で出向いた方がいいのかな、と思ったりもしないでもないですが、20 日は午後から分会の大麻頒布始祭があって、祭員をやらないといけないということなので、遅れるわけにもいかず、それ以上後ろにずらすと、予約の方々にものすごく迷惑がかかるので、タイミングが難しいところです。

やることはたまる一方なのですが、まあ、頑張れない性分なので、ゆっくりとマイペースで、それなりに片付けられるように頑張ります。

Brave(ブレイブ)横型往復式薪割り機を安く送るには

今日は午前中は、食品等輸入届出書を半自動で作成するスクリプトを書きました。

とにかくガリガリ、ゴリゴリ書いて、サクッと出来上がりましたので、今後は B/L 番号や、本船、あと、何がいくつ入ってくるかを指定するだけで、食品等輸入届出書が PDF で出来上がるという寸法です。
あとは添付資料等も自動作成すれば完璧です。

ただ、現状、輸入申告については、人力でゴリゴリ Numbers で packing list を作ったりという前時代的なことをしているので、これも invoice から自動的に税番ごとに分類するとかの下準備をスクリプトで自動化したいように思う所です。
こちらが自動されれば、当然、食品等輸入届出書を用意しなけばいけない品物ピックアップも合わせて自動化されるわけですから。

まあ、いつまで紙ベースでやるんだよ、と言われそうですけど、NACCS はタダではないし、コスト的に見合わないので、今後も導入することはないと思います。
そういう意味では、当然に、食品等輸入届出書も FAINS を使うことはない、ということになりますかね。

とまあ、そんな具合で、昼からは雑貨の出荷作業をやりました。

出荷が終わって、そろそろ薪の準備を始める人も増えてくるだろうということで、薪割り機が売れ始めるんではないかと思うわけですが、現状、大型の重量物は個人宅には配送してもらえない制約があり、とても不便なので、なんとかならないかと思っているわけです。

ヤマト運輸は、ヤマト便の場合 30kg まで、らくらく家財宅急便は 100kg まで(厳密には、150kg までだけど、料金が非現実的)、佐川は 50kg までドアツードアで運んでもらえます。

それで大きな部品の重量を測ってみました。

まず、エンジンなどと、作動油タンクなどを含むフレーム部分が 34kg です。
この時点で 30kg を超えるのですが、エンジンはボルト 2 本で留まっているだけなので、分解すれば簡単に 30kg 以下になります。
エンジンには油圧ポンプが組み付けてあるのですが、ここはバラす必要はないでしょう。

問題は、メインのフレームで、重量はほぼ 100kg, 96.9kg ありました。

この部分は、27 番の Beam Assembly, これの内側にスライドするウエッジを含む 28 番の Beam Slide があり、Beam Slide の内部に Beam Slide と Beam Assembly を連結する形で 34 番の 4”x24” Hydraulic Cylinder が組み付けられ、底面を 36 番の Bottom Plate で蓋をされている状態です。

まだバラしていないので各部分の重量は定かではないのですが、100kg を超えないよう梱包できるのであれば、バラす = 再度組み立てる必要があるわけで、そのまま運べるらくらく家財宅急便で運んでもらえないものかと思います。

かなり大雑把な外寸ですが、W 104cm, D 突起部を含まず 15cm でログテーブル取り付け部などの突起が左右あるのですが、それが +3cm 弱、H が 39cm といったところですので、3 辺の和は 165cm くらいということになります。
サイズ的には、160cm にはギリギリ収まらないのではないか、と思います。
らくらく家財宅急便は重量が 100kg を超えない範囲では、重さは料金には関係ありませんので、重たい荷物の場合、ヤマト便よりも割安になることがあります。

これ以上は、バラして重さを計ってみるしかないかなというところです。

見積もりが大変なのでなんとかしたい件

寒くなってきて、薪ストーブの見積もりがちらほら。

そういえば、自動見積り計算機を作ってみよう、なんてほざいたはいいけど、すっかり忘れていたことを今しがた思い出しましたが、早速壁にぶち当たりました。

為替レートってどうやって取得しようかしら、ということです。

ちょっと検索したら、Google の JSON API がヒットしたんですが、404 だったんです。

代わりに見つけたのがこれ。

yql を使う方法が回答されていました。

必要なのは、CADJPY なので、以下のように書き換えました。

答えは、XML で戻してくれて、

ってな具合なわけです。

というわけで、早速実装しましょう。

都度都度 yql に問い合わせが発生するので、結果をキャッシュするようにするなどは必要でしょうし、エラー処理も一切省いてますが、為替レートに基づいた見積もりを作れるようになるわけで、多少は正確になりそうです。

ていうか、xpath 式とか、久しぶりすぎてすっかり忘れてましたが、最近の若い人だったら、生まれてませんとか言われそうですね。

まあ、今日は眠いんで、ここまで。

GreaseMonkey で JSON の扱いに関する問題

GreaseMonkey (Firefox) の場合、[cci_JavaScript]object.toSource()[/cci] でオブジェクトをシリアライズでき、[cci_JavaScript]GM_setValue()[/cci], [cci_JavaScript]GM_getValue()[/cci] を使って永続しています。
これはこれで問題がなかったんですが、[cci_JavaScript]object.toSource()[/cci] をシリアライズではなく、JSON 形式と誤認して PHP と組み合わせた結果、色々と問題を起こしました。

楽しようと思って使った JSON でかなりハマったので、メモしておきます。
続きを読む

4-1 CakePHP 事始め

今、住所録ソフトとして、筆まめを使っています。とても良くできたソフトだと思うのですが、どうしても足りない足りない機能や、かゆいところに手が届かず不便な思いをしている部分があり、リハビリもかねて、CakePHP に挑戦して見ようと思います。

早速、紀伊国屋の跡地にできた、ジュンク堂にはじめて足を運び、CakePHP 1.2 ガイドブックを買ってきました。他にもCakePHP 関連が何冊かあり、また、他のフレームワークの書籍もあったんですが、目移りしてキリがないので、一番無難そうな当該書籍にしました。

というわけで、当該書籍のPART 4 からスタート、その備忘録です。

続きを読む