バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 商品カテゴリによって、最低販売個数を変更したい。

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
burton
投稿日時: 2018/11/10 18:51
対応状況: −−−
新米
登録日: 2018/10/10
居住地:
投稿: 5
商品カテゴリによって、最低販売個数を変更したい。
商品カテゴリのIDを条件にして、商品詳細ページで表示される最低販売個数を変更したいです。

例.)
商品カテゴリIDが1の商品を表示するときは、最低販売個数を1個からにする。
商品カテゴリIDが2の商品を表示するときは、最低販売個数を2個からにする。


となるようにしたいです。



AddCartType.phpの58行目
if ($Product->getStockFind()) { 以下の部分に

$category_id = $app['request']->get('category_id');
if ($category_id == 17){
と追加して
カテゴリIDによって表示が変わるようにできないかと思ったのですが、
「システムエラーが発生しました」となります。

ちなみに
$category_id = $app['request']->get('category_id');
の部分だけを削除すると、
else文の方は表示されるようになります。

書き方が間違っているのでしょうか。
ご教授願います。


以下、現状のAddCartType.php

58行目〜
public function buildForm(FormBuilderInterface $builder, array $options)
{
/* @var $Product \Eccube\Entity\Product */
$Product = $options['product'];
$this->Product = $Product;
$ProductClasses = $Product->getProductClasses();

$builder
->add('mode', 'hidden', array(
'data' => 'add_cart',
))
->add('product_id', 'hidden', array(
'data' => $Product->getId(),
'constraints' => array(
new Assert\NotBlank(),
new Assert\Regex(array('pattern' => '/^\d+$/')),
),
))
->add('product_class_id', 'hidden', array(
'data' => count($ProductClasses) === 1 ? $ProductClasses[0]->getId() : '',
'constraints' => array(
new Assert\Regex(array('pattern' => '/^\d+$/')),
),
));

if ($Product->getStockFind()) {
$category_id = $app['request']->get('category_id');
if ($category_id == 17){
$builder
->add('quantity', 'integer', array(
'data' => 1,
'attr' => array(
'min' => 1,
'maxlength' => $this->config['int_len'],
),
'constraints' => array(
new Assert\NotBlank(),
new Assert\GreaterThanOrEqual(array(
'value' => 1,
)),
new Assert\Regex(array('pattern' => '/^\d+$/')),
),
))
;
}else{
$builder
->add('quantity', 'integer', array(
'data' => 2,
'attr' => array(
'min' => 2,
'maxlength' => $this->config['int_len'],
),
'constraints' => array(
new Assert\NotBlank(),
new Assert\GreaterThanOrEqual(array(
'value' => 2,
)),
new Assert\Regex(array('pattern' => '/^\d+$/')),
),
))
;
}
if ($Product && $Product->getProductClasses()) {
if (!is_null($Product->getClassName1())) {
$builder->add('classcategory_id1', 'choice', array(
'label' => $Product->getClassName1(),
'choices' => array('__unselected' => 'ご用途をお選びください') + $Product->getClassCategories1(),
));
}
if (!is_null($Product->getClassName2())) {
$builder->add('classcategory_id2', 'choice', array(
'label' => $Product->getClassName2(),
'choices' => array('__unselected' => 'タイプをお選びください'),
));
}
}

$builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) use ($Product) {
$data = $event->getData();
$form = $event->getForm();
if (!is_null($Product->getClassName2())) {
if ($data['classcategory_id1']) {
$form->add('classcategory_id2', 'choice', array(
'label' => $Product->getClassName2(),
'choices' => array('__unselected' => 'タイプをお選びください') + $Product->getClassCategories2($data['classcategory_id1']),
));
}
}
});
}
}


---------------------------------------------------------

[EC-CUBE] 3.0.16(サーバーの簡単インストールを利用)
[レンタルサーバ] Xサーバー
[OS] Linux(詳細非公開となっています)
[PHP] 7.0.30
[データベース] MySQL5.7
[WEBサーバ] nginx
[ブラウザ] Chrome
[導入プラグインの有無] ポイントプラグイン、商品おすすめ順プラグイン、カテゴリコンテンツプラグイン(すべて開発は㈱ロックオン)
[カスタマイズの有無] トップページのレイアウト編集。商品詳細ページの関連カテゴリ、商品コードを非表示。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,711名です
総投稿数は109,948件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1285
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.