ECCUBEで画像追加の最大数を10に増やす方法

ECサイトというものには様々ありまして、単なる食べ物販売とかなら、画像数も3枚もあれば十分ですが、カタログ販売サイトとなると、カタログの中身を載せる必要が出てくるので、5枚程度では足りません。

そういった場合を踏まえて、ひとまず10枚に増やしてみるというカスタマイズをご紹介します。
この記事は最終更新日から1年以上が経過しています。

データベースにフィールドの追加

155

データベース操作は、phpMyAdminの場合で説明します。
アカウントにログイン>EC-CUBEのデータベース>上部メニューのSQLボタン
すると、上の画像のような画面になるので、以下を流し込んで実行ボタン。

ALTER TABLE dtb_products ADD COLUMN sub_title7 text;
ALTER TABLE dtb_products ADD COLUMN sub_comment7 text;
ALTER TABLE dtb_products ADD COLUMN sub_image7 text;
ALTER TABLE dtb_products ADD COLUMN sub_large_image7 text;
ALTER TABLE dtb_products ADD COLUMN sub_title8 text;
ALTER TABLE dtb_products ADD COLUMN sub_comment8 text;
ALTER TABLE dtb_products ADD COLUMN sub_image8 text;
ALTER TABLE dtb_products ADD COLUMN sub_large_image8 text;
ALTER TABLE dtb_products ADD COLUMN sub_title9 text;
ALTER TABLE dtb_products ADD COLUMN sub_comment9 text;
ALTER TABLE dtb_products ADD COLUMN sub_image9 text;
ALTER TABLE dtb_products ADD COLUMN sub_large_image9 text;
ALTER TABLE dtb_products ADD COLUMN sub_title10 text;
ALTER TABLE dtb_products ADD COLUMN sub_comment10 text;
ALTER TABLE dtb_products ADD COLUMN sub_image10 text;
ALTER TABLE dtb_products ADD COLUMN sub_large_image10 text;

これでデータベースの方は操作終了です。

管理画面での操作とPHPファイルの修正

次に、管理画面で設定変更しましょう。
EC-CUBE管理画面>システム設定>パラメーター設定
PRODUCTSUB_MAX10にして更新。

続いてPHPファイルの修正。
data/class/SC_product.php
736行目辺りに以下を追加。

,dtb_products.sub_title7
,dtb_products.sub_comment7
,dtb_products.sub_image7
,dtb_products.sub_large_image7
,dtb_products.sub_title8
,dtb_products.sub_comment8
,dtb_products.sub_image8
,dtb_products.sub_large_image8
,dtb_products.sub_title9
,dtb_products.sub_comment9
,dtb_products.sub_image9
,dtb_products.sub_large_image9
,dtb_products.sub_title10
,dtb_products.sub_comment10
,dtb_products.sub_image10
,dtb_products.sub_large_image10

ここまでやって、画像が表示されるようになります。もちろん、商品詳細ページのみですが。

画像が9枚目以降登録できない場合

これ、よくあるトラブルです。
どなた様もあるんじゃないでしょうか。

このトラブル、upload_max_filesizeの値が小さい場合、なってしまうそうです。
で、この値の変更はレンタルサーバーによってやり方が変わってきますので、調べて変更しましょう。

ちなみに、僕はサクラレンタルサーバーロリポップレンタルサーバーの両方変更経験があるわけで。
サクラサーバー:php.iniに max_file_uploads = 100 を追加
ロリポップ:ユーザー専用ページよりPHP設定から 20Mに変更

上記のやり方で双方とも10枚表示できるようになりました。
やり方はあってるかわかりませんが、登録できないときにはご参考下さい。

カスタマイズの後処理二つ

商品一覧ページにも10件の画像を表示したいので、PHPファイルを修正。
/data/class_extends/SC_Product_Ex.php
70行目付近に以下を追加。

,sub_title6
,sub_image6
,sub_large_image6
,sub_title7
,sub_image7
,sub_large_image7
,sub_title8
,sub_image8
,sub_large_image8
,sub_title9
,sub_image9
,sub_large_image9
,sub_title10
,sub_image10
,sub_large_image10

これで商品一覧ページにも10件の画像が表示されるようになります。

スマートフォンでは、画像数が増えたことにより、設定している横幅が足りなくなるため、10枚目以降が表示されなくなります。
というわけで、CSSの修正して表示されるようにします。
html/user_data/packages/sphone/css/products.css
344行目付近を以下に変更

#detailphotoblock div.moveWrap>ul.move {
width:2000px;
↓
width:4000px;

これでやっと完成となります。

総括

久しぶりにデータベースをいじったわけですが、こうしてSQL文を流し込むだけで追加可能というのはいいですね。
失敗が無いので危険性が多少は下がるのではないでしょうか。

他には画像が9枚目以降が登録できないトラブルも、なんとなく対処方が分かっていれば大丈夫かな、と。
いざという時は、サーバー会社に問い合わせるのが良いでしょう。

こんなところで完成したわけですが、この画像数を活かして、画像をページめくりのように見られる機能を次回、探したうえで紹介しようと思っています。
いちいち、拡大画面解除している場合ではないですからね。
無駄クリックを減らす努力というのはいいものです。

というわけで、以上となりました。

ブログ運営

株式会社ちょもらんま

https://qomolangma.jp