いつも大変お世話になっております。
表題の件についてですが、EC-CUBE4において、ポイント付与率を200円お買い上げごとに1Pというようにしたく、
単純に0.5%と打ったところエラーになってしまいました。
そこで色々検索してみたところ、4系ではないですが
ポイント付与率 0.5 %
200円毎に1ポイント付与しようとしています。
こちらのお二人が私がしたいことの記事を挙げてくれていました。
しかしながら、二方とも挙げている、
EC-CUBEでポイント付与率を商品価格の1%未満(0.5%とか)にしたい
こちらのサイトは閉鎖されたようで残念ながら閲覧不可でした。
なので、小数点以下の入力を可能にするにはどのファイルを触れば良いかだけでも
ご教授いただければと思い投稿しました。
皆様どうぞよろしくお願いいたします。
教えていただいた方法でサイトを見に行くことができたのですが
2系での修正方法が書いてあり、修正箇所のphpが4系だとどこに当たるのかが
ファイルの場所を見つけることがまだできていません。
引き続き場所がわかる方がいらっしゃいましたら回答をお願いしたいです。
EC-CUBEでポイント付与率を商品価格の1%未満(0.5%とか)にしたい
のサイトでは
基本情報管理の「ポイント設定」のPHPを修正で
/data/class_extends/page_extends/admin/basis/の中のLC_Page_Admin_Basis_Point_Ex.phpを
function lfInitParam() { $this->objFormParam->addParam("ポイント付与率", "point_rate", PERCENTAGE_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); $this->objFormParam->addParam("会員登録時付与ポイント", "welcome_point", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); } ↓ 赤文字部分を削除する。 function lfInitParam() { $this->objFormParam->addParam("ポイント付与率", "point_rate", PERCENTAGE_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK")); $this->objFormParam->addParam("会員登録時付与ポイント", "welcome_point", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); }
商品登録の部分のPHPの修正で
function lfErrorCheck($array) { $objErr = new SC_CheckError($array); $objErr->doFunc(array("商品名", "name", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); $objErr->doFunc(array("一覧コメント", "main_list_comment", MTEXT_LEN), array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); $objErr->doFunc(array("詳細コメント", "main_comment", LLTEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); $objErr->doFunc(array("詳細コメント", "main_comment", $this->arrAllowedTag), array("HTML_TAG_CHECK")); $objErr->doFunc(array("ポイント付与率", "point_rate", PERCENTAGE_LEN), array("EXIST_CHECK", "NUM_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); $objErr->doFunc(array("商品送料", "deliv_fee", PRICE_LEN), array("NUM_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); ~ 省略 ~ }
上記コードのようにポイント付与率部分の"NUM_CHECK"を消し、数値チェックしないようにして、小数点を入れてもエラーが起きないようにしているみたいなのですが
そもそも2系と4系のポイント設定は
というように大分異なるようです。
4系で色々見てみたところポイント関係のphpとして
×××/src/Eccube/Entryに
PointRateTrait.php
<?php /* * This file is part of EC-CUBE * * Copyright(c) LOCKON CO.,LTD. All Rights Reserved. * * http://www.lockon.co.jp/ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Eccube\Entity; use Doctrine\ORM\Mapping as ORM; trait PointRateTrait { /** * @var string * * @ORM\Column(name="point_rate", type="decimal", precision=10, scale=0, options={"unsigned":true}, nullable=true) */ private $point_rate; /** * Set pointRate * * @param string $pointRate * * @return OrderItem */ public function setPointRate($pointRate) { $this->point_rate = $pointRate; return $this; } /** * Get pointRate * * @return string */ public function getPointRate() { return $this->point_rate; } }
PointTrait.php
<?php /* * This file is part of EC-CUBE * * Copyright(c) LOCKON CO.,LTD. All Rights Reserved. * * http://www.lockon.co.jp/ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Eccube\Entity; use Doctrine\ORM\Mapping as ORM; trait PointTrait { /** * @var string * * @ORM\Column(name="add_point", type="decimal", precision=12, scale=0, options={"unsigned":true,"default":0}) */ private $add_point = '0'; /** * @var string * * @ORM\Column(name="use_point", type="decimal", precision=12, scale=0, options={"unsigned":true,"default":0}) */ private $use_point = '0'; /** * Set addPoint * * @param string $addPoint * * @return Order */ public function setAddPoint($addPoint) { $this->add_point = $addPoint; return $this; } /** * Get addPoint * * @return string */ public function getAddPoint() { return $this->add_point; } /** * Set usePoint * * @param string $usePoint * * @return Order */ public function setUsePoint($usePoint) { $this->use_point = $usePoint; return $this; } /** * Get usePoint * * @return string */ public function getUsePoint() { return $this->use_point; } }
この二つのファイルがあったのは分かりました。
でもこのファイルをどのようにいじればいいのかは分かりません・・・。
そして最終的にはポイント付与率を0.5にするというのがゴールです。

回答2件
あなたの回答
tips
プレビュー