- 2018.06.20
- EC-cube
【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内の同様の箇所を変更することで対応しました。