Blog

Magento導入顛末記、その2

Posted by admin at 19:08 日時 2011/09/03

その1からの続き。前回のラストで発見した解説記事に基づいて、フリガナの入力欄を追加するモジュールを作成してみたが、動かない。まずい変更をしたかと思って記事と全く同じコードにしてアップしてみるが、やはり動作しない。いきなりのモジュールの作成はハードルが高いかなと思ってさっさと諦めたが、モジュールの作成に必要なものがイメージできたのでよかった。

行き詰まったので、ここでフォーラムに駆け込み。PepMaq_Japan_FuriganaをMagento CE1.5系で使えるようにするアップデートスクリプトをGETした!

» PepMaq Japan Package14のPepMaq_Japan_Furiganaの不具合

ちなみに、config.xmlでモジュールのアップデートがあった場合、どこかでアップデートボタンを押してアップデート完了、ということはなく、随時反映されるようだ。

結局、フリガナが保存できなかった原因は、Magento CE1.4.2で顧客データのデータ構造が変更になったこと。詳しくはこちらの記事で詳しく開設されていますので要参照。

» Magento1.4.2以降の顧客データモデルの変更に関する注意

目下の問題も解決したので、ようやくデザインカスタマイズに移る。デザインカスタマイズに入る前に、テンプレートパスヒントを表示する。画面上で、各部分にどのテンプレートファイルが使われているかを見える化する機能だ。Magentoはフォールバック機能によって、使用しているテンプレートに必要なファイルがなかった場合、同じデザインパッケージのdefault→baseパッケージのdefaultとファイルを探しに行く。この機能によって、変更を加える部分だけファイルを用意すればいいのだが、同じ画面に複数のテンプレートのファイルが混じるという結果になる。当然どこでどのファイルが使われているのか把握するのが困難になるので、それを解消するのがテンプレートパスヒントというわけ。

で、テンプレートパスヒントをオンにするのにまた少しハマってしまった。場所は、システム→設定→高度な設定→開発者向けなのだが、Websiteを選択しないと出てこないので注意だ。

テンプレートパスヒントをオンにしたあと、app/design/frontend/default/blank と skin/frontend/default/blank をそれぞれ複製して、 app/design/frontend/[自分のパッケージ名]/blank と skin/frontend/[自分のパッケージ名]/blank に移し、新しいテーマパッケージを作る。作っただけで管理画面から選択可能になる。

まずロゴを変更してみる。ロゴ画像のファイル名とaltの変更はシステム→設定→全般→デザイン→ヘッダーで、テンプレートファイルからではないので注意。これはGoogleのホリデーロゴみたいなことをするためなのかな。

ロゴは変わったが、この時点でナビゲーションに何も出てこない。おかしいと思って調べたら、商品追加時に作成したカテゴリがルートカテゴリになっていた。しかし、ルートカテゴリは 店舗のルートとしてのみ使われ、トップナビゲーションには表示されないと記述がある。

» カテゴリ管理

商品が属するカテゴリをサブカテゴリに変更して無事ナビゲーションが表示された。次に、とりあえず投票などの使わないブロックを外したい。調べていたら、作成したテーマファイルにlocal.xmlという1つのレイアウトXMLファイルを作って管理する方法がいいらしい。

» The Better Way to Modify Magento Layouts

Magentoで親テーマから継承されているブロックを取り除くには、レイアウトXMLでこのように書けばいいらしい。

<layout><default><remove name="{block name}" /></default></layout>

そこで、とりあえず必要ないと思われるブロックを外した状態のlayout.xmlを作成した。お問い合せと投票とPaypalのロゴを外す。

<?xml version="1.0" ?>  <layout>      <default>          <remove name="left.permanent.callout" />          <remove name="right.permanent.callout" />          <remove name="paypal.partner.right.logo" />          <remove name="right.poll" />      </default>  </layout>

トップページを3カラムにしたい。これもやり方がすぐに分からなかったが、コンテンツ管理→PagesからHome pageを選択し、ページ情報→デザイン→Homepage でトップページのレイアウトを変更できた。

次にホームページの中身だ。とりあえず、商品が並んでいて欲しいのだが、初期状態では真っ白なのがMagentoのトップページ。ページ情報→内容の画面で、WYSIWYGエディタをオフにすると、Insert Widgetというボタンがある。これか!と思ったがこのボタンが動作しない。なんか困っている人がいるのでどうもバグっぽい気がするので、諦めて別の方法を探す。

ページ情報→デザイン画面の「XMLのレイアウトを更新する」欄で、XMLがコメントアウトされている。こんな感じ。

<!--<reference name="content">  <block type="catalog/product_new" name="home.catalog.product.new" alias="product_new" template="catalog/product/new.phtml" after="cms_page"><action method="addPriceBlockType"><type>bundle</type><block>bundle/catalog_product_price</block><template>bundle/catalog/product/price.phtml</template></action></block>  <block type="reports/product_viewed" name="home.reports.product.viewed" alias="product_viewed" template="reports/home_product_viewed.phtml" after="product_new"><action method="addPriceBlockType"><type>bundle</type><block>bundle/catalog_product_price</block><template>bundle/catalog/product/price.phtml</template></action></block>  <block type="reports/product_compared" name="home.reports.product.compared" template="reports/home_product_compared.phtml" after="product_viewed"><action method="addPriceBlockType"><type>bundle</type><block>bundle/catalog_product_price</block><template>bundle/catalog/product/price.phtml</template></action></block>  </reference><reference name="right">  <action method="unsetChild"><alias>right.reports.product.viewed</alias></action>  <action method="unsetChild"><alias>right.reports.product.compared</alias></action>  </reference>-->

ふうむ、CMSの各ページは、管理画面からレイアウトXMLを作成できるみたいだ。とりあえずコメントアウトを外して保存してみる。えーっと、何も表示されない。new.phtmlは新着商品の表示みたいだ。どこかにそういう設定があったか。

あった。商品情報の全般に、Set Product as New from DateとSet Product as New to Dateがある。

新着ではなくて、特定のカテゴリを持たせた商品がトップページに並ぶようにしたかったので、list.phtmlからページ送り部分を消したfeatured.phtmlを作成し、Home pageの「XMLのレイアウトを更新する」欄に以下の通り入力した。

<reference name="content">      <block type="catalog/product_list" name="home.catalog.product.list" alias="products_homepage" template="catalog/product/featured.phtml" after="cms_page">          <action method="setCategoryId"><category_id>6</category_id></action>      </block>  </reference>

いやあ…Magentoってかなり大変、だな…。この時点で丸1週間くらいかけているのだが、「とりあえず」やっていることばっかり。はたしてその3につづく…のか?


Share this entry