welcartを使用してwordpressのECサイト化を行うポイント

ワードプレスをECサイトを組み込みたいとの要望は良くいただきます。

ECサイトならばECCUBEなどが有名で、それを別に立ち上げても良いのですが、

そうすると、既にあるワードプレスページのCSSをECCUBE用にコーディングしなおしたり、

更新する際にはどちらも更新しなければいけなかったり、色々と面倒くさい作業があります。

それならば、ワードプレスにECサイトのプラグインを入れるのがてっとり早くもあり、

その際、いくつかの有名なプラグインが既にあります。

その中で、今回は「welcart」をカスタマイズして既存テーマに落とし込む際のポイントと、

一緒に使うべきプラグインをいくつか紹介します。

ブログの記事として扱われてしまう。

実際に導入し、アイテムをいくつかアップしてみると、

ブログ記事一覧にひっかかってしまう事があります。

理由としては、商品の投稿ページ自体は投稿タイプが「post」を使用しているからです。

システム設定の、「ループ表示の際、商品を分離して表示する」をチェックすれば解消されるのですが、

中には、プラグインやテーマの利用しているモジュールからは除外されない時もあります。

しかし、投稿タイプは「post」な物の、カテゴリーがデフォルトで「商品」をチェックしてくれています。

なのでそういった場合は、そのプラグインの該当フィルターフックなどで既存のループを、

カテゴリースラッグが「item」を取り除いたループに変更する事が必要です。

 

wp_queryにカテゴリーの除外条件を加える場合、IDで指定する必要があるので、

slugからカテゴリーIDをまず取得します。

$cat = get_category_by_slug(‘item’);

$cat_id=$cat->term_id;

 

これを、wp_queryの中に

‘category__not_in’=>$cat_id

をいれた上で記事リストを取得する事で、

 

ブログの中から商品を抜いた一覧を表示できます。

 

基本的に、welcartとブログを共存させる部分のほとんどの修正は、

この、カテゴリースラッグからIDを取得してIDを抜くか、

カテゴリースラッグが一致するかどうかをチェックするかの修正でやっていくコトになります。

例えば商品ページ一覧を検索結果に作りたい場合も、同様です。

デフォルトの商品ページがいまいち冴えない

デフォルトの商品ページのままだと、いまいちさえない部分がいくつかあります。

メイン画像とサブ画像の間に商品説明などが入っていたり、

サブ画像の扱いがいまいちであったり。

これを修正するには、プラグインを直接編集したくなるところですが、

functionでできるだけまとめてしまいたいのが本音です。

荒業を使えば、str_replaceでDivごと持っていくと言う方法もあります。

フィルターとしては、「usces_filter_single_item_inform」が商品ページのHTMLを吐き出しているので、

これにフックして、書き換える、と言う場合、

特に、少しだけ書き換えるならそんな荒業でOKです。

例えばですが、以下のようにitemsubimgの欄を切り取って、itemimgの下に付ける、と言う場合です。

$pattern1 = ‘/’ . “(<div class=\”itemsubimg\”>)([^<]*)(<a.[^>]*><img.[^>]*><\/a>.)*([^<]*)(<\/div>)”.”/su”;
$pattern2 = ‘/’ . “(<div class=\”itemimg\”>)(.)(<a.[^>]*><img.[^>]*><\/a>.)*(<\/div>)”.”/su”;
if(preg_match_all($pattern1, $content, $m1, PREG_OFFSET_CAPTURE)){
if(preg_match_all($pattern2, $content, $m2, PREG_OFFSET_CAPTURE)){

$num=0;

$content = substr_replace($content, “”, $m1[0][$num][1], strlen($m1[0][$num][0]));

$content = substr_replace($content, “<div class=’itemimagelist’>”.$m2[0][$num][0].$m1[0][0][0].”</div><div class=’exitem’>”, $m2[0][$num][1], strlen($m2[0][$num][0]));
}
}

 

あるいは、大幅に変える場合は、テンプレートを読み込んでいる部分自体をフックして、別のテンプレートを読み込ませた方がスマートです。

usces_template_path_single_itemがアイテムページのテンプレートをセットしているフィルターなので、別のURLに書き換えると、

独自のテンプレートを使用できます。

カスタムフィールドがやや面倒なのでカスタムフィールドテンプレートを導入すると便利

ECサイトでは特に、商品の重さや寸法など、商品の度に出てくる項目があります。

welcartの場合、カスタムフィールドのタイトルの語頭に、「wccs_」と付けるとそれが付いたものが自動で挿入されます。

ただ、これだけではやや不便で、

毎回項目を選択して、手入力をしていかなければなりません。

 

そこで、カスタムフィールドテンプレートを導入し、初めからテンプレートを作っておくと、

ドロップボックスなども使用できてとても便利です。

 

これに合わせて、カスタムフィールドテンプレートの「cftsearch」機能も使用する事で、

実は、cftsearchに検索として持たせられる項目は、範囲検索も可能な為、

例えば価格帯の範囲検索などもできるようになります。

 

値の範囲での検索をしたい場合は、下記のような記述を用います。

format側

[○○]

searchType=array(‘text’,’text’);
searchOperator = array(‘>=’, ‘<=’);

 

template側

[○○][1]円から[○○][2]円まで

 

これで、テキストボックスに数値を入力すれば検索ができるようになります。

 

 

重さなどの範囲で検索をしたい場合、とても便利です。

wordpressをブログと併用してECサイト化するなら

welcartを用いてECサイト化するなら、

プラグイン自体は完成されている物の、ブログと併用するならば

やはりPHPは最低でもガシガシ使っていく必要がある印象でした。

 

ただ、そこさえ超えてしまえば、表示部分はシンプルでわかりやすい構造なので、

カスタマイズもやりやすそうです。

 

データのダウンロード販売には対応していないので、

それはまた後日別のプラグインを紹介します。

 
Share on Facebook

見積もり・問い合わせフォーム
ガチ株式会社へのお仕事ご依頼・お見積もりの問い合わせはこちらから送信ください。
ホームページ作成
PHP制作依頼
wordpressカスタマイズ依頼
システム開発見積もり依頼
飲食店販促サービス問い合わせ
求人
会ってみたい!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です