なんちゃって「WEB担当者」の備忘録いろいろ

「WEB担当者」になりきれないOLが毎日奮闘しています。

*

加算ポイントを商品ごとではなく、購入商品の小計に対して行う処理

      2020/02/18

いま作っているショッピングサイトは

3000円購入ごとに1Pつくようにしているのだが(やり方はいづれ・・・)

ECcubeの標準仕様だと、2000円の商品が2個でもポイントがつかない。

(商品A×ポイント率)+(商品B×ポイント率)+(商品C×ポイント率)=商品付与ポイント

ってな計算になっているそうだ。

これだと、3000円未満の商品をいくつ買って合計額を上げてもポイントが”0”になってしまうので

購入商品の合計額に対して、ポイントの計算をするようにしてみた。

(商品A+商品B+商品C)×ポイント率

という感じに。

 

これで、1500円の商品2個買ってもらえれば1Pつくことになる。

 

以下その手順

 

該当ファイル ECcubeインストールフォルダ/data/class/SC_CartSession.php

$results[‘add_point’] = SC_Helper_DB_Ex::sfGetAddPoint($total_point,$use_point);

$results[‘add_point’] = (int)( ( $results[‘subtotal’] -= $discount ) / 100 );

 

dtb_products_classのpoint_rateの設定ができて無いと反応しない模様。

 

 

参考にしたサイト

http://ameblo.jp/webmage/theme3-10033783238.html

 

2020年2月18日追加

↑のやり方だと、注文確認画面、注文確認メールに記載される取得ポイント数と

発送完了メールに記載される取得ポイント数及び、会員マイページ内で表示される

ポイント数がちょっとだけ誤差が出ることが判明。

 

理由は税込後のポイント率計算か、税計算前の合計額でのポイント率計算か、ということだった。

なので追加で以下のファイルを変更

/web/hoge●hoge●.com/shop/data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php 内

726行目

// 加算ポイント
//●        $arrValues[‘add_point’] = SC_Helper_DB_Ex::sfGetAddPoint($totalpoint, $arrValues[‘use_point’]) + $arrValues[‘birth_point’];

を↓に
$results[‘add_point’] = (int)( ( $results[‘payment_total’] -= $discount )*0.0003336) + $arrValues[‘birth_point’];

※赤字部分の数字は3000円/1Pの計算なので任意で変更必須!

 

 

 

**************************************************************************

[EC-CUBE] 2.13.2

[レンタルサーバ] heteml

[PHP] PHP 5.3.28

[データベース] MySQL 5.6.13-log

 

 

関連ページ

加算ポイントの計算を値引き後の金額からにしたい場合:
http://arxtage.com/blog/?p=25

 - EC-cube ,