ECサイトオープンに向けてCS-CARTv3を改造中
CS-CART事態は非常によく出来ているんですが、
倉庫の業務フローで、限りなくミスを軽減する仕組みまでは内包されていない。
そこで商品情報に倉庫ロケーション番号と、JANコードを付与し、
ピッキング用とした注文確認書にロケーション番号およびJANコードを印字することにした。
以下画像がその結果
こちらの用紙でピッキングをし、
注文確認書のJANをバーコードリーダーで読み取り、
ピッキングした商品のJANを読み取る。
漏れがあった場合はエラーとなり、取り忘れを教えるというもの。
倉庫ロケーション番号とJANコードはアドオンで管理し、
JANコードの印字は、デフォルトで入っているbarcodeアドオンを少し改造した。
というのも、デフォルトのbarcodeアドオンは日本でよく使われるJANに対応していない。
方法は簡単で、typeがjanの場合にPearのImage_Barcodeを実行する。
Image_Barcodeの情報が乏しく、ほとんどが以下のサンプルコードとなっているが、
Image_Barcode::draw('1234', 'int25', 'png');
最新のv1.1.3では5番目、6番目の引数が存在する。
Image_Barcode::draw('4532169370170', 'ean13', 'png', true, 50, 1);
5番目の引数は高さをピクセルで指定できる。
6番目の引数はバーコードの太さを指定できるようだ。
時間があれば全てのコード紹介もしたいのですが、
何かと忙しいのでご了承ください。
ただ、一番悩んだところを紹介しておきます。
注文書確認書では
fn_*****_get_product_data
のようなSQLをJOINできる便利なコードフックが見当たらず・・・
fn_*****_get_order_info
で、&$orderに直接必要な配列を追加した。
何かもっとスマートな方法がありそうだけど。