バージョン選択

フォーラム

メニュー

オンライン状況

121 人のユーザが現在オンラインです。 (76 人のユーザが フォーラム を参照しています。)
登録ユーザ: 3
ゲスト: 118
gwkozaki ske aka9 もっと...

サイト内検索

質問 > フロント機能 > カート画面の小計を税別表示にする方法

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ateshi
投稿日時: 2019/2/26 17:13
対応状況: −−−
一人前
登録日: 2016/12/21
居住地:
投稿: 94
カート画面の小計を税別表示にする方法
プラグインなしで税別表示に切り替えているのですが、
カート画面の小計を税別にする場合どうすればよいのでしょうか?
一覧や詳細ページはIncTaxを削除するだけで簡単でしたが。

Ringo
投稿日時: 2019/2/27 7:30
対応状況: −−−
常連
登録日: 2018/8/10
居住地:
投稿: 70
Re: カート画面の小計を税別表示にする方法
左の
『メニュー
 当サイトについて
 初めてご利用になる方へ
 EC-CUBE開発情報』
その際の注意点として、「うまく動きません」などの書き方は避け、
どのような動作をして、どのような状態になったのか、
手順と現象をできるだけ具体的に書くと回答がつきやすいと思います。

また、EC-CUBEのバージョンやDB、WEBサーバなど、動作環境によって挙動が異なることがありますので、
できる限り動作環境の情報も書くようにしましょう。
※次項の「質問用テンプレート」を参考にしてみてください。


https://xoops.ec-cube.net/modules/tinyd0/index.php?id=8

※[OS] 使用しているOS名、バージョン
 は「ECCUBE」を稼動させるOSです。ECCUBEを表示させるブラウザのパソコンのOSではないです。

質問用のテンプレートを用意しましたのでご利用ください。
------------------------------------------------------------------------------------------
[EC-CUBE] EC-CUBEのバージョン、新規インストールかアップデートか、等
[レンタルサーバ] レンタルサーバ名
[OS] 使用しているOS名、バージョン
[PHP] 使用しているPHPのバージョン
[データベース] 使用しているDB名、バージョン
[WEBサーバ] 使用しているWEBサーバ名、バージョン
[ブラウザ] 使用しているブラウザ名、バージョン
[導入プラグインの有無] あれば導入プラグインを記載
[カスタマイズの有無] あればカスタマイズ内容を記載(できるだけ具体的に)
[現象] 再現手順や、どのような現象が発生しているかなど、具体的に
------------------------------------------------------------------------------------------
ateshi
投稿日時: 2019/2/27 9:07
対応状況: 保留
一人前
登録日: 2016/12/21
居住地:
投稿: 94
Re: カート画面の小計を税別表示にする方法
Ringoさま

テンプレートを利用し、再度投稿致しました。
失礼しました。
Ringo
投稿日時: 2019/2/27 14:01
対応状況: −−−
常連
登録日: 2018/8/10
居住地:
投稿: 70
Re: カート画面の小計を税別表示にする方法
軽く動かした感じでは「カート・注文ページ・注文メールの小計金額を税別で表示」だけなら、

eccube-3.0.17/src/Eccube/Service/CartService.php

        // 新しい数量でカート内商品を登録する
        if (0 < $quantity) {
            $CartItem = new CartItem();
            $CartItem
                ->setClassName('Eccube\Entity\ProductClass')
                ->setClassId((string)$ProductClass->getId())
                //->setPrice($ProductClass->getPrice02IncTax())
                ->setPrice($ProductClass->getPrice02())
                ->setQuantity($quantity);

            $this->cart->setCartItem($CartItem);
        }


eccube-3.0.17/src/Eccube/Entity/OrderDetail.php

    public function getPriceIncTax()
    {
        //return $this->price_inc_tax;
        return $this->price;
    }


こんな感じで良いのでしょうか?

「ECCUBE3 税別」で検索したWebサイトを見ると、確かに
「カート・注文ページ・注文メールの小計金額を税別で表示」まで言及されてない様ですね。
小生の読込み不足かもしれませんが。

後「カート・注文ページ・注文メール」に「項目:『税金』」は新設するのですよね?
Ringo
投稿日時: 2019/2/28 12:38
対応状況: −−−
常連
登録日: 2018/8/10
居住地:
投稿: 70
Re: カート画面の小計を税別表示にする方法
注文完了メールに洩れが有りました。

eccube-3.0.17/src/Eccube/Resource/template/default/Mail/order.twig
eccube-3.0.17/src/Eccube/Resource/template/admin/Mail/order.twig

単価: {{ calc_inc_tax(OrderDetail.price, OrderDetail.tax_rate, OrderDetail.tax_rule)|price }}
↓
単価: {{ OrderDetail.price|price }}

小 計 {{ Order.subtotal|price }}{% if Order.tax > 0 %}(うち消費税 {{ Order.tax|price }}){% endif %}
↓
小 計 {{ Order.subtotal_outTaxl|price }}
消費税 {{ Order.tax|price }}


で、先の
eccube-3.0.17/src/Eccube/Entity/OrderDetail.php

    public function getPriceIncTax()
    {
        //return $this->price_inc_tax;
        return $this->price;
    }

をしてしまうと、被害が大きく
「消費税」が「0」
故、
「お支払い合計」
「合計」
に「消費税が含まれない」になってしまうので、


    public function getPriceIncTax()
    {
        return $this->price_inc_tax;
    }

に戻します。

後は「合計」を税込みにすれば良いのかも。

て、「Order.subtota_outTaxl」の算出(すでにphp内に有るも)。

「カート・注文ページ・注文メールの小計金額を税別で表示」は、切り直しとします。
Ringo
投稿日時: 2019/2/28 18:13
対応状況: −−−
常連
登録日: 2018/8/10
居住地:
投稿: 70
Re: カート画面の小計を税別表示にする方法
ECCUBE3.0.17の素に対して
「カート・注文ページ・注文メールの小計金額を税別で表示」「合計の税込」
を行なった結果です。

フロント側の「税別」処理を把握していないで、フロントでの「税別」処置と干渉する箇所があれば、適時、調整願います。
一応、複数配送先での「税別」表示も確認しました。

不要な『税込』は削除してください。

「カート」
eccube-3.0.17/src/Eccube/Service/CartService.php
(「税別」化)

        // 新しい数量でカート内商品を登録する
        if (0 < $quantity) {
            $CartItem = new CartItem();
            $CartItem
                ->setClassName('Eccube\Entity\ProductClass')
                ->setClassId((string)$ProductClass->getId())
                //->setPrice($ProductClass->getPrice02IncTax())
                ->setPrice($ProductClass->getPrice02())
                ->setQuantity($quantity);

            $this->cart->setCartItem($CartItem);
        }

「注文ページ」
eccube-3.0.17/src/Eccube/Entity/OrderDetail.php
(税別化)

    /**
     * @return integer
     */
    public function getTotalPrice()
    {
        //return $this->getPriceIncTax() * $this->getQuantity();
    	return $this->getPrice() * $this->getQuantity();
    }

eccube-3.0.17/src/Eccube/Service/ShoppingService.php
(個別「税別」化後の「合計」への「消費税」加算)

    /**
     * 合計金額を計算
     *
     * @param Order $Order
     * @return Order
     */
    public function calculatePrice(Order $Order)
    {

        $total = $Order->getTotalPrice();
        // 追加
        $total += $Order->calculateTotalTax();

        if ($total < 0) {
            // 合計金額がマイナスの場合、0を設定し、discountは値引きされた額のみセット
            $total = 0;
        }

        $Order->setTotal($total);
        $Order->setPaymentTotal($total);

        return $Order;

    }
 

eccube-3.0.17/src/Eccube/Entity/ShipmentItem.php

    /**
     * @return integer
     */
    public function getTotalPrice()
    {
        //return $this->getPriceIncTax() * $this->getQuantity();
    	return $this->getPrice() * $this->getQuantity();
    }

eccube-3.0.17/src/Eccube/Resource/template/default/Shopping/index.twig

                        <dd id="cart_box_list__price--{{ loop.index }}" class="item_price">{{ orderDetail.priceIncTax|price }} × {{ orderDetail.quantity|number_format }}</dd>
                        ↓
                        <dd id="cart_box_list__price--{{ loop.index }}" class="item_price">{{ orderDetail.price|price }} × {{ orderDetail.quantity|number_format }}</dd>
(snip)
                        <dd id="shipping_box__price--{{ idx }}_{{ shipmentItem.id }}" class="item_price">{{ shipmentItem.priceIncTax|price }} × {{ shipmentItem.quantity|number_format }}</dd>
                        ↓
                        <dd id="shipping_box__price--{{ idx }}_{{ shipmentItem.id }}" class="item_price">{{ shipmentItem.price|price }} × {{ shipmentItem.quantity|number_format }}</dd>
(snip)
                         <dl id="summary_box__subtotal">
                            <dt>小計</dt>
                            <dd class="text-primary">{{ Order.subtotal|price }}</dd>
                        </dl>
                        <!-- 追加 -->
                        <dl id="summary_box__tax">
                            <dt>消費税</dt>
                            <dd class="text-primary">{{ Order.tax|price }}</dd>
                        </dl>
                        <!-- ここまで -->
 

「注文メール」
eccube-3.0.17/src/Eccube/Resource/template/default/Mail/order.twig
eccube-3.0.17/src/Eccube/Resource/template/admin/Mail/order.twig

単価: {{ calc_inc_tax(OrderDetail.price, OrderDetail.tax_rate, OrderDetail.tax_rule)|price }}
↓
単価: {{ OrderDetail.price|price }}
(snip)
小 計 {{ Order.subtotal|price }}{% if Order.tax > 0 %}(うち消費税 {{ Order.tax|price }}){% endif %}
↓
小 計 {{ Order.subtotal|price }}
消費税 {{ Order.tax|price }}

ateshi
投稿日時: 2019/2/28 18:49
対応状況: −−−
一人前
登録日: 2016/12/21
居住地:
投稿: 94
Re: カート画面の小計を税別表示にする方法
丁寧にありがとうございます。

早速上記内容を試してみたいと思います。
ご報告までしばしお待ちを。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は58,675名です
総投稿数は94,995件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
2035
4
468
1971
5
yuh
1612
6
umebius
1551
7
red
1389
8
h_tanaka
966
9
fukap
907
10
tsuji
863
11
shutta
835
12 ramrun 789
13
tao_s
783
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

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

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