ラベル oscommerce の投稿を表示しています。 すべての投稿を表示
ラベル oscommerce の投稿を表示しています。 すべての投稿を表示

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/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データで保存。
手動で更新するのが今のところ確実かな。

2010/11/29

oscommerceのalterをPHP5 Mysql5に書き換え

そろそろサーバーの方もphp5とMysql5を推奨してきているので
コチラも対応してゆかないと面倒だ。
サーバーで利用出来るバージョンは
  • Mysql5.077
  • PHP5.1.6推奨
  • PHP5.2.14
  • PHP5.3.3
どうせなら一番最新のバージョンでトライしようと思う

DBの文字コードは特に海外向けということもないのでEUCのまま。
UTF-8化はmb_stringとかややこしいのでそっとしておく。

こうなると基本的に直す箇所は2カ所。

DBにクエリを送っている箇所で left join を使用しているところ。
これのfromからleft joinを括弧でくくってやる。
left joinで探すと修正すべきファイルが羅列される。

account_history.php
advanced_search_result.php
checkout_process.php
default.php
products_new.php
product_reviews_info.php
product_reviews.php
popup_image.php

includes/classes/order.php
includes/modules/featured.php
includes/functions/general.php
includes/boxes/manufacturer_info.php

admin/languages.php
admin/orders.php
admin/products_attributes.php
admin/orders_csv.php
admin/customers.php
admin/includes/functions/general.php
admin/geo_zones.php
admin/edit_orders.php
admin/popup_image.php
admin/tax_rates.php

あとはsmartyでアサインしている箇所も修正が必要
まあフォルダ検索で共通の文字_smarty_objでリストアップして
ファイル検索で 『$this->』を『$』で全て置き換え。

$this->h_smarty_obj  → $h_smarty_obj
$this->smarty_obj   → $smarty_obj
$this->box_smarty_obj → $box_smarty_obj
$this->np_smarty_obj  → $np_smarty_obj
$this->fe_smarty_obj  → $fe_smarty_obj
$this->f_smarty_obj  → $f_smarty_obj

PHP5.3.3で使ってみると
Function session_is_registered() is deprecated
というエラーが出る。
セッション関連の関数が変わっているようなのだが
これもそっとしておいて一つバージョンを下げる方が手間が省ける。
チェックもしないといけないし。

ということでPHP5.2.14に落ち着く。