« | »

2009.07.30

wp-tmkm-amazonで「 ( 新品 ○ 点 ¥ △△△△ より )」を出す

うちはwp-tmkm-amazonを使ってデータを引き出しているんだけれど、昨日「Alice’s Adventures in Wonderland Minibook」のデータを見てふと気付いたことが。
あれ?Amazon価格が、Amazon.co.jpの販売価格じゃない??
正確にいうと、「この商品は、Amazon.co.jp が販売、発送します。」という値段ではなく、同じく新品だけれども「こちらからも買えますよ」に書かれたところに載っているリストからの値段になっている。

それでちょっとソースを見てみることにする。
以前「Amazonから情報を引き出すプラグイン『wp-tmkm-amazon』」を書いたときにいろいろ調べて、

定価(参考価格)はItemAttributesの下なのに、価格(Amazonでの価格)はOffersの下にあるんだよね。(^^;

と気付いたので、今回もその辺りを中心に見てみた。

wp-tmkm-amazon-function.phpを見ると、

case ourprice: $textdata = $item["OfferSummary"]["LowestNewPrice"]["FormattedPrice"]; break;

となっている。
LowestNewPriceはたぶん「新品の最安値」なんじゃないかと思う。単語的にw
んで、この「新品」というのはAmazon.co.jpが販売するものも、Amazon.co.jp以外が販売しているものもひっくるめてなんじゃないだろうか。
全部Amazonで販売されてるんだから、それも「Amazon価格」って言っていいんじゃね?という考え方も有りだけど、今までずっと「Amazon価格=Amazon.co.jpが販売、発送する価格」と思ってたので、ここはちょいと改造してしまおうと。
ただそれだとAmazon.co.jpが販売、発送しないけど他からの新品があるよっていうのを見逃してしまうので、ついでにいろいろ書き換えることにした。

イメージとしては、
・Amazon価格には、「この商品は、Amazon.co.jp が販売、発送します。」と書かれている時の価格を表示。
・Amazon価格が無い(Amazon.co.jpが販売、発送出来ない)場合、他の出品者/ストア業者に新品在庫があればそちらの価格を別に表示。
・Amazon価格とその他の新品価格が同じならばAmazon価格だけ表示。
・Amazon価格があり、なおかつそれよりも安い新品があれば併記。
 フォーマットは「 ( 新品 ○ 点 ¥ △△△△ より )」がいいかな。

ってな感じ。

で。
で。
で。

途中経過は割愛しますが、単純なことなのにハマりまくってました。
これだからドシロートは。_| ̄|○

最終的な変更点はこんな感じ。

上に書いたとおり、Amazon自身の販売価格はOffers→Offer→OfferListing→Price→FormattedPriceなので、wp-tmkm-amazon-function.phpの98行目を

case ourprice: $textdata = $item["Offers"]["Offer"]["OfferListing"]["Price"]["FormattedPrice"]; break;

に変更。
プラス、その後ろに

case lowestnewprice: $textdata = $item["OfferSummary"]["LowestNewPrice"]["FormattedPrice"]; break;
case totalnew: $textdata = $item["OfferSummary"]["TotalNew"]; break;

を追加。

それからwp-tmkm-amazon.phpを次の様に書き換え。
(行数は全て挿入前のオリジナルを基準に書いてます。)

**********
wp-tmkm-amazon.php:481行目のあとに

$LowestNewPrice = $this->amazonparse->get_amazon_text($item,'lowestnewprice');
$TotalNew = $this->amazonparse->get_amazon_text($item,'totalnew');

**********
wp-tmkm-amazon.php:483行目のあとに

if( $LowestNewPrice != '' ) {
  $newpricememo = ' ( 新品 '. $TotalNew . ' 点 ' . $LowestNewPrice . ' より )';
} else {
  $newpricememo = '';
}

**********
wp-tmkm-amazon.php:552行目のあとに

    if( $OurPrice != $LowestNewPrice ) {
      $output .= "¥t" . "<p>$newpricememo<⁄p>" . "¥n";
    }

**********
wp-tmkm-amazon.php:582行目のあとに

    if( $OurPrice != $LowestNewPrice ) {
      $output .= "¥t" . "<p>$newpricememo<⁄p>" . "¥n";
    }

**********
wp-tmkm-amazon.php:609行目のあとに

    if( $OurPrice != $LowestNewPrice ) {
      $output .= "¥t" . "<p>$newpricememo<⁄p>" . "¥n";
    }

**********
wp-tmkm-amazon.php:637行目のあとに

    if( $OurPrice != $LowestNewPrice ) {
      $output .= "¥t" . "<p>$newpricememo<⁄p>" . "¥n";
    }

**********

はー。
何とか思った通りのデータを返してくれるようになりましたよ。(^^;

ちょっと改造するだけでこんなに時間かかるんだから、一からプラグインを作る人ってどれだけ大変なんだろうなぁ。
本日も感謝しながらこれにて終わります。

Web拍手

Web拍手をポチッと

このページへのリンクを作る

このページへのリンクは自由にどうぞ。
JavaScriptが有効であればエリア内クリックで全選択されますので、コピーしておつかいください。

コメント & トラックバック

Comments and Trackback are closed.

まだコメントはついていません.