2007年02月21日

注文の確認メール(メモ)

注文の確認メールを送信しているのは、
include/classes/order.php の function send_order_email
なのですが、所謂よくあるショッピングカートのような本文のテンプレートはなく、モジュールから本文内容を組み立てているみたい。

他のショッピングカートになれていると、 本文のテンプレートに<%shop_name%>とかタグを入れたところが書き換わるだけで、 直感的にメールの編集ができるのですが、Zen Cartの場合は、多彩な決済方法や、モジュールに対応するため、 やや複雑な仕様になっています。

特に、今回はポイントを使用して購入した場合の合計金額(支払う金額)を変更しなければいけないので、かなり大変です。 includeやら、requireなどから、たどってorder_totalを作っているところまでさかのぼり、 そこにポイントの使用に関する部分を差し込みます。

※現段階で、まだ完全な状態じゃないので、詳細は後日!

MonotaROブランド ショップ

2007年02月15日

Zen Cart ポイントシステム

Zen Cart にありそうで無い、あったら便利なポイントシステムの導入。

とりあえず、購入金額に一定のポイントを貯める仕様で、やってみます。

  1. データベースに「ポイントカード」テーブルを追加( zen_points_cards )
    ポイントカードテーブルに6つのフィールドを設定
    1.id レコードの通し番号( auto_incrementをつけてindexする)
    2.会員番号 customers_id
    3.ポイントチェック 該当注文の精算が完了しているかどうかのフラグ用
    4.獲得ポイント 該当注文で獲得するポイント
    5.注文ID orders_id
    6.注文日時 ポイント獲得日時(注文時刻と、精算完了時刻で更新する)
  2. カート画面で、獲得できるポイント数を表示する
    「今回のお買い物で獲得できるポイント:●●Pt」
  3. 注文完了画面に「確定ポイント」と「未確定ポイント(今回のポイントを含む)」表示
  4. マイページにポイント獲得履歴「ポイント通帳」
  5. カート内にポイント使用できる入力フォームの設置
  6. 管理画面で、入金の確認と同時に未確定の獲得ポイントを有効にする
    ポイントチェックにフラグを立てる
  7. 管理画面で、ポイントレートの変更ができるようにする

いじくるポイントは、カートの決済部分に関わる部分なので、細心の注意を払いつつ作業します。

主にいじるファイルは、

  • define_queries.php
    よく使うクエリーを呼び出すのに便利(・・・ていう解釈でいいのかな?)
    ポイントカードテーブルのSELECT文を登録しておきます。

    例)define_queries.php の最終行に追加↓↓
    define('SQL_POINT_CARD', "SELECT *
                              FROM " . TABLE_POINTS_CARDS . " pc
                              WHERE pc.customers_id = '%s'
                              ORDER BY pc.id asc ");
  • includes/modules/checkout_process.php
    注文完了のところで、ポイントカードテーブルにポイントを追加します。
    本当は、includes/modules/(custom_template)/checkout_process.php
    にファイルをコピーしてオーバーライドします。
  • カート内でのポイントの表示は、それぞれテンプレートファイルを加工します。
    define_queries.php で作ったクエリーを利用すれば、簡単だと思います。

今日は、この辺まで。。。
なお、ポイントシステムに関しては、有料で提供されている業者様もいらっしゃるので、作業に不安な方は、 業者様に依頼するのが安心かもしれません。

 

MonotaROブランド ショップ

2007年02月14日

商品の並び替え 2a とか 3d とか。。。

フォーラムの引用ですみません。

たとえば商品一覧で、

1. 商品画像
2. 商品名
3. 値段

が表示されているとします。

それで、「商品名」で昇順で表示させる場合、 「商品名」は2番目の項目なので、「商品リストのデフォルトソート順」に「2a」と入力します。 (値をなにも入力しないと「2a」状態です。)
「2a」の「a」は「ascending」の「a」という意味だと思います。降順にしたい場合は、 「2d」です。この「d」は 「desending」のdだと思います。

こういう仕組みになってます。わかりにくいですね ^^;

wrote from: 志田様
http://zen-cart.jp/bbs/viewtopic.php?p=7605#7605

商品一覧に表示する項目があって、それの順番に1,2,3, と番号が割り当てられて、a,d,がそれぞれ昇順(a)、降順(d)となるわけ。

ややこしい気がするけど、確かにこの方法なら、 柔軟なカスタマイズにも対応できるというわけですね。

MonotaROブランド ショップ

2007年02月13日

一括相互リンク

静的HTMLで、相互リンクできるサイト。
大体が、Yomi-search系です。

MonotaROブランド ショップ

2007年02月09日

ZEN CART 静的なURLにする その2

ZenCart URL書き換えパッチ日本語版
http://gato.intaa.net/ZenCart/url_rewrite_patch_jp.html

ZenCartの動的なURLを静的なURLに変更してみてその修正点。

基本的にトップページへの戻りは、動的のままなので、各所をトップのURLに戻るように変更する必要がある。

あと、問い合わせフォームのテキストエリアの出力形式が変わっているので、テンプレートファイルをそれに合わせるか、 html_output.php を変更(該当部分をv1.3のものに戻す)する必要がある。

がとらぼさんのパッチ

////
// Output a form textarea field
  function zen_draw_textarea_field($name, $wrap, $width, $height, $text = '', $parameters = '', $reinsert_value = true) {
    $field = '<textarea name="' . zen_output_string($name) . '" wrap="' . zen_output_string($wrap) . '" cols="' . zen_output_string($width) . '" rows="' . zen_output_string($height) . '"';

    if (zen_not_null($parameters)) $field .= ' ' . $parameters;

    $field .= '>';

    if ( (isset($GLOBALS[$name])) && ($reinsert_value == true) ) {
      $field .= stripslashes($GLOBALS[$name]);
    } elseif (zen_not_null($text)) {
      $field .= $text;
    }

    $field .= '</textarea>';

    return $field;
  }

デフォルトのソース

/*
 *  Output a form textarea field
 */
  function zen_draw_textarea_field($name, $width, $height, $text = '', $parameters = '', $reinsert_value = true) {
    $field = '<textarea name="' . zen_output_string($name) . '" cols="' . zen_output_string($width) . '" rows="' . zen_output_string($height) . '"';

    if (zen_not_null($parameters)) $field .= ' ' . $parameters;

    $field .= '>';

    if ( (isset($GLOBALS[$name])) && ($reinsert_value == true) ) {
      $field .= stripslashes($GLOBALS[$name]);
    } elseif (zen_not_null($text)) {
      $field .= $text;
    }

    $field .= '</textarea>';

    return $field;
  }

微妙だけど、がとらぼさんの方(v1.2)は、 引数の2番目に $wrap とかいうのがあります。引数の最後だったら問題ないのですが、2番目なのでv1.3の場合は、必須の変更点ですね。

変更しないと、 テキストエリアの中にパラメータがソースのまま表示されます。w

 

MonotaROブランド ショップ

2007年02月08日

ZEN CART 静的なURLにする

ZenCart URL書き換えパッチ日本語版
http://gato.intaa.net/ZenCart/url_rewrite_patch_jp.html

とりあえず、上記のパッチは、v1.2対応なので、そのままでは、v1.3で動かないかも(もしくはエラーでまくる可能性アリ)

上記のページに対応方法というか、仕組みが記載されているので、同じ様に対応する部分をv1.3に置き換えて、修正してみましょう。
v1.2では、うまくいってたんで、多分同じ感じで大丈夫だろう、きっと。うん。

気をつけるところ

  • rewriteルール
  • rewriteから元URLへの戻しルール
  • URL生成しているphpの出力
  • カスタマイズしちゃってるページでの反映
  • 最後に押せるリンクは全部押してみろ!w
MonotaROブランド ショップ

2007年02月07日

Yahoo!ウェブ検索結果からサイトが消えた!

Yahoo!ウェブ検索からサイトが表示されなくなるという事は、通販サイトなどでは、危機的な状態ではないでしょうか。

現在、日本国内の検索エンジンシェアNo.1は、まだまだYahoo!JAPANです。特に通販などのEコマースサイトでは、 消費者の7割以上がYahoo!JAPANからのウェブ検索でサイトに訪問してきています。

SEOでGoogle1番にランキングされているけれど、 Yahoo!JAPANの検索結果から消えてしまった為に売り上げが1/3まで落ち込んでしまったケースもあります。

では、Yahoo!JAPANのウェブ検索結果は、どのように表示されているかというと。。。

  1. 米YSTのデータベース
  2. Yahoo!カテゴリに登録されているサイト

↓Yahoo!JAPANからの回答

「ウェブ検索」に表示される結果については、Yahoo! Inc.が運営するロボット型
全文検索サービスが独自に収集したデータベースによるもので、その表示順、
キーワード設定はYahoo! Inc.のシステムに準じたものとなっています。

「ウェブ検索」に表示される部分のデータベースは自動的に更新されています。
こちらの更新時にお客さまのサイトにアクセスできないなど、何らかの問題が
発生した場合、登録が外れてしまう場合もございます。

なお、こちらは上記にてご案内させていただきましたように、Yahoo! Inc.に
よって運営されているデータベースとなりますので、個々の調査およびご質問への
回答はいたしかねます。

また、キーワードによって検索結果に表示されるサイト一覧は、そのキーワードを
含むすべてのページが検索結果に表示されることを保証するものではありません。

「ウェブ検索」の検索結果にサイトが表示されなくなった場合は、次のヘルプ
ページもご覧ください。

◇「ウェブ検索」の検索結果に表示されなくなりました
http://help.yahoo.co.jp/help/jp/search/indexing/indexing-04.html

なお、最も「ウェブ検索」に掲載される可能性の高い方法は、Yahoo!カテゴリに
掲載していただくことです。以下のヘルプページで、Yahoo!検索の検索結果に
表示される方法について詳しくご案内していますので、よろしければご参照ください。

◇自分のサイトを検索結果に表示したいときは(サイト管理者向け)
http://help.yahoo.co.jp/help/jp/search/indexing/indexing-01.html

Yahoo!カテゴリへの掲載を希望される場合は、サイト掲載に関するガイドページを
ご用意していますので、こちらをご参照のうえ、お申し込みをご検討くださいます
ようお願いいたします。

◇Yahoo!カテゴリへのサイトの登録や変更、削除とスポンサーサイト掲載方法
http://dir.yahoo.co.jp/pg/submit/guide/index.html

これからもYahoo! JAPANをよろしくお願いいたします。

もし、米YST(Yahoo!)の検索結果から、表示されなくなっていたら、 米Yahoo!Searchからペナルティを受けているかもしれません。

米Yahoo! Search のお話です。
Yahoo! の ペイドインクルージョン(PFI) "Site Match" を利用しているのに1週間待ってもインデックスに復活しないのであれば、また質問者自身にスパムをした覚えがあるのであれば、 きっとそれは検索エンジンスパムとしてペナルティーを与えられたのでしょう。

Yahoo! Search のインデックスに再度掲載するためには、 まずあなたのWebサイトから検索エンジンスパムに該当する部分を完全に削除して下さい。その上で、feedback@yahoo.com 宛に検索エンジンスパムに該当する部分を削除したことともう1度掲載したい旨を伝えて下さい。文章は英語で記述する必要があります。

MonotaROブランド ショップ

2007年02月06日

Zen Cart ポイントシステム (参考)

osCommerceの拡張機能に関して
http://www.bitscope.co.jp/search/html/tep-j-general/msg01022.html

私の場合はこんな感じで作りました。

・管理画面でベースとなるポイントのパーセンテージを決定
・ポイントは決済方法にごとにパーセンテージを変えられる
・特定の期間、特定の商品ごとにパーセンテージを変えられる
・顧客別でポイントの履歴を確認できる
・購入履歴でポイントを差し引いた金額を表示

・ショップ画面でログオン後、ポイントの残高が確認できる
・ポイントの履歴を銀行の通帳のように確認できる
・商品ページでこの商品を買うとどれくらいポイントが付くのか確認できる
・お支払い方法の画面で持っているポイントをどれだけ使うか決定できる
・確認画面でポイントを差し引いた合計金額が確認できる
・購入確認メールでポイントを差し引いた金額が確認できる
・購入時に取得ポイントをデータベースに登録
・購入履歴でポイントを差し引いた金額を表示

> # そんなモジュールを作ったとしても、osCommerce本体に関わる部分が多くて、
> # 簡単に組み込むというわけにはいかないみたいです。

MonotaROブランド ショップ

Zen Cart にポイントシステム導入

今時のショッピングサイトといえば、お買い物ごとに貯まるポイントがあって当たり前。

そんなわけで(どんな?
Zen Cart にポイントシステムを導入してみようと思います。

導入するポイントシステムのポイントw

  • ポイントの計算方法
    ・買い物金額合計の%をポイント付加
    ・買い物金額●●円ごとにポイント付加
    ・商品ごとにポイント設定
  • 清算完了後にポイント確定
  • ポイントの使用方法
    ・使用ポイント入力方式(ソフマップ)
    ・ポイント一括使用方式
    ・一定額使用方式(ドコモポイント)
  • ポイントの有効期限
    ・発効日から●年間有効
    ・最終利用日から●年間有効
  • あと何か。。。
    ・例えば、マイレージと相互交換
    ・貯まっているポイントに応じて割引率アップ
    ・貯まっているポイントに応じてポイント付加率アップ

こんな感じでポイントシステムを構築予定 でわでわ

MonotaROブランド ショップ

2007年02月05日

商品ページのTITLE 「商品名:<サイト名>」にしてみる

管理ページ → 商品の管理 → (メタタグの定義)一番右端のボタン

タイトル、Meta(Keywords)、Meta(Description)の入力欄を適当に埋める。
※ここの入力欄が未記入の場合、設定が更新されない仕様のようです。

あと、TITLEに必要なのは、商品名と、サイト名なので、上のラジオボタンの設定を

商品名: Yes
タイトル: No
モデル: No
価格: No
定義済みタグライン: Yes

と、それぞれチェックして更新。これでOK。

MonotaROブランド ショップ