Zen Cart注文修正モジュール[edit_orders-JP]

Zen Cart用注文修正モジュール[edit_orders-JP]を若干機能拡張しました。
これまでHTMLメールの送信に対応していませんでしたが、送信できるようにしました。
最新のパッケージ及び差分はえぇ商いどっと混むからダウンロードしてください。
edit_orders-JPダウンロード

Zen Cart edit_orders-JP消費税計算バグ修正

消費税の扱いを正しくしたつもりでしたが不十分だった為に該当部分を新たに書き直しました。
消費税の計算っていつ考えてもメンドクサイ。
消費税込の商品価格を計算するときにこんなふうにしてる。
while(カート内の商品種類の数){
 for(商品個数){
 round(商品価格×1.05)
 }
}
これで
while(カート内の商品種類の数){
 round(商品価格×個数×1.05)
}
と計算することで生まれていたデフォルトの「受注データ税込小計」との誤差が解消。
edit_orders-JPでは修正時の商品追加でも上記の処理に変更。
別件だが、受注情報修正時に商品追加をする際問題が発生するケースがあったのを修正。
内容は、「オプション付き商品を追加した後にオプションなし商品を追加すると存在しないオプション情報がカートに追加される」というバグの修正。

Zen Cart 注文修正モジュール[edit_orders-JP] 仕様変更

仕様変更しました。
修正画面の支払い方法プルダウンって、ソースを見ると分かるとおり決め打ちで書いてあります。
当初うまい方法が思いつかなくてベタに書きましたwww
ただ、独自決済モジュールを入れたときにソースを書き換えるのは億劫だという声が想像通りにありまして。
というわけでちょっと考えてみました。
説明がメンドイので修正後のソースだけw

function zen_get_paymod_name($modules) {
$MODULE_PAYMENT_INSTALLED = MODULE_PAYMENT_INSTALLED;
$paymod = split(‘;’,ereg_replace(“(.php)”,””,$MODULE_PAYMENT_INSTALLED));
$modules_array = ”;
for($i =0, $n=sizeof($paymod); $i<$n; $i++){ require_once(DIR_FS_CATALOG_MODULES . 'payment/' . $paymod[$i] . '.php'); require_once(DIR_FS_CATALOG_LANGUAGES . $_SESSION['language'] . '/modules/payment/' . $paymod[$i] . '.php'); $module[$i] = new $paymod[$i]; $modules_array = array($paymod[$i]=>$module[$i]->title);
//下記2点は支払いモジュールじゃないけどそれぞれで総支払額0まで値引した時実質の支払い方法となるからマージする
if(MODULE_ORDER_TOTAL_GV_STATUS || MODULE_ORDER_TOTAL_COUPON_STATUS){
$modules_array2 = array( ‘GV/DC’ => EO_PAYMOD_GIFT_COUPON );
$modules_array = array_merge($modules_array,$modules_array2);
}
//オフィスあんどぷらす製歴代ポイントモジュール対応
if(MODULE_ORDER_TOTAL_POINTS_USE_STATUS){
$modules_array3 = array( ‘POINTS’ => EO_PAYMOD_POINTS );
$modules_array = array_merge($modules_array,$modules_array3);
}
while(list ($key, $val) = each($modules_array)){
if($modules == $key){
$paymod_name = $val;
}
}
}
return $paymod_name;
}

admin/includes/functions/extra_functions/edit_orders.php
162行目付近からの「zen_get_paymod_name」関数を上記のように書き換えます。
同時に

$MODULE_PAYMENT_INSTALLED = MODULE_PAYMENT_INSTALLED;
if(MODULE_ORDER_TOTAL_GV_STATUS || MODULE_ORDER_TOTAL_COUPON_STATUS){$MODULE_PAYMENT_INSTALLED .= ‘;GV/DC’;}
if(MODULE_ORDER_TOTAL_POINTS_USE_STATUS){$MODULE_PAYMENT_INSTALLED .= ‘;POINTS’;}
$paymod = split(‘;’,ereg_replace(“(.php)”,””,$MODULE_PAYMENT_INSTALLED));
for($i=0, $n=sizeof($paymod); $i<$n; $i++){ $paymod_array[] = array('id' => $paymod[$i],
‘text’ => zen_get_paymod_name($paymod[$i]));
}

admin/edit_orders.php 901行目付近からの記述を上記のように変更します。
後は上記修正時に新たに追加した言語用 define を言語ファイルに記述。
EO_PAYMOD_GIFT_COUPON は「ギフト券/クーポン」
EO_PAYMOD_POINTS は 「ポイント」
としてあります。
決済モジュール以外(+当方開発のポイントモジュール以外)の時は適宜変更なり追加なりしてください。
モジュールごとに configurationテーブル に格納されているconfiguration_key と code、title 位が分かればできるでしょう。
もちろん修正済みのパッケージもダウンロード可能にしてあるので面倒な方はそちらを。
えぇ商いどっと混む edit_orders-JP ダウンロードページ
差分は用意していないので一式になります。

Zen Cart edit_orders-JPとあんどぷらす版ポイントモジュール

前回のエントリで投稿した内容の補足です。
前回エントリの edit_orders-JP は、オフィスあんどぷらす版のポイントモジュールを導入したサイトで利用することが可能なバージョンも作ってあります。
ただし下記の問題がありますので注意してください。
ポイント関連の数値は付与率の設定から計算して手動での変更が出来ないようにすることも出来ますが、ポイント修正をしたいという要望が多いため付与率からの計算スクリプトは外しました。
注文の個数の変更や、商品追加等、請求額に変更がある場合、ポイント関係を手動で再計算し入力する必要があります。
※ここはスクリプト側で対処したいのでポイントモジュールアドバンス版リリースに合わせて対応したいと思っています。
■ちょっと説明
オフィスあんどぷらす版のポイントモジュールを導入すると、受注詳細画面で合計額等が表示されるエリアにポイント関連の項目が追加されますが、edit_ordersオリジナルのコードでは単純に加算してしまいます。
そして、ポイントの単位も円となってしまいます。
そのため、オフィスあんどぷらす版のポイントモジュールをご利用いただいている方は「edit_orders-JP for andplus」
を導入してください。
これは上記に関してポイント用に改変してあります。
※これは本来有償で配布するつもりでいましたが、ポイントを取り巻く情勢が変化wしたので無償で配布します。配布方法は未定ですが、「edit_orders-JP」「edit_orders-JP for andplus」ともにパッケージまで終わってます。

Zen Cart edit_orders 日本語ローカライズ版

副産物としてこんなのができました。
edit_orders-JP
注文内容の修正モジュールです。
今回別案件中の副産物としてできました。
翻訳するだけのつもりが、一通り手を入れる羽目に。
肝心の動作ですが、下記のような動作が可能です。(デフォルト機能ですね)
・受注内容を修正
顧客情報、商品名、個数、税率、オプション名、価格等の文字列、数字の修正。
・受注に商品を追加
オプションも追加可能。
・受注内容の商品の削除。
・注文ステータスの変更。
・コメント追記。
・顧客へのメール連絡。(メール可否の選択可)
デフォルトでの使い勝手の悪いところをいくつか挙げます。
1.支払い方法が自由入力。
これはサイトで選択可能になっていない支払い方法でも記入できてしまうのでよろしくないかと。
2.v1.2.6がデフォルトモジュールの対応バージョンのため受注商品の一覧項目が異なる。
受注画面と、修正画面で異なるのはイマイチ。
3.デフォルトモジュールでは税の扱いがなんかおかしい。
4.コメントが正しく扱えてない気が。
※これは1.2で動作させた記憶がとんでいるので仕様どおりに動いているのかは不明ですがw
5.オプションの追加が正しく機能していない気が。
※これも同様に仕様どおりかは不明。
というわけで、今回の作業で上記を改善しました。
1.支払い方法はサイトで有効にしているものをプルダウン化。
2.一覧表示を受注画面のそれと統一。
3.税の扱いも正しく。
4.コメントも正しく表示。
5.オプションの追加も正しく。
運用上の問題にも触れておきます。
支払い方法も変更できるわけですが、「カード決済のものをそれ以外に変更」もしくは「カード決済以外のものからカード決済に変更」という「カード決済を含む変更」は注意してください。
ルミーズで即時オーソリが行われている場合、他の決済方法へ変更するとオーソリの取り消しが必要になります。
また、振込み等からカード決済に変更した場合、新たにオーソリが必要になります。
これらの処理はこのモジュールではサポートしていませんので、運営でカバーすることになります。
現実的にはこういった問題が発生する決済方法の変更は避けたほうが無難です。
と、こんな感じのモジュールができました。
できましたといっても私がイチから作ったわけではないのですがw
でも便利だと思いますよ。
いずれここから発展させて、管理者が顧客名で受注を起こす機能とか、複数の受注をまとめたり、逆にひとつの受注を複数に分割したりといった機能の追加も予定しています。
別モジュールでやるかもしれませんが、このモジュールに実装するのが機能セグメントから考えると妥当かもしれませんね。
このedit_orders-JPは本来やろうとしていたことの副産物として出来ただけなので無償配布を予定しています。
対応バージョンはzen-cart-v1.3.0.2-l10n-jp-3です。
zen-cart-v1.3.0.2-l10n-jp-2でも動くでしょう。
1.3.8.aは未検証です。
zox、zogも未検証です。
配布方法は検討中です。
マーケティング的には自サイトから配布したいのですが、ケチクサイこと言わずに公式サイトからダウンロードできるようにしろよという声もありそうですねw
まぁ考えておきます。