• 2018.06.20
  • EC-cube

【EC-cube2.13】規格の初期値を変更したい

【EC-cube2.13】規格の初期値を変更したいのイメージ画像

規格選択によるエラーを出さずにカートに入れたいという要望があったので調べてみました。

検索してみるとEC-cubeの開発コミュニティ内に、ec-cube2.11 規格のプルダウンの初期値 というページを見つけたのですが、バージョンが違うせいかコードが変わってましたので覚え書きしておきます。

SC_Product.phpを編集

/data/class/SC_Product.phpを編集します。

public function setProductsClassByProductIds($arrProductId, $has_deleted = false)
{
    foreach ($arrProductId as $productId) {
        $arrProductClasses = $this->getProductsClassFullByProductId($productId, $has_deleted);

//        $classCats1 = array();
//        $classCats1['__unselected'] = '選択してください';

        // 規格1クラス名
        $this->className1[$productId] =
            isset($arrProductClasses[0]['class_name1'])
            ? $arrProductClasses[0]['class_name1']
            : '';
244行目と245行目をコメントアウトします。これで1つ目の規格から「選択してください」がなくなります。

if (!$this->classCat1_find[$productId]) {
                $classcategory_id1 = '__unselected2';
            }
//            $classCategories[$classcategory_id1]['#'] = array(
//               'classcategory_id2' => '',
//               'name' => '選択してください',
//            );
            $classCategories[$classcategory_id1]['#' . $classcategory_id2] = $arrClassCats2;
        }
323行目から326行目をコメントアウトします。これで2つ目の規格からも「選択してください」がなくなります。

うまくいかないときは。。

まずプラグインを疑ってみましょう。

私の環境では会員ランクプラグインのコードが、該当ファイルよりも優先度高く設定されていたので、 /data/class/SC_Product.phpを編集しても変化がありませんでした。

会員ランクプラグインを使用していた今回の場合は、
data/downloads/plugin/ManageCustomerStatus/class/213/plg_ManageCustomerStatus_SC_Product_Ex.php内の同様の箇所を変更することで対応しました。