VC APIで関連商品を表示させてみる

電脳備忘録
サーバーの稼動費用くらいはなんとかしたいなぁと思いvaluecommerceに登録してぼちぼち広告を掲載してきたものの、都度リンクを張る作業は意外と面倒で積極的に利用していませんでした。Amazonのリンクを張った後さらに作業をしようという気にならないだけですが・・・。

あるときなんとなく送られてきたメルマガに目を通すと、valuecommerceではAPIが提供されていて、これを利用すると簡単に商品を掲載することが出来そうだということがわかったのでためしに実装してみることにしました。

このブログはMovableTypeで運営しているので、マニュアルやソースを読み解きながらテンプレートに埋め込む形で実装しました。

目標

カスタムフィールドに入力したキーワードを元にリスト表示するようにする。

お約束

参照は自己責任でお願いします。

ダウンロードとサーバへのアップロード

  1. 商品API シンプル検索のページからSDK(product-api-sdk_1.0.3.zip)をダウンロードする。
  2. ダウンロードし解凍後。「product-api-sdk_1.0.3」フォルダ内の「Code_Samples」フォルダをvcapiへリネーム。サーバーへアップロードする。
  3. テンプレートモジュール「VC_PHP」を作成し「productapi_simple_list.php」の1~39行目までをコピーする。 ※必要箇所を絶対パスに書き換えること。
  4. カスタムフィールド「Vckeyword」を作成し、カスタムフィールドの値を元に商品を表示するようにする。
    「$api->setParam('keyword','<$mt:Vckeyword$>');」と書き換え、1ページに表示するアイテム数を指定する。
    スタティックの場合PHP内で普通にMTタグが使えるようです。
     /*
    * productapi_simple_list.php *
    * Copyright (c)2010 ValueCommerce,Co.Ltd.
    */
    require_once('/var/www/html/weblog/vcapi/VCPDBDriver/VCPDBDriver.php'); require_once('/var/www/html/weblog/vcapi/PageBody.php');
    /*
    * このサンプルでは内部エンコーディングはUTF-8です。
    */
    mb_internal_encoding("UTF-8");
    /*
    * VCPDBDriverクラスのインスタンスを生成します。
    */
    $api = new VCPDBDriver(VCPDBDRIVER_API_URL);
    /*修正前*/
    /*
    * このサンプルではキーワードは固定です。
    */
    $api->setParam('keyword','ipad');
    /*修正後*/
    $api->setParam('keyword','<$mt:Vckeyword$>');
    /*1ページに表示するアイテム数を指定(追記)*/
    $api->setParam('results_per_page', '3');
    /*
    * page パラメータが存在することと、pageパラメータの値が数値であることを確認してから、
    * パラメータに収めます。
    */
    if (array_key_exists('page',$_GET) && is_numeric($_GET['page']))
    { $api->setParam('page',$_GET['page']); }
    /*
    * ページ本体の生成
    */
    $pageBody = new PageBody('/var/www/html/weblog/vcapi/Views/Pagination.html', '/var/www/html/weblog/vcapi/Views/FormattedItem.html', 10, $api);
    
  5. テンプレート「ブログ記事」の1行目に下記の一文を追記。(VC_PHPモジュールの読み込み)
    <$mt:Include module="VC_PHP"$>
  6. テンプレートモジュール「HTMLヘッダー」に下記の一文を追記(外部CSSの読み込み)
     <!-- VC SDK -->
    <mt:MultiBlog blog_ids="1">
    <link href="<$MTBlogURL$>vcapi/css/vc_default.css" rel="stylesheet" type="text/css" />
    </mt:MultiBlog>
    
  7. テンプレート「ブログ記事」に「productapi_simple_list.php」の49~58行目までを任意の場所にコピーする(検索結果の表示)
  8. 今すぐ購入ボタンが表示されないのでリンクを確認してみると相対パスだった。
    /Views/FormattedItem.htmlファイルを開き、下記のパスを絶対パスに修正。
    <a href="${LINK}" _cke_saved_href="${LINK}" target="_blank">
    <img src="images/vc_btn_purchasenow.gif" _cke_saved_src="images/vc_btn_purchasenow.gif" /></a>

PHPをあまりいじったことがなかったので多少とまどいましたが、なんとか実装することができました。
ためしに「ノートパソコン」とキーワードを指定してみましたよと・・・。

広告

ブログの維持費に充てるでございます・・・。