バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 特定の商品だけカート追加制御を行いたい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
KimK
投稿日時: 2025/4/4 16:21
対応状況: 開発中
半人前
登録日: 2024/12/5
居住地:
投稿: 23
特定の商品だけカート追加制御を行いたい
▼テンプレート
[EC-CUBE]4.1

[現象]自分でクラスを作成しそのクラスではギフト商品のidを定義しています。detail.twigにて下記のコードを書いており、やりたいこととしてはgiftId(ギフト商品)の時だけカートに進むという選択肢のみにしたいです。
そこでその商品のIDとgiftIdを比較したいけどどうも商品のIdが上手く取れていないようでして、どうしたら取得できますか?どこかで使っていて再利用可能でしょうか?なぜそのような制御をかけるかというとギフト商品は1個しかカートに入れられないようにしたいけど、買い物を続けるボタンを押すと何度でもカートに入れられ、カートに進まないとバリデーションが発火しないからです。
【現状のコード】
{% if Product.id != giftId %}
<div class="ec-modal">
<div class="ec-modal-overlay">
<div class="ec-modal-wrap">
<span class="ec-modal-close"><span class="ec-icon"><img src="{{ asset('assets/icon/cross-dark.svg') }}" alt=""/></span></span>
<div id="ec-modal-header" class="text-center">{{ 'カートに追加しました。'|trans }}</div>
<div class="ec-modal-box">
<div class="ec-role">
<span class="ec-inlineBtn--cancel">{{ 'お買い物を続ける'|trans }}</span>
<a href="{{ url('cart') }}" class="ec-inlineBtn--action">{{ 'カートへ進む'|trans }}</a>
</div>
</div>
</div>
</div>
</div>
{% else %}
<div class="ec-role">
<a href="{{ url('cart') }}" class="ec-inlineBtn--action">{{ 'カートへ進む'|trans }}</a>
</div>
{% endif %}
h_tanaka
投稿日時: 2025/4/4 16:31
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1993
Re: 特定の商品だけカート追加制御を行いたい
「商品のIdが上手く取れていない」というのは、具体的にどういうことでしょうか?
Product Entity が定義されていないということでしょうか?

商品詳細ページの twig であれば、ProductController から Product Entity は渡されていると思います。

デバッグして確認してみてください。

php なら dump() で、 twig なら {{ dump() }} で引数に Entity なりのオブジェクトを指定すれば画面出力されます。


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

h_tanaka
投稿日時: 2025/4/4 16:33
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1993
Re: 特定の商品だけカート追加制御を行いたい
カート追加のタイミングでカートのバリデーションを発火させることはできますよ。

商品詳細ページを開いてから、管理画面で商品の在庫を0にしたり非公開にしてから、カート追加してみてください。
バリデーション実行されると思います。


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

KimK
投稿日時: 2025/4/4 16:59
対応状況: −−−
半人前
登録日: 2024/12/5
居住地:
投稿: 23
Re: 特定の商品だけカート追加制御を行いたい
スミマセン、勘違いしておりました。
どうしてもカートにてバリデーションを組み込んだのでカート追加時にモーダルを表示するのではなく、カートページに遷移させたいのです。下記のようになっているのですがgiftIdと一致する場合はカートに入れて進むになってます。
ここを押下したらカートに遷移して欲しいですおそらくJSが絡んでいるとは思いますが、JSを触らずに出来る方法があれば教えて欲しいです。
{% if Product.id == giftId %}
<button
type="submit"
class="ec-blockBtn--action add-cart ec-btnRightArrow ec-btnwhiteArrow {{ totalPrice < 4000 ? 'disabled' : '' }}"
title="{{ totalPrice < 4000 ? '4,000円以上購入された方のみとなります' : '' }}"
data-totalPrice="{{ totalPrice }}">
<div>
<img src="{{ asset('assets/img/common/icon_cart-white.svg') }}" alt="">
</div>
{{ 'カートに入れて進む'|trans }}
</button>
{% else %}
<button
type="submit"
class="ec-blockBtn--action add-cart ec-btnRightArrow ec-btnwhiteArrow">
<div>
<img src="{{ asset('assets/img/common/icon_cart-white.svg') }}" alt="">
</div>
{{ 'カートに入れる'|trans }}
</button>
{% endif %}
h_tanaka
投稿日時: 2025/4/4 17:04
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1993
Re: 特定の商品だけカート追加制御を行いたい
手っ取り早いのは js でモーダル表示しているところをカートページに遷移するよう書き換える方法です。

js 触らず、ということでしたら、 js が発火しないようにすれば カートに入れるボタンで POST されるかと思います。


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

KimK
投稿日時: 2025/4/4 17:09
対応状況: −−−
半人前
登録日: 2024/12/5
居住地:
投稿: 23
Re: 特定の商品だけカート追加制御を行いたい
承知いたしました。
助言いただきありがとうございます。
助かりました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は106,075名です
総投稿数は112,575件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2330
5
umebius
2085
6
h_tanaka
1993
7
yuh
1900
8
mcontact
1702
9
red
1582
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
805
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
balisys
502


ネットショップの壺

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

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