質問 > フロント機能 > 商品カテゴリによって、最低販売個数を変更したい。 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
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 [導入プラグインの有無] ポイントプラグイン、商品おすすめ順プラグイン、カテゴリコンテンツプラグイン(すべて開発は㈱ロックオン) [カスタマイズの有無] トップページのレイアウト編集。商品詳細ページの関連カテゴリ、商品コードを非表示。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |