質問 > フロント機能 > 「NP後払い決済モジュール」で「商品名が設定されていません。」とエラーが出ます。 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
kishi909 |
投稿日時: 2012/3/30 3:12
対応状況: −−−
|
新米 登録日: 2011/7/23 居住地: 新潟県 投稿: 10 |
「NP後払い決済モジュール」で「商品名が設定されていません。」とエラーが出ます。 [EC-CUBE] 2.11.5
[レンタルサーバ] ロリポップ(チカッパ優待プラン) [OS] Windows7 Home Premium [PHP] PHP Version 5.3 [データベース] MySQL 5.1.34 NP後払い決済モジュールをインストールして注文テストをしてみたところ下記のようなエラーが出ました。 ------------------------------------------------------------ ※エラーメッセージが、お客様で対処できない内容の場合は、各店舗にお問い合わせ下さい。 商品名が設定されていません。 ------------------------------------------------------------ 調べてみたのですが、 /data/downloads/module/mdl_np/class/LC_Page_Mdl_NP_Payment.php で、処理がうまくいってないようです。 具体的には「送信用商品リストを作成する」 lfMakeItemList 関数?内でおかしな事になっていました。 下記商品データの整形はうまくいっているのですが、その後の「商品データ以外の商品情報」で配列に日本語(2バイト文字)が格納されないのです。 ------------------------------------------------------------ // 商品データの整形 foreach ($arrDetail as $item) { // 商品名 $item_name = $item["product_name"]; if( strlen($item["classcategory_name1"]) > 0 ) $item_name .= "/".$item["classcategory_name1"]; if( strlen($item["classcategory_name2"]) > 0 ) $item_name .= "/".$item["classcategory_name2"]; // 税込金額 $item_price = SC_Utils_Ex::sfCalcIncTax($item["price"], $this->arrInfo['tax'], $this->arrInfo['tax_rule']); $arrItem[] = array( 'goods_name' => $item_name ,'goods_price' => $item_price ,'goods_count' => $item['quantity'] ); $item_name = ""; $item_price = 0; } // 商品データ以外の商品情報 if ( $arrOrder['deliv_fee'] > 0 ){ $arrItem[] = array( 'goods_name' => '送料' ,'goods_price' => $arrOrder['deliv_fee'] ,'goods_count' => '1'); } if ( $arrOrder['charge'] > 0 ){ $arrItem[] = array( 'goods_name' => '手数料' ,'goods_price' => $arrOrder['charge'] ,'goods_count' => '1'); } if ( $arrOrder['use_point'] > 0 ){ $arrItem[] = array( 'goods_name' => 'ポイント' ,'goods_price' => 0 - ( $arrOrder['use_point'] * POINT_VALUE ) ,'goods_count' => '1'); } ------------------------------------------------------------ $arrItem["goods_name"]に「送料」「手数料」「ポイント」が下記(送料の部分のみ抜粋)のように格納されません。※送料は700円にしてあります。 array(3) { ["goods_name"]=> string(0) "" ["goods_price"]=> string(3) "700" ["goods_count"]=> string(1) "1" } 試しに下記のように日本語を英数字に変更してみました。 $arrItem[] = array( 'goods_name' => '送料' ↓↓↓↓ 変更 ↓↓↓↓ $arrItem[] = array( 'goods_name' => 'souryou' すると、下記のとおり配列にきちんと値が格納されてエラーも出ずにNP後払いに自動登録できました。 array(3) { ["goods_name"]=> string(7) "souryou" ["goods_price"]=> string(3) "700" ["goods_count"]=> string(1) "1" } あと日本語と英数字を混ぜてみました。 $arrItem[] = array( 'goods_name' => '送料' ↓↓↓↓ 変更 ↓↓↓↓ $arrItem[] = array( 'goods_name' => 'abc送料' 結果は下記のように日本語が消えてました。 array(3) { ["goods_name"]=> string(3) "abc" ["goods_price"]=> string(3) "700" ["goods_count"]=> string(1) "1" } 日本語(2バイト文字)がうまく配列に格納されずにエラーがでている状態です。 英数字でNP後払いに自動登録して手動で「souryou ⇒ 送料」などと直すよりは、始めから「送料」で自動登録したいのですが、どう記述したら良いのかが分かりません。。。 「この記述だとうまくいくのでは?」という方法があれば、教えていただきたいです。どうかよろしくお願い致します。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |