バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 一部送料無料商品のカート内メッセージについて

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
hatu
投稿日時: 2020/12/17 12:30
対応状況: −−−
新米
登録日: 2020/12/17
居住地:
投稿: 5
一部送料無料商品のカート内メッセージについて
[EC-CUBE] 4.0.4 (ECCUBE2から4へ移行)
[レンタルサーバ] さくらのレンタルサーバ
[PHP] 7.3.22
[導入プラグインの有無] データ移行、メールマガジン、おすすめ商品、商品ポイント数表示、商品並び替え、ヤマトクレカ払い
[現象] 

稼働中のショップサイトです。
送料無料条件(金額)10,800円にしております。
一部の商品のみ、送料無料にしました。
販売種別「無料商品」を追加し
配送方法で販売種別、無料商品とし、無料商品にしたい商品の販売種別も無料商品とし、
お会計には送料無料が反映されております。

ですが、無料商品を選びカート画面を見ると、
あと「¥ 」のお買い上げで送料無料になります。
が表示されてしまうので、送料無料ですと表示したいです。

ネット上を調べまして、
app/template/default/Cart/index.twigに

https://zaharo.work/eccube3-free-shipping-item-customization/

https://umebius.com/eccube/check-if-product-belongs-to-category/
(無料商品用のカテゴリーIDがあります)

に書いてあるものを入力し試しましたが、送料無料表示できませんでした。
(特にエラー等もなく、入力しなかった時と同じ挙動です。)

どちらも<div class="ec-cartRole__progress"></div>の中に
送料無料表示しない場合は、元々書いてある{% if BaseInfo.delivery_free_amount and BaseInfo.delivery_free_quantity %}の中が表示されるよう書きました。


この書き方で本来実装できるものなのか
又は、他の実装方法等を知りたいです。
ご教授宜しくお願い致します。

468
投稿日時: 2020/12/17 15:55
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 一部送料無料商品のカート内メッセージについて
変更を加えるtwigが合っていると思います。

参考にされているページはECCUBE3について記載されており
ECCUBE3の商品種別(ProductType)は
ECCUBE4では販売種別(SaleType)に変わっています。

その点は問題なく記述されていますか?


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

hatu
投稿日時: 2020/12/17 17:05
対応状況: −−−
新米
登録日: 2020/12/17
居住地:
投稿: 5
Re: 一部送料無料商品のカート内メッセージについて
ご回答ありがとうございます。

商品種別(ProductType)のままとなっておりました。

ProductTypeとなっている部分をそのまま
SaleTypeに変更しましたが正しいでしょうか?

変更したものにしてみても、
送料無料の表示はされなく、特に何も変わらずでした。

実際に書いたコードを記載します。

<!--送料-->
                    <div class="ec-cartRole__progress">

{# ここから追加 #}
    {% set cnt = 0 %}
    {% for CartItem in Cart.CartItems %}
    {% set ProductClass = CartItem.Object %}
    {% set SaleType = ProductClass.SaleType %}
    {% if SaleType.id == 3 %}
    {% set cnt = 1 %}
    {% endif %}
    {% endfor %}
    {% if cnt == 1 %}
        <br />現在送料無料です。
    {% else %}
{# ここまで #}

                        {% if BaseInfo.delivery_free_amount and BaseInfo.delivery_free_quantity %}
                            <br/>
                            {% if is_delivery_free[cartKey] %}
                                {{ '現在送料無料です。'|trans }}
                            {% else %}
                                {{ 'あと「<strong>%price%</strong>」または「<strong>%quantity%個</strong>」のお買い上げで
                                <strong class="ec-color-red">送料無料</strong>になります。'|trans({ '%price%': least[cartKey]|price, '%quantity%': quantity[cartKey]|number_format })|raw }}
                            {% endif %}
                        {% elseif BaseInfo.delivery_free_amount %}
                            <br/>
                            {% if is_delivery_free[cartKey] %}
                                {{ '現在送料無料です。'|trans }}
                            {% else %}
                                {{ 'あと「<strong>%price%</strong>」のお買い上げで<strong class="ec-color-red">送料無料</strong>になります。'|trans({ '%price%': least[cartKey]|price })|raw }}
                            {% endif %}
                        {% elseif BaseInfo.delivery_free_quantity %}
                            <br/>
                            {% if is_delivery_free[cartKey] %}
                                {{ '現在送料無料です。'|trans }}
                            {% else %}
                                {{ 'あと「<strong>%quantity%個</strong>」のお買い上げで<strong class="ec-color-red">送料無料</strong>になります。'|trans({ '%quantity%': quantity[cartKey]|number_format })|raw }}
                            {% endif %}
                        {% endif %}

{# ここから追加 #}
    {% endif %}
{# ここまで #}

                    </div>

マスタデータ管理のmtd_sale_typeで
ID 3 Name 無料商品
を追加しています。

ECCUBE3系と4系の違いはあまり分かっていないです。
他にも変える部分等ありますでしょうか?

宜しくお願い致します。




468
投稿日時: 2020/12/18 10:55
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 一部送料無料商品のカート内メッセージについて
4系にはCartItem.Objectが無いのではないかと思います。
CartItem.ProductClassでProductClassを取り出せるのではないでしょうか?

CartItemは
/src/Eccube/Entity/CartItem.php
のオブジェクトが代入されていると思いますので
上記ソースを確認されるのが良いかと思います。

twig上でCartItem.ProductClassと記述すると
CartItem->getProductClass()に繋がるようになっています。


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

hatu
投稿日時: 2020/12/18 18:43
対応状況: 解決済
新米
登録日: 2020/12/17
居住地:
投稿: 5
Re: 一部送料無料商品のカート内メッセージについて
{% set ProductClass = CartItem.ProductClass %}
に直すことで、実装することができました!

ソースの場所等もありがとうございます。

大変助かりました。
ご回答本当にありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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.