②PHPでAmazon MWS APIで取得したXMLのカート価格を抜き出してブラウザに表示してみる。

え~前回、PHPでAmazon MWS APIを使ってカート価格を無事に取得できました!

パチパチパチパチ

前回を読んでいない方は、こちらからどうぞ。
①PHPでAmazon MWS APIを使ってカート価格を取得してみる。

 

まあ、しかし、カート価格を取得したとは言っていますが

実際は、XMLの戻り値をそのまま表示しただけなので

見栄えをまったく考えていませんでした(笑)

 

そんな訳で、今回は取得したXMLからカート価格を抜き出して

ブラウザに表示させてみたいと思います。

 

具体的にやりたいこと

前回は、こちらの文字だらけのXMLを表示しただけでした。

今回は、ここから、20行目のカート価格だけを表示させるようにしたいと思います。

 

— こんな出力イメージ —
カート価格
712円

 

今回はこれだけです(笑)

 

ちなみに、私は、PHPはド素人です(笑)

出来なかったらごめんなさいということで。

では、さっそくやってみましょう!

 

と言ってもド素人ですから、Google先生に聞きます(笑)

 

参考にしたサイトはこちらです。
参考 PHPでAmazonのMWSを使用して,マケプレの出品情報を取得するnanoblog(ナノブログ)

 

実は、こちらのphpサンプルに、私が前回苦労した箇所が記述されておりました。
とてもありがたいサイトです。

 

XMLの出力結果を取り込むコードを作成する。

前回使用したサンプルコードは、GetCompetitivePricingForASINSample.php でした。

これに、少し手を加えます。


こちらは、前回追加した行ですが、82行目のASINを1つから3つに増やしてみました。

 

つぎに、以下の function invokeGetCompetitivePricingForASINの中の echo文をコメントアウトします。

コメントアウトした理由は、今回の目的以外の文字を表示させたくない為です。

そして、今回の目玉!XMLを取り込むコードを、126行目に追加しました。

 

追加したコードですが、こちらも試行錯誤しまくりで、うまく行くか不安でしたが

どうにか目的のことは達成できました(汗)

 

コードを実行した結果(先にみせます!)

では、先に結果を見てもらいましょう~!

 

はい、こちらです!

 

じゃーん!

 

おお~!パチパチパチパチ!拍手をください~!!

まあ、見栄えはしませんけど(汗)

なんとか、がんばりました~!

 

ASINの実際の商品はこちら

見事にあっています!(当然ですがw)

一番目は、送料を含めると表示したカート価格になります。

 

素人なので、これだけでも相当時間がかかりました(笑)

でも、前回よりは見やすくなりました!

 

もう少し装飾を加えてみようかとも思いましたが

時間がかかりそうなので、やめておきました(笑)

 

では、作成したコードを見ていただきましょう。

 

作成したコード

こちらが、色々なサイトを参考にして作ってみたコードです。

まず、心配だったのが、XML結果( $response ) を require_once で cart_price_disp.php に渡せるのかという点。

結果的に、うまく渡せているようです。(この辺は勉強不足です・・・)

このXML結果が渡せれば、あとは何とかなります。

上の参考サイトを見て、今回も憶測でコードを作成しました(笑)

ランキングも取得できたのですが、カテゴリ名が分からないので、今回はコメントアウトしました。

XMLから値を抜き出すのは、クセがあって今一わかりにくい(笑)

 

作成したコードをご参考用にどうぞ

そのようなコードですので、完全なる自己責任でご参照ください。

いかなる責任も負いかねます。

cart_price_disp.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>GetCompetitivePricingForASIN 実行結果</title>
</head>
<body>
<h1>GetCompetitivePricingForASIN 実行結果</h1>
<table>
  <tr><th>Status</th><th>ASIN</th><th>カート価格</th></tr>
<?php
//--------------------------------------
// phpで結果を取得して表示する。ここから
//--------------------------------------
    $GetCompetitivePricingForASINResultList = $response->getGetCompetitivePricingForASINResult();
     //--------------------------------------
    // 全てのASIN情報を表示するまで繰り返し
    //--------------------------------------
    foreach ($GetCompetitivePricingForASINResultList as $GetCompetitivePricingForASINResult) {
        echo( "<tr>" );
        //----------------
        // 検索結果
        //----------------
        if ($GetCompetitivePricingForASINResult->isSetStatus()) {
            echo( "<td>" . $GetCompetitivePricingForASINResult->getStatus() . "</td>");
        }
        //----------------
        // ASIN情報
        //----------------
        if ($GetCompetitivePricingForASINResult->isSetASIN()) {
            echo( "<td>" . $GetCompetitivePricingForASINResult->getASIN() . "</td>");
        }
         //----------------
        // カート価格情報
        //----------------
        if ($GetCompetitivePricingForASINResult->isSetProduct()) { 
            $product = $GetCompetitivePricingForASINResult->getProduct();          
            if ($product->isSetCompetitivePricing()) { 
                $competitivePricing = $product->getCompetitivePricing();
                $competitivePrices = $competitivePricing->getCompetitivePrices();
                $competitivePriceList = $competitivePrices->getCompetitivePrice();
                
                //------------------
                // 価格情報
                //------------------
                foreach ($competitivePriceList as $competitivePrice) {
                    if ($competitivePrice->isSetPrice()) { 
                        $price1 = $competitivePrice->getPrice();
                        if ($price1->isSetLandedPrice()) { 
                            $landedPrice = $price1->getLandedPrice();
                            echo("<td>" .  floor($landedPrice->getAmount()) . "円</td>" );
                         } 
                    }
                 }//foreach
            }
        }
        //----------------
        // ランキング情報
        //----------------
//        if ($GetCompetitivePricingForASINResult->isSetProduct()) { 
//            $product = $GetCompetitivePricingForASINResult->getProduct();          
//            if ($product->isSetSalesRankings()) { 
//                $salesRankings = $product->getSalesRankings();
//                $salesRankList = $salesRankings->getSalesRank();
//                foreach ($salesRankList as $salesRank) {
//                    if ($salesRank->isSetProductCategoryId()) {
//                        echo("カテゴリID :" . $salesRank->getProductCategoryId() . "\n");
//                    }
//                    if ($salesRank->isSetRank()) {
//                        echo("<td>" . $salesRank->getRank() . "</td>");
//                    }
//                }
//            } 
//        }
      echo( "</tr>" );
    }//foreach
//--------------------------------------
// phpで結果を取得して表示する。ここまで
//--------------------------------------
?>
</table>
</body>
</html>

 

まとめ

今回の掲題

「PHPでAmazon MWS APIで取得したXMLのカート価格を抜き出してブラウザに表示してみる。」

は、目的達成です!

 

プチ成功体験が、次なるやる気を生み出しています(笑)

ということで、次なる課題は、今は固定でコードにASINを記述していますが

つぎは、入力したASINのカート価格を表示させてみたいですねー

 

また時間がかかりそうです。

ではこれにておひらき。

ご清読ありがとうございました。

ワテ

プログラムをオンラインで学ぶならUdemy(ユーデミー)がおすすめです。好きな時間に視聴できるので私も受講しています。


セール期間なら千円台でお得だぞ

カメ吉

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください