CS-CART改

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に直接必要な配列を追加した。

何かもっとスマートな方法がありそうだけど。

viva