バージョン選択

フォーラム

メニュー

オンライン状況

48 人のユーザが現在オンラインです。 (40 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 48
もっと...

サイト内検索

質問 > 管理機能 > 規格選択後に税抜表示ができない

管理機能

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
YUYU-YU
投稿日時: 2020/7/17 18:32
対応状況: −−−
半人前
登録日: 2019/5/29
居住地:
投稿: 18
Re: 規格選択後に税抜表示ができない
468様

ご回答ありがとうございます。

/src/Eccube/Entity/Product.phpを以下のようにしました。

34行目付近
/**
 * Product
 */
class Product extends \Eccube\Entity\AbstractEntity
{
    private $_calc = false;
    private $stockFinds = array();
    private $stocks = array();
    private $stockUnlimiteds = array();
    private $price01 = array();
    private $price02 = array();
    private $price02Tax_Exc = array(); //追加
    private $price01IncTaxs = array();
    private $price02IncTaxs = array();
    private $codes = array();
    private $classCategories1 = array();
    private $classCategories2 = array();
    private $className1;
    private $className2;


80行目付近
// price01
if (!is_null($ProductClass->getPrice01())) {
    $this->price01[] = $ProductClass->getPrice01();
    // price01IncTax
    $this->price01IncTaxs[] = $ProductClass->getPrice01IncTax();
}

// price02
$this->price02[] = $ProductClass->getPrice02();

// price02Tax_Exc
$this->price02Tax_Exc[] = $ProductClass->getPrice02(); //追加

// price02IncTax
$this->price02IncTaxs[] = $ProductClass->getPrice02IncTax();

// product_code
$this->codes[] = $ProductClass->getCode();


285行目付近
/**
     * Get Price02 min
     *
     * @return integer
     */
    public function getPrice02Min()
    {
        $this->_calc();

        return min($this->price02);
    }

    /**
     * Get Price02 max
     *
     * @return integer
     */
    public function getPrice02Max()
    {
        $this->_calc();

        return max($this->price02);
    }
    
    /**
     * Get price02Tax_Exc min
     *
     * @return integer
     */
    public function getprice02Tax_ExcMin() //追加
    {
        $this->_calc();

        return min($this->price02);
    }

    /**
     * Get price02Tax_Exc max
     *
     * @return integer
     */
    public function getprice02Tax_ExcMax() //追加
    {
        $this->_calc();

        return max($this->price02);
    }


430行目付近
$class_categories[$class_category_id1]['#'.$class_category_id2] = array(
                'classcategory_id2' => $class_category_id2,
                'name'              => $class_category_name2,
                'stock_find'        => $ProductClass->getStockFind(),
                'price01'           => $ProductClass->getPrice01() === null ? '' : number_format($ProductClass->getPrice01IncTax()),
                'price02'           => number_format($ProductClass->getPrice02IncTax()),
                'price02Tax_Exc'    => number_format($ProductClass->getPrice02()), //追加
                'product_class_id'  => (string) $ProductClass->getId(),
                'product_code'      => $ProductClass->getCode(),
                'product_type'      => (string) $ProductClass->getProductType()->getId(),
            );
        }


以上のように変更した後に、/html/template/default/js/eccube.jsの500行目付近にあった通常価格の箇所を以下のようにしました。
// 税抜価格
var $price02Tax_Exc = $('#detail_description_box__class_normal_range_price')
    .find('.price02Tax_Exc_default')
    .first();
if (typeof this.price02Tax_Exc_origin === 'undefined') {
    // 初期値を保持しておく
    this.price02Tax_Exc_origin = $price02Tax_Exc.text();
}
if (classcat2 && typeof classcat2.price02Tax_Exc !== 'undefined' && String(classcat2.price02Tax_Exc).length >= 1) {
    $price02Tax_Exc.text('¥ ' + classcat2.price02Tax_Exc);
} else {
    $price02Tax_Exc.text(this.price02Tax_Exc_origin);
}


最後にsrc/Eccube/Resource/template/default/Product/detail.twigを以下のようにしました。
<!--★税抜価格★-->            
                    {% if Product.hasProductClass %}
                        {% if Product.getprice02Tax_ExcMin == Product.getprice02Tax_ExcMax %}
                        <p id="detail_description_box__class_normal_price" class="normal_price">  <span class="price02Tax_Exc_default">{{ Product.getprice02Tax_ExcMin|price }}</span> <span class="small">税抜</span></p>
                        {% else %}
                        <p id="detail_description_box__class_normal_range_price" class="normal_price">  <span class="price02Tax_Exc_default">{{ Product.getprice02Tax_ExcMin|price }} ~ {{ Product.getprice02Tax_ExcMax|price }}</span> <span class="small">税抜</span></p>
                        {% endif %}
                    {% else %}
                        <p id="detail_description_box__normal_price" class="normal_price">  <span class="price02Tax_Exc_default">{{ Product.getprice02Tax_ExcMin|price }}</span> <span class="small">税抜</span></p>
                    {% endif %}

                    <!--★販売価格★-->
                    {% if Product.hasProductClass -%}
                        {% if Product.getPrice02IncTaxMin == Product.getPrice02IncTaxMax %}
                        <p id="detail_description_box__class_sale_price" class="sale_price text-primary"> <span class="price02_default"><font color="red">{{ Product.getPrice02IncTaxMin|price }}</font></span> <span class="small">税込</span></p>
                        {% else %}
                        <p id="detail_description_box__class_range_sale_price" class="sale_price text-primary"> <span class="price02_default"><font color="red">{{ Product.getPrice02IncTaxMin|price }} ~ {{  Product.getPrice02IncTaxMax|price }}</font></span> <span class="small">税込</span></p>
                        {% endif %}
                    {% else -%}
                        <p id="detail_description_box__sale_price" class="sale_price text-primary"> <span class="price02_default"><font color="red">{{ Product.getPrice02IncTaxMin|price }}</font></span> <span class="small">税込</span></p>
                    {% endif -%}


これで、税込価格と税抜価格を同時に表示する事ができました。
恐らくこれで問題ないかと思います。

468様
長々とお付き合いいただきありがとうございました。
また分からないことがありましたら、教えていただければ幸いです。

この度は本当にありがとうございました。
468
投稿日時: 2020/7/17 9:11
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 規格選択後に税抜表示ができない
規格が設定された商品の場合、規格プルダウン選択時にjavascriptで価格が動的に書き換えられる仕様となっていますが
書き換え後の金額が税抜き¥0で表示されるという事でしょうか?

detail.twigの価格の表示レイアウトを変更されているのであれば
それに合わせてjavascriptも修正する必要があると思います。
/html/template/default/js/eccube.js 500行目付近かと思います。

因みに先日までやり取りさせていただいた内容は
販売価格を税抜表示に変更したいのかと思っておりましたので
税込価格と税抜価格を同時に表示する事は想定しておりません。
(税込価格を税抜価格に置換するイメージでしたので)
税込・税抜価格の両方を表示したいのであれば、Product.phpから返している配列に従来の税込価格と新しく税抜価格を返すようにする必要があるかと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

YUYU-YU
投稿日時: 2020/7/16 18:04
対応状況: −−−
半人前
登録日: 2019/5/29
居住地:
投稿: 18
Re: 規格選択後に税抜表示ができない
468様

ご回答ありがとうございます。

税抜表示自体はできておりました。
色々やってる中で頭が混乱しておりました。
申し訳ございません。

しかし、規格1・規格2の表示に問題がございます。

src/Eccube/Resource/template/default/Product/detail.twigには以下のように通常価格があるところに税抜表示をしようとしております。
<!--★税抜価格★-->            
{% if Product.hasProductClass %}
    {% if Product.getPrice02Min == Product.getPrice02Max %}
    <p id="detail_description_box__class_normal_price" class="normal_price">  <span class="price01_default">{{ Product.getPrice02Min|price }}</span> <span class="small">税抜</span></p>
    {% else %}
    <p id="detail_description_box__class_normal_range_price" class="normal_price">  <span class="price01_default">{{ Product.getPrice02Min|price }} ~ {{ Product.getPrice02Max|price }}</span> <span class="small">税抜</span></p>
    {% endif %}
{% else %}
    <p id="detail_description_box__normal_price" class="normal_price">  <span class="price01_default">{{ Product.getPrice02Min|price }}</span> <span class="small">税抜</span></p>
{% endif %}

<!--★販売価格★-->
{% if Product.hasProductClass -%}
    {% if Product.getPrice02IncTaxMin == Product.getPrice02IncTaxMax %}
    <p id="detail_description_box__class_sale_price" class="sale_price text-primary"> <span class="price02_default"><font color="red">{{ Product.getPrice02IncTaxMin|price }}</font></span> <span class="small">税込</span></p>
    {% else %}
    <p id="detail_description_box__class_range_sale_price" class="sale_price text-primary"> <span class="price02_default"><font color="red">{{ Product.getPrice02IncTaxMin|price }} ~ {{  Product.getPrice02IncTaxMax|price }}</font></span> <span class="small">税込</span></p>
    {% endif %}
{% else -%}
    <p id="detail_description_box__sale_price" class="sale_price text-primary"> <span class="price02_default"><font color="red">{{ Product.getPrice02IncTaxMin|price }}</font></span> <span class="small">税込</span></p>
{% endif -%}


規格がない商品や規格1のみの商品では、
以下のように正常に表示されます。
¥ 3,900 税抜
¥ 4,290 税込

規格1・規格2の商品では、
以下のように表示されてしまいます。
¥ 0 税抜
¥ 3,820 税込

一応、通常価格に販売価格と同じ値を入力することで、
以下のように表示されます。
¥ 3,820 税抜
¥ 3,820 税込

ですが、上記のように税込表示にしたい部分も税抜表示で表示されてしまいます。

規格1・規格2の商品を上記の形式で正常に表示するには、
なにか追加の処理が必要なのでしょうか?
468
投稿日時: 2020/7/16 9:35
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 規格選択後に税抜表示ができない
デフォルトの環境に対してProduct.phpの411行目付近を変更して確認してみましたが
私の環境では規格1, 規格1/規格2の商品に関係無く、税抜き価格が表示されました。

$ProductClass->getPrice01(), $ProductClass->getPrice02()に何かカスタマイズが入っているのでしょうか?
ここまできたら$Product->getClassCategories()の中をデバッグしてみては如何でしょうか?


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

YUYU-YU
投稿日時: 2020/7/15 14:48
対応状況: −−−
半人前
登録日: 2019/5/29
居住地:
投稿: 18
Re: 規格選択後に税抜表示ができない
468様

ご回答ありがとうございます。

/src/Eccube/Controller/ProductController.phpに
「dump($Product->getClassCategories());」を記載することで確認することができました。

規格1のみの登録では「price01」「price02」が税抜になっていました。

規格1・規格2を登録している場合は税込価格になっているかと思います。

以下、規格1・規格2を登録している場合に出力された結果の一部抜粋です。

array:8 [▼
  "__unselected" => array:1 [▶]
  63 => array:8 [▼
    "#" => array:3 [▼
      "classcategory_id2" => ""
      "name" => "選択してください"
      "product_class_id" => ""
    ]
    "#70" => array:8 [▼
      "classcategory_id2" => "70"
      "name" => "商品名1"
      "stock_find" => true
      "price01" => "3,820"
      "price02" => "3,820"
      "product_class_id" => "672"
      "product_code" => "G004"
      "product_type" => "1"
    ]
    "#69" => array:8 [▼
      "classcategory_id2" => "69"
      "name" => "商品名2"
      "stock_find" => true
      "price01" => "3,520"
      "price02" => "3,520"
      "product_class_id" => "673"
      "product_code" => "G004"
      "product_type" => "1"
    ]


最初に伝えておくべきでしたが、
規格1・規格2を登録する場合はProduct.php等に別の記述が必要なのでしょうか?
468
投稿日時: 2020/7/14 12:54
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 規格選択後に税抜表示ができない
dump()を記述するとすれば、コントローラー側が良いのではないでしょうか?
/src/Eccube/Controller/ProductController.php function detail()の
return $app->render('Product/detail.twig', array(
の記述の直前に
dump($Product->getClassCategories());
と記述すれば、twigに渡そうとしているProductEntityのjavascriptに渡しているデータの中身が確認できると思います。

本来であれば修正を加えられたProductEntity.phpのgetClassCategories()の結果が表示される為、
price01とprice02の値は税抜になっているはずなのですが...


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

YUYU-YU
投稿日時: 2020/7/14 12:15
対応状況: −−−
半人前
登録日: 2019/5/29
居住地:
投稿: 18
Re: 規格選択後に税抜表示ができない
468様

ご回答ありがとうございます。

<script>タグのeccube.classCategories = {"__unselected":{"__unselectedのprice01とprice02は規格商品では税込となっておりました。

index_dev.phpでデバッグモードにアクセスしたうえで、
src/Eccube/Resource/template/default/Product/detail.twigに{{ dump(ProductEntity) }}と入力したのですが、エラーになってしまいます。

また、「Symfony_profiler」のdump()にも表示されません。

デバッグモードをあまり使用したことがないので、
どのようにすれば良いのかわかりません。

dumpの記述を何行目に入れなければならないなどはあるのでしょうか?
468
投稿日時: 2020/7/13 14:56
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 規格選択後に税抜表示ができない
商品詳細ページのhtmlソースを確認してみていただきたいのですが
<script>タグの中で以下のような記述から始まる1行があるかと思いますが
ここのprice01, price02は税抜きになっていますか?

eccube.classCategories = {"__unselected":{"__unselected

ページを表示した時点で規格選択時に表示する情報を
上記変数に出力しているので、ここで金額が税込になっているのであれば
PHP側の処理(/src/Eccube/Entity/Product.php)が上手く反映できていないと思われますので
dump()等でProductEntityの中身を確認するなど、PHP側のデバッグを行う必要があるかと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

YUYU-YU
投稿日時: 2020/7/13 10:11
対応状況: −−−
半人前
登録日: 2019/5/29
居住地:
投稿: 18
Re: 規格選択後に税抜表示ができない
468様

ご回答ありがとうございます。

以下、導入しているプラグイン一覧となります。
--------------------------------------------------
■オーナーズストアプラグイン
・RobotIn
・MailMagazine
・おすすめ商品管理プラグイン
・関連商品プラグイン
・売上集計プラグイン
・メンテナンスプラグイン
・商品並び替えプラグイン

■独自プラグイン
・ASJペイメント
--------------------------------------------------

特に商品価格を計算するようなプラグインはないと思うのですが、どうでしょうか?
468
投稿日時: 2020/7/11 12:18
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 規格選択後に税抜表示ができない
修正を加える箇所は/src/Eccube/Entity/Product.phpの411行目付近で
書き方も合っているように思うのですが
他に商品価格を計算するようなプラグインを利用されているという事は無いでしょうか?
例えば、商品オプションプラグインを利用していると
商品価格は商品オプションプラグイン内でも計算されると思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

(1) 2 »
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,873名です
総投稿数は110,000件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1295
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.