ホーム > タグ > EC CUBE

EC CUBE

サーバー移行後EC-CUBEで作ったサイトの表示がおかしい



社内サーバーでテスト中のEC-CUBEで作ったサイトの見た目が微妙におかしい。
という連絡を受けまして色々調べました。

結果にたどり着くまでには色々と苦労があったのですが、
要はdata/Smarty/template_cディレクトリに古いファイルが残ってたのが原因でした。
ということでdata/Smarty/template_c配下をばっさりと消去して無事解決しました。

しかし、なぜtemplate_cに古いファイルが入ってたのか、
移行前はそんな問題なかったのにと不思議に思い
移行時の手順を思い出してみました。

破損ファイルが含まれているかもしれないディレクトリ全体をコピーしてくるよりは
Subversionで管理されているファイルに関しては、ある程度の整合性は保障されてるかなと思い、
まず、新しい環境で最新リビジョンをチェックアウトしてから、
管理外のファイルだけをrsyncを駆使してコピーしました。

ここで気づきました。
要はSubversionにtemplate_cの中の古いファイルがコミットされてたのです。
つまりチェックアウト時に古いファイルが配置されてしまっていたのです。
サーバー側のファイルはアップデートしかしませんから、
リポジトリより実際のファイルが新しい分には問題が出なかったわけですね。

サーバー移行時にはキャッシュを消しましょうなんて
常識的なことを忘れていたため、30分も無駄にしてしまいましたorz

EC-CUBEで商品編集時に編集できない項目がある

商品情報編集ページで編集できない項目がいくつかあるよとお客様から問合わせが。

実際に見てみると確かに、商品情報新規登録ページには存在する「商品コード、通常価格、販売価格、在庫数」の4つの項目が、商品情報編集ページには見当たりません。
商品コードはともかく、他の数が後から変更できないのは痛すぎます。(EC-CUBEでは商品コードも主キーではなくただの文字列扱いだったはずで全部編集できてもいいはず。)

ということでEC-CUBEのバグなのか仕様なのか調査してみましたが、どうも仕様みたい。

ソースを読んでみるとどうも「商品に規格が関連付けられている場合に4つの項目をを表示しない」ようになっている様子です。

ん?と思って、規格登録のページ(商品編集ページのリンクと並んで表示される「規格」のリンク先)をブラウザで見てみると、そこで4つの項目が規格ごとに編集できるようになってました。

そりゃそうですよね。
同じ商品でも規格の違い、例えば、おまけの有る無しや、色違いなどで、在庫数や価格が違うのは当たり前ですからね。
これを、色んな規格の数字を1つの数字の入力だけで編集なんて論理的に無理です。まぁ、無理すれば(=妙な仕様にすれば)やれますけどそれじゃあ使いづらいですからね。

ということで、商品編集で4つの項目が出ないのはバグではなく仕様でした。
その4つの項目を編集するには、規格登録のページから規格ごとにやってくださいってことです。

この程度のことくらい把握しとけよ>自分

EC CUBE高速化 - 規格編集画面

EC CUBEでは同じ商品の色違いやサイズ違いなどが「規格」という概念で扱いやすくなってるのですが、(「規格」が無いと同じ商品なのに色違いなどで別々に商品登録するハメになったり、買う側も閲覧が不便になるなどということが起こりえます)
商品数や規格数が増えてくると規格編集ページの表示にものすごく時間がかかるという話です。

最近、会社の人がEC CUBEで構築したショッピングサイトに一生懸命商品を登録していたのですが、規格編集のページの表示ができなくなったという報告を受けて調査してみました。

すると商品数800以上、規格数1000以上の状態で、規格編集のページの表示に数分掛かるようになっていました。

サーバにログインしてtopコマンドを打ってみると、mysqlの負荷が高いことが判明。

とりあえず、いくつかの商品関連のテーブルのキーになる可能性のある項目にインデックス張ってみると(EC CUBEの初期状態ではさほどDBのチューニングはされていない感じです)、処理時間が3分の1程度になりました。
まぁ、数分の3分の1 = 数十秒なのでまだまだ全然ダメです。

ということで、DBのチューニングだけでは解決しないっぽいので、PHPのソースの中に埋め込まれているSQL文を見てボトルネックを探すことに。

するとありました。いかにも遅そうなSQL文が。

規格組み合わせ一覧の取得をするfunctionの中に、ビューとサブクエリとJOINを同時に含むクエリがありました。

色々と高速化する方法は思い浮かぶのですが、面倒なのでとりあえずググってみたら、冒頭のページを発見!

とりあえずそのままコピペしたら問題なく動作し劇的に早くなりました。(1秒以内)

バージョンは1.3.4です。

EC CUBEでmobileフォルダ(携帯用フォルダ)の文字化けの問題

現在、会社の仕事のほうでEC CUBEを使ったショッピングサイトを4サイトほど同時進行で作成しております。

とりあえずその中の1サイトの本番運用を開始したわけなのですが、本番環境にていきなり携帯電話向けの全てのページで文字化けが発生しました。もちろんすぐに修正したのですが、同じ問題でお悩みの方のためになればと思い、文字化けに至った経緯と解決法を書いておきたいと思います。


EC CUBEのインストール方法

EC CUBEをインストールしてみました。
以下のアドレスで見ることができます。
http://peta.okechan.net/ecc/

仕事でECサイト構築したりなどやってる訳で、主にZen Cartをカスタマイズして使用しているのですが、どーもいまいちデザイナさん受けが良くない。
Zen Cartのソースを見たことがある人なら分かると思いますが、特に何かのテンプレートエンジンを採用してる訳ではなく、MVCモデルで言うところV部分のソースが、ゴリゴリとphpとhtmlが混ざった状態で書かれています。

トップページ > タグ > EC CUBE

検索
フィード
メタ

ページの最初に戻る