2013年7月7日日曜日

CS-Cart CSVエクスポートした際に一部unicodeで表示される

CS-Cart V3系でエクスポートすると下記のデータがunicodeで表示されます。

注文CSVの「Extra fields」
注文商品CSVの「Extra」
ユーザーCSVの「Extra fields」

これは一見すると「文字化け=バグ」と思われがちですが、CSV出力の仕様変更による物です。
(一部でunicodeで出力されるようになりました。)

ここもマルチバイト文字列で出力したい場合下記の対応が必要となります。(一例です)

#PHP6で採用される予定の関数「unicode_encode」を事前採用する方法を示します。

1
//unicodeエスケープ
if(!function_exists('unicode_encode')){
    function unicode_encode($str) {
    return preg_replace_callback("/\\\\u([0-9a-zA-Z]{4})/", "encode_callback", $str);
    }
    //unicodeエスケープ用
    function encode_callback($matches) {
    $char = mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UTF-16");
    return $char;
    }
}

上記関数を任意の箇所で定義。(my_changes 等)

2
フックポイントで動作する下記関数を定義。(my_changes 等)

//フックポイントで動作する関数
//fn_set_hook('exim_mod_char_code', $csv);
function fn_ap_rt_orders_csvs_exim_mod_char_code($csv){
    $csv = unicode_encode($csv);
    return $csv;
}

ini.phpファイルの設定もわすれず。

fn_register_hooks(
    'exim_mod_char_code'
);


以上。

※弊社のCSVカスタマイズでは必ずこの対応をしています。
ーーーーー
ホームページ制作の株式会社あんどぷらす mmochi

CS-Cart 注文単位でのメッセージ送受信機能

「コメントとレビュー」アドオン導入時、注文に関する「メッセージの送受信機能」が利用できるようになる。

参照 http://manual.cs-cart.jp/?page_id=431 (中段)

管理画面 注文内容の確認>アドオンタブ>コメントとレビュー >メッセージ項目を有効に。
(注文単位なので、注文ごとにメッセージ機能を有効にする必要がある。)

アドオンタブの右側にメッセージタブが現れるのでクリック。
以降、メッセージ送信と閲覧はこの画面で行う。

 管理側

ショップフロントでは、マイアカウント>注文 から個々の注文に入ってメッセージタブの中でやり取りする。

ショップフロント

履歴は時系列で管理画面、ショップフロントのマイページで確認可能。

また、メッセージへの返信機能はないため毎回新規メッセージを送信する形をとる。

メッセージ内容はメールでも送信される。

ーーーーー
ホームページ制作の株式会社あんどぷらす mmochi

放置し続けたBloggerを改めて掘り起こし

長いこと放置していたBloggerを再び動かそうかと。