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

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

*

ECcube3.0.14のポイント倍率を整数以下にしたい場合の処理(途中)

      2020/01/28

ECcube3.0.14 でサイトを作成していて困ったこと。

それはポイントが整数倍率でしか設定できない。

 

100円/1P 以下に出来ない 1000円/1PとかはNGだった。

 

でも作りたいサイトでは2000円/1Pの設定にしたかったのでいくつか修正を試みた。

 

まだ途中段階ですが、備忘録として残しておく。

 

 

https://www.ec-cube.net/products/detail.php?product_id=1101

ポイントプラグイン

対応バージョン : 3.0系

3.0系 3.0.10|3.0.11|3.0.12|3.0.12-p1|3.0.13|3.0.14

 

インストールディレクトリ/app/Plugin/Point

 

 

①データベース内の初期設定数値変更

初期設定は「1」になっているのでその数値を変更

 

テーブル: plg_point_info

データ型  DECIMAL

長さ/値 10,9(10が前の桁数 9が後ろの桁数)

デフォルト値 ユーザー定義  下段にデフォルトで入れたい数値

 

 

あとは表示される内容の変更

 

ショッピングカート注文商品確認画面

現在の保有ポイントは「0 pt」です。

商品購入で加算されるポイントは「12pt」です。

ポイントは商品購入時に1pt=¥ 1として利用することができます。

 

インストールディレクトリ/app/Plugin/Point/Helper/PointCalculateHelper/PointCalculateHelper.php

 

216行目

* カート情報をもとに加算ポイントを返却する.

*

* かートの明細単位で計算を行う

* 商品ごとの付与率が設定されている場合は商品ごと付与率を利用する

* 商品ごとの付与率に0が設定されている場合は加算ポイントは付与しない

*

* @return int

*/

public function getAddPointByCart()

{

// カートエンティティチェック

if (empty($this->entities[‘Cart’])) {

$this->app[‘monolog’]->critical(‘cart not found.’);

throw new \LogicException(‘cart not found.’);

}

 

$this->addPoint = 0;

$basicRate = $this->pointInfo->getPlgBasicPointRate() / 3000;

 

 

 

商品紹介ページに表示されるポイント数計算箇所

インストールディレクトリ/app/Plugin/Point/Helper/PointCalculateHelper/PointCalculateHelper.php

 

342行目

// 商品規格の販売価格(税抜)に応じて最小値と最大値を返却.

$rate = array();

$rate[‘min’] = (integer)$this->getRoundValue($Product->getPrice02Min() * ($calculateRate / 3000));  ⇒割り算になっているのを掛け算で小数点へ変更

$rate[‘max’] = (integer)$this->getRoundValue($Product->getPrice02Max() * ($calculateRate / 3000));  ⇒割り算になっているのを掛け算で小数点へ変更

 

 

 

ポイント利用案内コメント

/app/Plugin/Point/Resource/template/default/Event/ShoppingConfirm/use_point_button.twig

内の文章変更

 

 

まだ修正途中なのでほかにも編集箇所があるかも。

2020.1.28追記

商品のうち1点だけ反映されない原因を探っていたところ商品ページ内の

個別ポイント欄に「0」とか数値を入れてしまっているとそちらを優先されるので

反映されなくなるみたい。

 - EC-cube ,