アマゾンアフィリエイトコードの展開テスト

HUGO shortcodesを使って、Amazonアフィリエイトのリンクを組み込みます。

動かすのはちょっと大変。以下は、今回のために作った shortcodes で、これ加えて、Product Advertising API を用いたXMLデータのダウンロードスクリプト、XMLからJSON形式のデータを作り、 ./data/asin/B01N3PBDGJ.json として保存しておく必要があります。

{{- $asin := .Get 0 -}}
{{- $json := index .Site.Data.asin $asin -}}
{{- $item := $json.ItemLookupResponse.Items.Item -}}
{{- $title := $item.ItemAttributes.Title -}}
{{- $price := $item.OfferSummary.LowestNewPrice -}}
{{- $image := $item.SmallImage -}}
<div class="asin-box">
  <div class="asin-title">
    <a href="{{ $item.DetailPageURL.value }}" target="_blank">
      製品名: {{ $title.value }}
    </a><br/>
    価格: {{ $price.Amount.value }} {{ $price.CurrencyCode.value }}<br/>
    ASIN: {{ $asin }}
  </div>
  <div class="asin-image">
    <a href="{{ $item.DetailPageURL.value }}" target="_blank">
      <img src="{{ $image.URL.value }}" alt="{{ $title.value }}" width="{{ $image.Width.value }}" height="{{ $image.Height.value }}"/>
    </a>
  </div>
  <div class="asin-metadata"></div>
</div>

書籍だとこんな感じ。

Updated (2018-09-04@00:15)

参照する価格のフィールドが、ISBNで拾うアイテムと異なるため修正した。前者は定価で、後者は現在の最安値のようだ。

<!-- {{- $price := $item.ItemAttributes.ListPrice -}} -->
{{- $price := $item.OfferSummary.LowestNewPrice -}}

References

amazon_banner_large
amazon_banner_small