LoginSignup
1
0

Notion数式を使って、Amazonの購入リンクを短縮して管理してみた

Posted at

概要

私の勤める会社では書籍などを購入する際に、参照WebサイトとしてAmazonリンクを記載するフォーマットとなっています。
その際に、通常のAmazonのページで探してURLを張り付けると検索ワードや著者名がエンコードされた長いURLで表示されてしまします。

例えば、こんな感じです。「スティーブ・ジョブズ I 」を検索してみました。

https://www.amazon.co.jp/スティーブ・ジョブズ-I-ウォルター・アイザックソン/dp/4062171260/ref=tmm_hrd_swatch_0?_encoding=UTF8&dib_tag=se&dib=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=1710587710&sr=8-3

AmazonのIdToken部分っぽい場所は、別文字列に置き換えています。

こんな風にURLが長くなってしまうので、Excelなどの申請書のフォーマットに入力すると見栄えが悪くなるという問題があります。

Amazonの商品ページURL

Amazonの商品ページURLは、書記であればISBNコード、それ以外の製品はASINの10桁の番号さえあれば、問題なく表示できます。
この10桁の番号はURLにおけるdpディレクトリの区切りの直後に配置されています。
ここさえ上記のdp10桁の番号を含めば、商品ページURLとして認識されます。

上記URLの例では、以下のようになります。
非常にすっきりしましたし、全商品が同じ文字数で表現できるはずです。

https://www.amazon.co.jp/dp/4062171260

上記のようにAmazonの商品ページURLを短縮するだけであれば、既に色々なツールやShellなどでのやり方は公開されています。
なので、単にURLを短縮したいだけであれば、このような方法を使えばよいかと思います。

Notionで欲しい書籍リストを管理する

私は普段からNotionというアプリでタスク管理しているので、会社の申請書を作成する以外にも、欲しい書籍リストとして管理したいと考えていました。
タスクはこんな感じで管理しています。
Notion1.png

このNotion上の欲しい書籍リストから、会社の申請書にスムーズに移行できることが今回の狙いです。
(と言っても、Amazon商品ページURLを短縮表示+購入状態+読了状態を付与するだけですが・・・)

Notion数式とは?

Notionではデータベースとして設定できるプロパティとして、テキストや数値、複数値から選択するセレクトなどが用意されています。
その中には数式というプロパティの種類があり、Excelのように他のプロパティを参照して値を加工するような数式を設定することができます。

どのような数式があるかは、Notion公式サイトでも解説があります。
そこまで複雑な数式はありませんが、今回できる部分までこのNotion数式を使って対応したいと思います。
https://www.notion.so/ja-jp/help/formula-syntax

Notionで欲しい書籍リストを作ってみた

今回作成した欲しい書籍リストです。
Amazon貼り付けに検索したリンクをそのまま貼り付けることで、Amazonリンクに短縮URLの結果が表示されるようにしています。

image.png

Amazon購入リンクを短縮するNotion数式の設定

ここまで来てやって本題です。
Amazonリンクに設定した数式は以下のようになります。

"https://www.amazon.co.jp/dp/" + filter(split(prop("Amazon貼り付け"), "/"), length(current) == 10)

簡単に解説します。

  • prop関数で、データベースにおける他のプロパティ値を参照
  • split関数で、参照したプロパティ値を/を区切り文字としてリストに分割
  • filter関数内で、リスト内の値currentの文字列をlengthで取得し、10文字に一致する場合の値を取得
  • 抽出した値とhttps://www.amazon.co.jp/dp/を結合して表示

Notion数式に文字列を検索するような数式がなかったため、dpディレクトリの次にある10桁の番号を文字列の長さだけで抽出するようにしました。
今後Notionの数式バリエーションが増えれば、よりいい感じの数式が設定できると思います。

まとめ

今回はNotion数式を使って、Amazon購入リンクを短縮して表示できる欲しい書籍リストについてご紹介しました。
改善点は色々ありますので、コメントなどで教えていただけると幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0