2011/04/28

スマートフォンのユーザーエージェント

以下の文字列がUAに入っていれば、スマートフォンと判定できる

  'iPhone',         // Apple iPhone
    'iPod',           // Apple iPod touch
    'Android',        // 1.5+ Android
    'dream',          // Pre 1.5 Android
    'CUPCAKE',        // 1.5+ Android
    'blackberry9500', // Storm
    'blackberry9530', // Storm
    'blackberry9520', // Storm v2
    'blackberry9550', // Storm v2
    'blackberry9800', // Torch
    'webOS',          // Palm Pre Experimental
    'incognito',      // Other iPhone browser
    'webmate'         // Other iPhone browser

2011/04/19

モバイル振り分け

#携帯からのアクセスなら/mobile/サイトへ302
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|DDIPOKET|UP.Browser|J-PHONE|Vodafone|SoftBank)
RewriteRule ^$ /mobile/ [R=302,L]

#/mobile/にPCからアクセスがあった場合トップページへ302
RewriteCond %{REQUEST_URI} /mobile/
RewriteCond %{HTTP_USER_AGENT} !^(DoCoMo|KDDI|DDIPOKET|UP.Browser|J-PHONE|Vodafone|SoftBank)
RewriteRule ^.*$ / [R=302,L]

わりと使うのでメモ。
忘れがちな最後の改行。

2011/04/14

必須フィールドにアラート

oscommerceの商品登録の際に、商品の数量と商品の型番のフィールドを
必ず埋めてもらうように伝えているが、どうも面倒がって入れてくれない。
全て入力されてこそSEO的にもカスタムショッピングカート的にも
100%の力を発揮するのに、、

ということで、入力しないと進めないように細工するか。
こういうことはjavascriptでも使う。

まずはアラートを出すところを作る。
function checkIfFilled() {
    if (document.forms[0].products_quantity.value=='') {
        window.alert('商品の数量が入力されておりません。');
        return(false);
        }
    if (document.forms[0].products_model.value=='') {
        window.alert('商品の型番が入力されておりません。');
        return(false);
        }
    return(true);
}
商品の数量はproducts_quantity 商品の型番はproducts_modelなので
こんな感じで良いかと。

これをcheck.jsというファイルにして保存。そしてアップロード。
(管理画面はEUCなので日本語混じったjsファイルなのでこれもEUCで保存。)
これは素直に/admin/categories.phpのhead内に記述。

次はフォーム側
/admin/function/html_output.phpに記述がある
// Output a form
  function tep_draw_form($name, $action, $parameters = '', $method = 'post', $params = '') { 〜〜〜〜〜〜〜

これのいちばん後ろあたりに  onsubmit="return(checkIfFilled());" と入れたい。
    $form .= '>';
    return $form;
  }
 これを
    $form .= ' onsubmit="return(checkIfFilled());">';

    return $form;
  }
 こんな感じにして完了。

2011/04/07

IEのセンタリング

センタリングするIDを#containerだとする。
CSSでは
#container {
width: 800px;
margin-left:auto;
margin-right:auto;
}
としていたが
確実なのは左にやって50%戻して来る。

#container {
    left50%;
    margin-left-400px;
    positionabsolute;
    width: 800px;

2011/03/28

GOOGLEショッピングフィード

Googleのショッピングフィードにoscommerceのデータを入れる事が出来ないかと思案。
まずは、何たるかを調べる。
http://mincs.net/blog/2010/11/12/how-to-index-item-data-for-google-shopping/

フィード出来る項目と仕様、詳細はgoogle marchant centerにて

要するに、アカウントつくって
商品情報をGoogleのフィードデータに合わせたかたちの
タブくぎりのtxtデータをアップロードすれば良いそうだ。

データベースから商品データをcsvなどで吐き出してくれれば楽なのに、、
とか探してたらこんなのがあったが、すこし書き換えないと使えない。

ダウンロードしたフォルダをアップロードするだけって書いてるけど使えない。
ソース追ってみたらパスが通ってない記述と無いファイルを指定している箇所を発見。

まあincludeとかrequireしてるところ。

無いファイルは以下の通りに対応。
jcode.phpsを../catalog/includes/languages/japanese/以下から
../admin/includes/以下にコピー
(もしくはdb.phpの指定箇所を書き換え)

あとは吐き出してもらうデータを書き換えて、、
以下は必須項目。


必須属性 属性の説明
id [id] 商品を識別するID。半角英数字で入力。店舗で使用している品番でOK
商品名 [title] 商品名を入力。半角 70 文字まで。
商品リンク [link] 商品ページの URL を http:// から指定。
価格 [price] 商品の販売価格を半角数字で入力。
商品説明 [description] 商品の説明文を入力。半角 10,000 文字まで。
状態 [condition] 商品の状態を「新品」(new)、「中古品」(used)、「再生品」(refurbished)のいずれかを指定。

以下22項目がオプションとして登録できるが
  • GTIN [gtin]
  • ブランド [brand]
  • 製品番号 [mpn]
  • 商品画像リンク [image_link]
  • 商品カテゴリ [product_type]
  • 在庫状況 [availability]
  • 在庫数 [quantity]
  • 送料 [shipping]
  • 税金 [tax]
  • 仕様 [feature]
  • オンライン限定 [online_only]
  • 製造者 [manufacturer]
  • 有効期限 [expiration_date]
  • 搬送重量 [shipping_weight]
  • ジャンル [genre]
  • 目玉商品 [featured_product]
  • 色 [color]
  • サイズ [size]
  • 製造年 [year]
  • 著者 [author]
  • 版 [edition]

商品画像リンクは是非とも必須で入れておきたい。

以上の項目を書き換えて吐き出されるcsvデータを
ダウンロードして、タブ区切りのtxtデータで保存。
手動で更新するのが今のところ確実かな。