2026/10/18

【徹底解説】Shopify アプリ「シンプルQRコード|お手軽QRコード作成・印刷アプリ」でできること

@ 信条刃

Shopify

店頭の値札、レジ横の卓上カード、商品に同梱するリーフレット、イベント会場のポスター。紙の上に QR コードを一つ置いておくだけで、手に取ったお客様をそのままオンラインストアの商品ページへ案内できます。ところが実際にやってみると、QR コードの画像を作るところまでは簡単でも、「何ミリで刷れば読めるのか」「QR だけ置いても何のコードか伝わらない」「商品が 80 点あると 80 回作業が要る」といった、印刷する段階の手間でつまずきがちです。

この記事では、Shopify の管理画面の中で印刷用の QR コードを作り、そのまま刷れる形で書き出せるアプリ「シンプルQRコード|お手軽QRコード作成・印刷アプリ」(英語名: UR: QR Code Generator|Print)を取り上げます。管理画面の 3 つのメニューと作成画面の設定項目を、実際の画面を 1 枚ずつ見せながら、すべて解説します。

あわせて、画面には出てこない制約(保存されない欄、扱える件数の上限、警告が出る条件)や、アプリを使わずにコードで同じことをする場合の手順にも触れます。導入を迷っている方は、最後まで読めば「自分の店で何ができて、何ができないか」の見当がつくはずです。

シンプルQRコードのメイン画像。アプリのアイコンと、印刷できるQRコードをかんたんに作成という見出し

「シンプルQRコード」とは

「シンプルQRコード」は、日本の開発元 UnReact が提供している Shopify アプリです。Shopify App Store からインストールすると、管理画面の「アプリ」の下に「QRコード」「まとめて作成」「設定」の 3 つのメニューが追加されます。

作れる QR コードの行き先(宛先)は 6 種類です。商品ページ、コレクション、固定ページやブログ記事、ストアの外を含む任意の URL、商品が入った状態のカート、割引が適用された状態のストア。作った QR は PNG・SVG・A4 の PDF のいずれかで書き出せます。

このアプリの考え方をひとことで言えば、「印刷物の寿命を、アプリの契約に縛らない」です。作成画面の初期値は静的 QR コードで、QR の中にはストアの公開 URL がそのまま書き込まれます。お客様のスマートフォンは、このアプリのサーバーを一切経由せずにストアへ直接つながります。だから、このアプリの利用をやめた後でも、すでに配ったチラシや値札の QR は読み取れます。

掲載画像。アプリのアイコンと、静的QRコードのプレビュー・ダウンロード欄

動的 QR コード(あとから飛び先を変えられ、読み取り回数も数えられる方式)も選べますが、こちらはアプリを経由する仕組みなので、解約すると読み取れなくなります。作成画面でも設定画面でも、その違いがはっきり書かれています。どちらを使うべきかは、後の「種別」の節で詳しく説明します。

テーマ(ストアのデザイン)には何も追加しません。テーマエディタでブロックを置く作業も、コードを貼る作業もありません。お客様が触れるのは、刷り上がった紙の上の QR だけです。

「シンプルQRコード」のメリット

解約しても、配った QR が無効にならない

QR コードのアプリを選ぶときに、いちばん見落とされやすいのがこの点です。宛先をアプリのサーバーで解決する方式の QR は、アプリの障害、設定変更、アンインストール、無料枠の終了のどれか一つで、刷って配った分がまとめて開けなくなります。管理画面は正常に見えるので、店側はお客様に「読めませんでした」と言われて初めて気づくことになります。

このアプリは、初期値の静的 QR にストアの URL をそのまま埋め込みます。アプリが止まっても、契約をやめても、QR の中身は変わりません。値札や商品タグのように数が多く、回収が難しい印刷物には、この性質がいちばん効きます。

文字入りの紙面まで、管理画面だけで作れる

QR コードを単独で貼っても、お客様には何が開くのか伝わりません。このアプリでは QR の上と下に 1 行ずつ文字を入れ、QR と一緒に 1 枚の画像として書き出せます。「秋の新作コレクション」「スマホで読み取るとご覧いただけます」といった案内を、画像編集ソフトで足し直す必要がなくなります。

さらに PDF を選べば、A4 の用紙にそのまま刷れる形で出てきます。「まとめて作成」の面付け PDF なら、1 枚の A4 に何面も並んだ状態で出てくるので、刷ってカットすれば値札の束になります。

印刷サイズをミリメートルで決めて、実寸に近い大きさで確かめられる

作成画面の「印刷サイズ(mm)」に一辺の長さを入れると、右側のプレビューがその大きさに近い寸法で表示されます。値札に 20mm で載せるのか、ポスターに 100mm で載せるのかを、刷る前に画面の上で比べられます。書き出す PNG は 300dpi で作られるので、印刷用としても解像度が足りなくなる心配はありません。

商品を選ぶだけで、最大 100 件をまとめて書き出せる

「まとめて作成」では、商品を選んでいくだけで、その全部の QR を一度に書き出せます。形式は ZIP(PNG)、ZIP(SVG)、面付け PDF の 3 つです。店頭に並ぶ全商品に QR 付きの棚札を付けたい、といった場面で、1 件ずつ作成画面を開く手間がなくなります。

管理画面が 20 言語に対応している

管理画面の文言は、日本語・英語を含む 20 言語に切り替えられます。初期状態では Shopify アカウントの言語が使われるので、日本語の管理画面を使っている方は、何も設定しなくても日本語で表示されます。海外のスタッフと管理画面を共有している店舗でも、それぞれの言語に切り替えて使えます。

「シンプルQRコード」のデメリット

良い点だけを並べても判断の材料にならないので、使う前に知っておいたほうがよい制約も挙げておきます。どれも、使い方を工夫すれば困らないものです。

QR の上下に入れる文字は保存されない

「QRコードの上の文字」と「QRコードの下の文字」は、書き出す画像には反映されますが、QR コードを保存しても記録されません。保存して画面を開き直すと、2 つの欄は空に戻っています。同じ紙面を作り直すときは、文字を入れ直してから書き出す必要があります。

動的 QR は、解約すると読み取れなくなる

動的 QR は、読み取られるたびにアプリのサーバーを経由して飛び先へ転送する仕組みです。そのぶん、飛び先の変更や回数の計測ができますが、アプリの利用をやめると転送も止まります。これは仕組み上避けられないので、印刷して配る用途には静的を選ぶ、という使い分けが前提になります。

スキャン数は動的 QR だけ、しかもおおよその値

読み取り回数を数えられるのは動的 QR だけです。静的 QR はアプリを通らないので、一覧の「スキャン数」は「—」になります。動的 QR の回数も、同じ瞬間に複数の人が読み取ると数えきれないことがあり、画面にも「おおよその値」と明記されています。正確な流入数が欲しい場合は、後述の流入計測を使って Shopify のレポート側で見るのが向いています。

まとめて作成は 100 件まで、静的のみ、保存なし

「まとめて作成」で一度に選べる商品は 100 件までです。1 件ごとに 300dpi の画像を作るため、件数を増やすとブラウザのメモリが先に足りなくなるためです。また、まとめて作った QR は静的 QR として画像を書き出すだけで、一覧には残りません。宛先が商品ページの URL そのものなので、保存しなくても読み取りには困りませんが、「あとで一覧から同じものを出し直す」ことはできません。

ロゴは画像の URL で指定する

QR の中央に重ねるロゴは、ファイルをアップロードするのではなく、画像の URL を貼り付けて指定します。ストアの管理画面の「コンテンツ」→「ファイル」に画像を上げて、その URL をコピーする一手間がかかります。

定期購入専用の商品は「カートに入れる」に使えない

Shopify のカート URL は、定期購入(サブスクリプション)として商品を入れることに対応していません。そのため、定期購入専用の商品は、カートに入れる QR の対象にできません。商品ページへ案内する QR であれば問題なく作れます。

管理画面はパソコンでの利用が前提

実寸に近いプレビューを見て、ファイルを落として印刷する、という作業が中心なので、スマートフォンからの操作は想定されていません。

料金プラン

料金は 1 プランだけです。機能による上下のプランはありません。

  • 月額プラン … $6.99/月
  • 年額プラン … $69.99/年(月額で 12 か月払うより安くなります)
  • 無料体験 … 7 日間

無料体験の期間中も、作成画面・まとめて作成・面付け PDF まで、すべての機能を使えます。体験期間のうちに実際に 1 枚刷って、店頭で何台かのスマートフォンで読み取ってみるのがおすすめです。

なお、無料体験の終了や解約によって、静的 QR が読み取れなくなることはありません。課金の状態と、配った QR の有効性は切り離されています。

「シンプルQRコード」のインストール

インストールの手順は、他の Shopify アプリと同じです。

管理画面の設定から App Store を開く

Shopify 管理画面の左下にある「設定」を開きます。

Shopify 管理画面の左下にある設定メニューの位置

設定の中の「アプリと販売チャネル」を選び、そこから Shopify App Store へ進みます。

設定画面のアプリと販売チャネルから Shopify App Store へ進むところ

アプリを検索してインストールする

App Store の検索窓に「UR: QR Code Generator」と入力します。アプリストア上の正式な表示名は「UR: QR Code Generator|Print」です。

Shopify App Store の検索窓に UR: QR Code Generator と入力した画面

詳細ページが開いたら「インストール」を押します。続けて、アプリが使う権限(商品の読み取り、割引の読み取り、QR コードの保存先の読み書きなど)が表示されるので、内容を確かめて確定します。

アプリの詳細ページとインストールボタン

顧客情報や注文情報を読む権限は求められません。このアプリは、お客様の個人情報に一切触れない作りになっています。

アプリ管理画面の構成

インストールが終わると、管理画面の左側のメニューにアプリ名が入り、その下に 3 つのメニューが並びます。

  • QRコード … 保存した QR の一覧。アプリを開いたときに最初に出る画面です
  • まとめて作成 … 複数の商品の QR を一度に書き出す画面です
  • 設定 … 管理画面の言語と、解約前に読んでおきたい注意書きの画面です

アプリを開いたところ。左のメニューに QRコード・まとめて作成・設定が並び、右下にご利用ガイドへのリンクがある

どの画面でも、右下に「ご利用ガイドは こちら」というリンクが出ています。操作に迷ったときは、ここからShopifyでQRコードを作成して商品タグやチラシ・ポスターに印刷できるアプリについて徹底解説|ご利用ガイドを開けます。

QR の作成画面は、一覧の右上のボタンから開きます。作成画面には「基本情報」「宛先」「種別」「デザイン」「印刷レイアウト」「流入計測」の 6 つの入力ブロックが縦に並び、右側に「プレビュー」と「ダウンロード」が置かれています。

各画面の説明

ここからが本題です。一覧、行の操作、作成画面の各ブロック、まとめて作成、設定の順に、画面の項目を 1 つずつ見ていきます。

QRコード一覧(ホーム)

左のメニューの「QRコード」を押すと開く画面です。保存した QR が表の形で並びます。

QRコード一覧。QRコード・名前・種別・宛先・スキャン数・操作の6列が並ぶ

表の列は 6 つです。

  • QRコード … QR の画像そのものです。実物と同じ模様なので、画面にスマートフォンを向ければその場で読み取りを確かめられます
  • 名前 … 作るときに付けた名前です。長い名前は末尾が「…」で省略されます
  • 種別 … 緑の「静的」か、青の「動的」かのバッジです
  • 宛先 … 読み取ったときに開く URL です。長いものは途中までの表示になります
  • スキャン数 … 動的 QR の読み取り回数です。静的 QR は「—」と表示されます
  • 操作 … 行ごとの「…」ボタンです。次の節で説明します

画面右上には「まとめて作成」と「QRコードを作成」の 2 つのボタンがあります。前者は一括で書き出す画面へ、後者は 1 件ずつ作る画面へ移動します。まだ 1 件も保存していないときは、表の代わりに「まだQRコードがありません」という案内と作成ボタンだけが表示されます。

掲載画像。QRコード一覧に静的のQRが3件並んでいる様子

名前は印刷物には出ないので、自分が見分けやすいように付けて構いません。「店頭ポスター用|新作スノーボード」「スキーワックス|棚札」のように、貼る場所と中身を両方書いておくと、件数が増えても探しやすくなります。

行の操作(編集・複製・削除)

各行の右端にある「…」を押すと、3 つの操作が出ます。

行の…ボタンを押すと、編集・複製・削除のメニューが開く

  • 編集 … 作成画面と同じ形の画面が、保存済みの値が入った状態で開きます
  • 複製 … 同じ設定の QR をもう 1 件作ります。色違い、サイズ違いを作るときに便利です
  • 削除 … 一覧から取り除きます。確認のダイアログが出てから消えます

動的 QR の編集画面では、いちばん上に「スキャン数」のカードが加わり、これまでに読み取られた回数が表示されます。カードの横には「同時に読み取られたときに数えられないことがあるため、おおよその値です。」という注記も付いています。

動的QRの編集画面。上部にスキャン数のカードがあり、種別の下に解約時の警告が出ている

削除したときの影響は、種別によって正反対になります。静的 QR は、一覧から消しても印刷済みの QR は開けます。中身がストアの URL そのものだからです。動的 QR は、削除するとアプリが転送先を引けなくなります。この場合、読み取ったお客様はエラーページではなくストアのトップページへ送られますが、本来見せたかったページには届きません。動的 QR を消すときは、その QR を刷った紙が手元に残っていないかを先に確かめてください。

QRコードを作成:基本情報

一覧の「QRコードを作成」を押すと開く画面です。最初のブロックが「基本情報」で、入力欄は「QRコードの名前」の 1 つだけです。

QRコードを作成する画面の初期状態。左に入力ブロック、右にプレビューとダウンロード

欄の下には「管理画面での識別に使います。印刷物には出ません。」と書かれています。ただし、名前は 2 か所で裏方として使われます。

  • ダウンロードするファイルの名前は、QR の名前から自動で作られます
  • 後で説明する「参照コード(ref)」を空のまま保存すると、名前から参照コードが自動で作られます

2 つ目には落とし穴があります。日本語の名前から作られた参照コードは、URL に載るときに 1 文字が 9 文字前後の記号列に変換されます。静的 QR では、その長い文字列が QR の中にまるごと入るため、名前が長いと QR の模様が細かくなります。小さく刷る QR では、参照コードを英数字で自分で入れておくほうが安全です。

画面右上の「保存」を押すと、その QR が一覧に記録されます。ダウンロードするだけなら保存は要りません。保存しておく利点は、後から同じ設定で出し直したり、複製して似た QR を作ったりできることです。

宛先:商品ページ

「宛先」ブロックの「種類」で、読み取ったときに開くページの種類を選びます。選べるのは「商品ページ」「コレクション」「ページ・ブログ記事」「任意のURL」「カートに入れる」「割引コード」の 6 つで、初期値は「商品ページ」です。

商品ページを選んでいるときは「商品を選ぶ」ボタンが出ます。押すと、Shopify 標準の商品選択画面が開きます。

商品を選ぶを押すと開く、Shopify 標準の商品の選択画面

商品を 1 つ選んで「追加」を押すと、右側のプレビューに QR が描かれ、その下の「読み取り先」に実際に開く URL が表示されます。

商品を選ぶとプレビューにQRが描かれ、読み取り先にURLが表示される

商品を選ぶと、その下に「バリアントを指定する(任意)」というボタンが加わります。欄の下には「指定しない場合は、商品ページをそのまま開きます。」と添えられています。

商品を選んだ直後。バリアントを指定する(任意)のボタンが出ている

バリアント(サイズや色などのバリエーション)を指定したいときは、このボタンを押します。その商品のバリエーションだけが並んだ選択画面が開きます。

バリアントを指定するを押すと、その商品のバリエーションだけが並ぶ選択画面が開く

指定すると、読み取り先の URL の末尾に ?variant= とバリエーションの番号が付き、そのバリエーションが選ばれた状態で商品ページが開くようになります。ボタンの表示は「バリアントを選び直す」に変わり、横に「指定を外す」のリンクが出ます。

バリエーションを指定した状態。読み取り先の末尾に variant が付き、指定を外すのリンクが出ている

使い分けの目安は売り場の作りです。サイズごとに棚が分かれている店なら、棚ごとにバリエーションを指定した QR を貼ると、お客様は選び直さずに済みます。1 か所に全サイズを並べている店なら、指定せずに商品ページを開かせ、お客様に選んでもらうほうが自然です。

宛先:コレクション

「種類」で「コレクション」を選ぶと、ボタンが「コレクションを選ぶ」に入れ替わります。

種類にコレクションを選んだところ。コレクションを選ぶボタンが出ている

押すと、ストアのコレクションの一覧が、各コレクションに含まれる商品数と一緒に表示されます。選べるのは 1 つだけです。

コレクションを追加の選択画面。コレクション名と商品数が並ぶ

選ぶと、ボタンの横にコレクション名が出て、読み取り先が /collections/コレクションのハンドル の形になります。

コレクションを選んだ状態。読み取り先が collections から始まる URL になっている

「秋の新作」「セール対象」「ギフト向け」のように、まとまりで見てほしいときの種類です。ポスターやチラシ、ショーウィンドウの貼り紙のように、特定の 1 商品ではなく売り場全体へ誘う紙とよく合います。コレクションの中身は Shopify 側で入れ替えられるので、QR を刷り直さずに紹介する商品を季節ごとに変えられる、という使い方もできます。

宛先:ページ・ブログ記事

「ページ・ブログ記事」を選ぶと、2 つの入力欄が出ます。こちらは選択画面ではなく、ハンドル(URL の末尾の部分)を文字で入力します。

  • ページのハンドル … 固定ページなら、そのページのハンドルを入れます。欄の下の例は「about」です。ブログ記事を開かせたいときは、ここに記事のハンドルを入れます
  • ブログのハンドル(ブログ記事のときだけ) … ブログ記事のときだけ、記事が属するブログのハンドルを入れます。例は「news」です

ページ・ブログ記事を選び、ページのハンドルに how-to-care、ブログのハンドルに news を入れた状態

ブログのハンドルを空にしておくと、読み取り先は /pages/入力したハンドル になります。両方入れると /blogs/ブログのハンドル/記事のハンドル になります。上の画面では、news ブログの how-to-care という記事が読み取り先になっています。

ハンドルは、Shopify の管理画面でページや記事を開いたときの「検索結果のプレビュー」欄の URL の末尾で確認できます。お手入れ方法、組み立て方、ブランドの紹介といった読み物は、商品に同梱する紙に載せると、購入後のお客様に読んでもらうきっかけになります。

宛先:任意のURL

「任意のURL」を選ぶと、「URL」の欄が 1 つ出ます。ストアの外のページも指定できます。予約フォーム、地図アプリの店舗ページ、SNS のアカウントなど、ストアの外へ案内したいときの種類です。

任意のURLに www から始まる URL を入れた状態。欄の下に http:// または https:// で始まるURLを入力してください、と案内が出ている

欄の下には「http:// または https:// で始まるURLを入力してください。」と案内が出ています。この条件を満たさない URL のまま保存しようとすると「このURLは使用できません。」と表示され、保存されません。

ここで一つ注意があります。上の画面のように www. から書き始めた URL でも、右側のプレビューには QR が描かれ、ダウンロードのボタンも押せてしまいます。保存は止まりますが、書き出しは止まりません。ブラウザのアドレス欄からコピーせず手で打ち込むときは、必ず https:// から入力し、プレビューの「読み取り先」が https:// で始まっていることを確かめてから書き出してください。

宛先:カートに入れる

「カートに入れる」は、読み取った瞬間に商品がカートに入った状態でストアが開く種類です。

カートに入れるを選んだ画面。定期購入商品の注意、商品を追加、割引コード(任意)が並ぶ

  • 商品を追加 … 押すと商品の選択画面が開きます。選んだ商品は 1 行ずつ並び、何行でも足せます
  • 数量 … 行ごとに、カートに入れる個数を指定します
  • 削除 … 行ごとに、その商品を外します
  • 割引コード(任意) … 入れておくと、カートを開いた時点で割引まで適用されます

セット商品、イベント会場での事前購入、定期便の初回などのように、「これとこれを買ってほしい」が決まっている場面で強い種類です。会場限定の割引コードと組み合わせると、お客様は読み取ってから支払いまで、商品を探す手順を一つも踏まずに済みます。

画面の上には、定期購入(サブスクリプション)の商品を追加できない旨の注意が常に出ています。定期購入専用の商品を選んだ場合は、その場でカートの行に加わらず、通知で知らされます。仮に通信の具合で判定をすり抜けても、保存のときにもう一度確かめられ、「定期購入(サブスクリプション)の商品はカート投入のQRに追加できません。」と表示されて保存は止まります。

宛先:割引コード

「割引コード」を選ぶと「割引コード」の欄が 1 つ出ます。Shopify の「ディスカウント」で作っておいた割引コードを入力します。

割引コードを選ぶと、読み取り先が /discount/コード の形になる

読み取り先は /discount/コード の形になり、読み取ったお客様のカートに割引が適用された状態でストアが開きます。チラシに「このコードで 10% オフ」と書いてお客様に打ち込んでもらう代わりに、読み取るだけで済むようになります。

画面には出てこない話ですが、コードに空白や % などの記号が含まれる場合、Shopify は URL の中でそれを 2 回重ねて変換した形でないと割引を適用しません。たとえば SAVE 10% は SAVE%252010%2525 という形になります。このアプリは Shopify と同じ規則で自動的に変換するので、コードを作るときに記号を避ける必要はありません。

種別:静的と動的

「種別」ブロックの「QRコードの種別」で、静的か動的かを選びます。初期値は「静的(解約後も読み取れる)」です。

静的を選んでいるときは、緑の帯で「このQRコードはアプリを解約したあとも読み取れます。」と表示されます。「動的(宛先を変更でき、スキャン数を数える)」に切り替えると、帯が黄色い警告に変わります。

動的を選ぶと、解約すると読み取れなくなる旨の警告が表示される

2 つの違いを整理すると次のとおりです。

  • QR の中身 … 静的はストアの URL そのもの。動的は https://ストアのドメイン/apps/…/q/コード の形の、アプリを経由する URL です
  • 印刷した後に飛び先を変える … 静的はできません。動的は編集画面で宛先を変えれば、刷った QR のまま新しいページへ飛びます
  • 読み取り回数 … 静的は数えません。動的は一覧と編集画面に回数が出ます
  • アプリの利用をやめたとき … 静的はそのまま読み取れます。動的は読み取れなくなります

動的 QR の URL はストアのドメインのまま(/apps/ の下)なので、お客様のスマートフォンには見慣れないドメインが表示されません。短縮 URL のサービスを挟まないため、社内や公共の Wi-Fi のフィルタに止められる心配も少ない作りです。

それでも、判断の軸は「その紙を、自分の手で回収・差し替えできるか」に置いてください。レジ横の卓上カードや店内のポップなら、必要になれば刷り直せるので、動的の便利さを安心して使えます。お客様の手に渡るチラシ、商品タグ、同梱物は回収できないので、静的を選ぶのが確実です。

デザイン

「デザイン」ブロックでは、刷り上がりの見た目を決めます。項目は 4 つです。

  • 前景色(初期値: 黒 #000000)… QR の模様の色です。四角い色見本を押すとカラーピッカーが開きます
  • 背景色(初期値: 白 #FFFFFF)… 模様の後ろの色です
  • ロゴ画像のURL(任意)(初期値: 空)… QR の中央に重ねる画像の URL です
  • 印刷サイズ(mm)(初期値: 30)… 実際に刷る一辺の長さです

前景色を紺に、印刷サイズを45mmに変え、印刷レイアウトの上下の文字を入れた状態

前景色を変えると、右側のプレビューにすぐ反映されます。下の画面は、前景色を紺(#1a3c6e)、印刷サイズを 45mm にしたときのものです。プレビューの下には「画面上のおおよその実寸です(45mm)。」と出ていて、初期値の 30mm のときより QR が大きく描かれています。

前景色を紺、印刷サイズを45mmにしたときのプレビュー。QRが紺色で、30mmのときより大きく表示される

色を選ぶときは、前景を濃く、背景を白に近くするのが基本です。前景を明るい色にしたり、薄い色どうしを組み合わせたりすると、読み取り機によっては認識しません。ブランドカラーを使うなら、濃い一色を前景に置き、背景は白のままにしておくのが無難です。

ロゴの欄の下には「ロゴを入れると、読み取りやすさを保つため自動で誤り訂正を強くします。」と書かれています。QR には、一部が汚れたり隠れたりしても読めるように、情報を重ねて持つ「誤り訂正」という仕組みがあります。このアプリでは、ロゴがないときは標準の強さ(M)、ロゴを入れたときは最も強い段階(H)に自動で切り替わります。

印刷サイズの欄の下には「余白と誤り訂正は、読み取れなくならないよう自動で設定されます。」とあります。QR の周りの余白(クワイエットゾーン)と誤り訂正の強さは、あえて変えられないようにしてあります。余白を削れる作りにすると、画面では読めるのに刷ると読めない QR が作れてしまうからです。

掲載画像。デザインと印刷レイアウトの入力欄

印刷サイズの目安は、値札や商品タグなら 20〜25mm、卓上カードなら 40〜50mm、ポスターなら 100mm 以上です。書き出す PNG は 300dpi なので、30mm なら約 354 ピクセル四方、100mm なら約 1,181 ピクセル四方の画像になります。ロゴを載せる場合は、誤り訂正が強くなっても小さく刷るほど不利になるため、30mm 以上を目安にしてください。

印刷レイアウト

「印刷レイアウト」ブロックには、2 つの欄があります。

  • QRコードの上の文字 … QR の上に入る 1 行です
  • QRコードの下の文字 … QR の下に入る 1 行です

ここに入れた文字は、書き出す画像の中に QR と一緒に描き込まれます。上には見出し(商品名やキャンペーン名)、下には行動を促す一文(「スマホで読み取ると詳しい情報が見られます」など)を入れるのが定番の組み合わせです。

右側のプレビューに描かれるのは QR だけで、上下の文字はプレビューには出ません。文字の入り具合は、書き出したファイルで確認します。

そして、この 2 つの欄は保存の対象外です。保存して画面を開き直すと空に戻るので、「文字を入れる → そのまま書き出す」を一続きで済ませるのが確実な手順です。

日本語の文字もそのまま描き込まれます。PDF に日本語を直接書き込むと、フォントの都合で文字が消えてしまうことがあるため、このアプリは QR と文字をまとめて画像にしてから PDF に配置しています。英語の管理画面で確かめたときだけ文字が出て、日本語では消える、という事故が起きない作りです。

流入計測

「流入計測」ブロックは、QR から来たお客様を Shopify のレポートで見分けられるようにするための欄です。ブロックの説明には「Shopifyの標準レポートで、このQRコードからの流入を見られるようにします。」とあります。

  • 参照コード(ref) … 流入元を表すコードです。空のまま保存すると、QR の名前から自動で作られます
  • utm_source … どこから来たか(例: in-store-shelf)
  • utm_medium … どんな媒体か(例: printed-qr-code)
  • utm_campaign … どの施策か(例: 2026-winter-wax)

流入計測の4つの欄に、参照コードとutmの値を入れた状態

値を入れると、読み取り先の URL の末尾にそれぞれが付け足されます。下の画面では、バリエーションの指定に続けて ref と 3 つの utm_ が並び、URL がかなり長くなっているのが分かります。

流入計測の値を入れたときの読み取り先。URLの末尾に ref と utm のパラメータが続いている

紙から QR で来たアクセスは、何もしないとリンク元の情報を持たないため「直接アクセス」と見分けがつきません。紙面ごとに値を変えておくと、「棚札とポスターのどちらから来た人が多いか」を比べる材料になります。

ただし、パラメータを足すほど URL は長くなり、QR の模様が細かくなります。読み取り先の URL が 200 文字を超えると、作成画面に次の警告が自動で出ます。

URLが長いため、小さく印刷すると読み取れないことがある旨の警告

警告の文面は「URLが長いため、小さく印刷すると読み取れないことがあります。印刷サイズを大きくするか、計測パラメータを減らしてください。」です。画面のプレビューは大きく表示されるので読めてしまい、刷って初めて読めないと分かる、という種類の失敗です。値札のように小さく刷る QR では、参照コードだけにとどめ、utm_ は入れないのが無難です。

プレビューとダウンロード

画面の右側には「プレビュー」と「ダウンロード」の 2 枚のカードがあります。プレビューには QR、実寸の目安、「読み取り先」の URL が表示され、右上には静的・動的のバッジが付きます。

掲載画像。プレビューで実寸サイズと読み取り先を確認し、PNG・SVG・PDFでダウンロードする

「読み取り先」は、刷った後に取り返しのつかない唯一の情報です。とくに静的 QR は、刷った後に飛び先を変えられません。書き出す前に、この URL をクリックして実際に開いてみる習慣をつけておくと安心です。

ダウンロードのボタンは 3 つです。

  • PNG … 300dpi の画像ファイルです。ワープロ、デザインツール、ラベル印刷ソフトに貼りやすい形式です
  • SVG … 拡大しても粗くならないベクター形式です。ポスターや看板のように大きく刷るときに向いています
  • PDF … A4 の用紙に、指定した印刷サイズで配置された形で出てきます。そのまま印刷できます

カードの下には「SVGは拡大しても粗くなりません。大きく印刷するときに使ってください。」と添えられています。迷ったら、値札や商品タグは PNG、ポスターは SVG、手元のプリンターで刷るだけなら PDF と覚えておけば足ります。

保存すると、画面のタイトルが「QRコードを作成」から QR の名前に変わります。このとき、印刷レイアウトの上下の文字は空に戻ります。

保存すると画面のタイトルがQRコードの名前に変わり、上下の文字は空に戻る

まとめて作成

左のメニューの「まとめて作成」を開くと、複数の商品の QR を一度に書き出す画面になります。冒頭の案内には、ここで作る QR は静的で、保存せずに画像として書き出すことが書かれています。

まとめて作成の初期画面。静的QRコードで保存せず画像として書き出す旨の案内がある

「対象の商品」の「商品を選択」を押すと、商品の選択画面が開きます。こちらは複数選択ができ、画面の左下に「0/100件の商品を選択済み」と上限が表示されます。101 件目はそもそも選べません。

まとめて作成の商品選択画面。左下に 0/100件の商品を選択済み と表示されている

選んだ商品は、「対象の商品」の下にタグの形で並びます。タグの「×」を押すとその商品だけを個別に外せ、「選択を解除」を押すと全部まとめて外せます。その下に「◯件の商品が対象です」と件数が出て、書き出しのボタンが 3 つ並びます。

商品を選ぶとタグで並び、ZIPでダウンロード(PNG)・ZIPでダウンロード(SVG)・面付けPDFでダウンロードの3つのボタンが出る

  • ZIPでダウンロード(PNG) … 商品ごとの PNG をまとめた ZIP ファイルです
  • ZIPでダウンロード(SVG) … 商品ごとの SVG をまとめた ZIP ファイルです
  • 面付けPDFでダウンロード … A4 に QR を何面も並べた PDF です

面付け PDF は、用紙の周囲に 10mm の余白を取り、QR どうしを 4mm 離して並べます。1 枚に何面入るかは印刷サイズから自動で計算されるので、列数や行数を考える必要はありません。小さめのサイズなら 1 枚に数十面、100mm なら数面になります。

掲載画像。全商品のQRコードをまとめて作成する画面

件数が多いときは、書き出しの途中で進み具合を示すバーが出ます。1 件ずつ印刷用の解像度で画像を作っているため時間がかかります。終わるまで画面を閉じないでください。100 件を超える商品を扱うときは、コレクションや売り場の単位で何回かに分けると、途中で止まりにくくなります。

ここで作った QR は一覧に残りません。後から「この商品だけ色を変えて刷り直したい」となったときは、作成画面で 1 件ずつ作り、保存しておくのが向いています。

設定

左のメニューの「設定」を開くと、上から「言語設定」「QRコードについて」「おすすめアプリ」の 3 つのカードが並びます。画面左上の「←」は「一覧に戻る」ボタンで、押すと QR の一覧に戻ります。

設定画面。言語設定、QRコードについて、おすすめアプリのカードが縦に並ぶ

「言語設定」では、「言語を選択」から管理画面の言語を選び、「変更する」を押します。日本語、英語、ドイツ語、フランス語、スペイン語、イタリア語、オランダ語、ポルトガル語(ブラジル・ポルトガル)、デンマーク語、スウェーデン語、ノルウェー語、フィンランド語、ポーランド語、チェコ語、トルコ語、タイ語、韓国語、中国語(簡体字・繁体字)の 20 言語から選べます。

「QRコードについて」のカードは、操作する項目のない読み物です。解約する前に知っておくべき 3 点が、いつでも見える場所に置かれています。

  • 静的 QR は、アプリを解約した後も読み取れる
  • 動的 QR は、解約すると読み取れなくなる。印刷して配るなら静的を選ぶ
  • スキャン数はおおよその値で、同時に読み取られると数えられないことがある

設定画面の上部。言語設定とQRコードについての注意書き

「おすすめアプリ」には、同じ開発元の他のアプリが並びます。右上の「×」で閉じられ、QR の機能には影響しません。

お客様が QR を読み取ったときの動き

このアプリはテーマを編集しないので、ほかのアプリでよくある「テーマに追加する」手順はありません。お客様の側で何が起きるかを、種別ごとに整理しておきます。

静的 QR の場合、スマートフォンのカメラが QR の中の URL を読み、そのままストアのページを開きます。アプリのサーバーは通りません。開くのはストアの通常のページなので、デザインはテーマのままです。カートに入れる QR なら商品が入ったカートが、割引コードの QR なら割引が適用された状態のストアが開きます。

動的 QR の場合、スマートフォンはまず https://ストアのドメイン/apps/…/q/コード を開きます。Shopify がこのリクエストをアプリに転送し、アプリが保存されている宛先を引いて、そちらへ転送し直します。同時に読み取り回数を 1 つ増やします。お客様から見れば一瞬でページが開くだけですが、間にアプリが挟まっているので、アプリが止まれば転送も止まります。

なお、開発用のストアのようにパスワードで保護されているストアでは、どちらの種別でも最初にパスワードの画面が出ます。これは Shopify の仕様で、公開中のストアでは起きません。

用途別のおすすめ設定

ここまでの項目を、よくある使い方ごとに組み合わせておきます。

値札・商品タグ

  • 種類 … 商品ページ(棚がサイズ別ならバリアントも指定)
  • 種別 … 静的(数が多く回収できないため)
  • 印刷サイズ … 20〜25mm
  • 上の文字 … 商品名
  • 下の文字 … 「詳しい情報はこちら」などの短い一文
  • 流入計測 … 参照コードだけ。utm は入れない
  • 書き出し方 … 点数が多ければ、まとめて作成の面付け PDF

小さく刷るので、URL を短く保つことが最優先です。参照コード 1 つなら URL はほとんど伸びません。

店頭ポスター・チラシ

  • 種類 … コレクション、またはページ・ブログ記事
  • 種別 … 静的(お客様の手に渡る紙なので)
  • 印刷サイズ … 40〜100mm
  • 上の文字 … 「新作コレクション」などの見出し
  • 下の文字 … 「スマホで読み取るとご覧いただけます」
  • 流入計測 … 参照コードと utm を紙面ごとに変える
  • 書き出し方 … 大きく刷るなら SVG

大きく刷る紙なら、計測パラメータを入れても読み取りに響きません。紙面ごとに値を変えておけば、次にどの紙を増やすかを決める根拠になります。

イベント会場でのセット販売

  • 種類 … カートに入れる(商品と数量、会場限定の割引コード)
  • 種別 … 静的(会場で配った紙も後日読めるように)
  • 印刷サイズ … 50mm 以上
  • 下の文字 … 「読み取るとカートに入ります」

読み取った時点で商品も割引も入っているので、レジに並ばずに購入まで進んでもらえます。

店内のポップで中身を入れ替えたい

  • 種類 … コレクション、または商品ページ
  • 種別 … 動的
  • 印刷サイズ … 40mm 以上

「今週のおすすめ」のように中身が変わるものを、同じ紙のまま回したいときの設定です。自分で回収できる紙に限って使い、読み取り回数を見ながら置き場所を変えてみる、といった使い方に向いています。

コードで自作する場合

Shopify の管理画面にはアプリなしで QR を作る機能が限られているため、自力でやるなら外部のツールかスクリプトを使うことになります。ここでは、Node.js で全商品の QR を印刷用の PNG として書き出す例を示します。アプリが内部でやっていることのうち、どこを自分で面倒を見ることになるのかを知る材料として読んでください。

商品の公開 URL を Admin API から取り出す

最初に、商品ごとの公開 URL を集めます。Shopify の Admin GraphQL API の products を 100 件ずつ読み、onlineStoreUrl(オンラインストアでの公開 URL)を取り出します。実行には、カスタムアプリで発行した Admin API のアクセストークンが必要です。

// fetch-products.mjs — 公開中の商品の URL を集める
const SHOP = 'your-store.myshopify.com';
const TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;

const QUERY = `query ($cursor: String) {
  products(first: 100, after: $cursor) {
    nodes { handle title onlineStoreUrl }
    pageInfo { hasNextPage endCursor }
  }
}`;

export const fetchProducts = async () => {
  const products = [];
  let cursor = null;
  do {
    const res = await fetch(`https://${SHOP}/admin/api/2025-10/graphql.json`, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json', 'X-Shopify-Access-Token': TOKEN },
      body: JSON.stringify({ query: QUERY, variables: { cursor } }),
    });
    const json = await res.json();
    // GraphQL は失敗しても HTTP 200 を返すので、errors を必ず見る
    if (json.errors) throw new Error(JSON.stringify(json.errors));
    const page = json.data.products;
    // 非公開の商品は onlineStoreUrl が null になるので除く
    products.push(...page.nodes.filter((p) => p.onlineStoreUrl));
    cursor = page.pageInfo.hasNextPage ? page.pageInfo.endCursor : null;
  } while (cursor);
  return products;
};

do ... while で次のページがある限り読み続け、最後に公開中の商品だけを残しています。コメントにも書いたとおり、Shopify の GraphQL は権限不足などで失敗しても HTTP のステータスは 200 のまま返ってきます。errors を見ないと、空の結果を「商品が 0 件だった」と取り違えます。

印刷サイズに合わせて PNG を書き出す

次に、npm の qrcode パッケージで画像にします。印刷サイズ(mm)から 300dpi のピクセル数を計算し、参照コードを付けた URL を QR にします。

// make-qr.mjs — mm を 300dpi のピクセルに直して PNG を書く
import fs from 'node:fs/promises';
import QRCode from 'qrcode';
import { fetchProducts } from './fetch-products.mjs';

const SIZE_MM = 25;
const DPI = 300;
const widthPx = Math.round((SIZE_MM / 25.4) * DPI); // 25mm なら 295px

await fs.mkdir('qr', { recursive: true });
for (const p of await fetchProducts()) {
  const url = new URL(p.onlineStoreUrl);
  url.searchParams.set('ref', `shelf-${p.handle}`);
  if (url.href.length > 200) console.warn(`URL が長い: ${p.handle}`);
  await QRCode.toFile(`qr/${p.handle}.png`, url.href, {
    width: widthPx,
    margin: 4, // 余白(クワイエットゾーン)は削らない
    errorCorrectionLevel: 'M',
  });
}

1 インチは 25.4mm なので、mm ÷ 25.4 × dpi でピクセル数が出ます。margin: 4 は QR の規格が求める余白の幅で、ここを小さくすると、画面では読めるのに刷ると読めない QR になりやすくなります。URL が 200 文字を超えたら警告を出しているのは、アプリの作成画面と同じ考え方です。

割引コードを URL に載せるときの変換

割引コードの QR を自作する場合は、コードを URL に載せるときの変換に注意が要ります。

// 割引コードを /discount/ の後ろに載せる形に変換する
// Shopify は 2 回重ねてエンコードした形しか受け付けない
const discountPath = (code) => `/discount/${encodeURIComponent(encodeURIComponent(code))}`;

discountPath('SAVE 10%'); // => '/discount/SAVE%252010%2525'

encodeURIComponent を 1 回だけかけた SAVE%2010%25 でもページは開きますが、割引は適用されません。エラーも出ないので、チラシを配ってからお客様に「割引が効かない」と言われて気づく、という失敗になりがちです。

自作とアプリの比べどころ

ここまでのスクリプトで、全商品の QR を PNG で書き出すところまではできます。ただし、アプリでは画面の操作で済む次の部分は、自分で作り足すことになります。

  • QR の上下に文字を入れて 1 枚の画像にする処理(日本語のフォントの扱いを含む)
  • A4 に余白と間隔を計算して並べる面付け PDF
  • コレクション、ページ、カート、割引コードといった、商品ページ以外の宛先の組み立て
  • 定期購入専用の商品をカートの QR に混ぜないための判定
  • アクセストークンの管理と、API のバージョンが上がったときの追随

年に一度、決まった商品の QR を作るだけならスクリプトでも足ります。売り場の入れ替えのたびに QR を作り直す店舗や、スタッフが交代で作業する店舗では、管理画面の中で誰でも同じ手順で作れることの価値が大きくなります。

Shopify 標準の割引 QR・Shopcodes と組み合わせるときの分担

Shopify 自身にも QR を作る手段があります。一つは管理画面の「ディスカウント」から作れる割引コードの QR(2026 年 4 月から)、もう一つは Shopify が提供する Shopcodes というアプリです。すでにこれらを使っている店舗が、このアプリを足すときの分担の決め方を書いておきます。

割引コードの QR は、どちらで作っても URL の形は同じ

このアプリの「割引コード」で作る QR は、読み取り先が /discount/コード で、記号の変換も Shopify 標準と同じ規則です。つまり、同じコードを両方で作っても、お客様が開くページは変わりません。

分担の決め手は、紙にするかどうかです。レジの画面に一時的に出すだけなら、ディスカウントの画面で作れば手数が少なく済みます。チラシや卓上カードに刷るなら、このアプリで作れば、上下の文字入れ、印刷サイズの指定、A4 の PDF までを一続きで済ませられます。手順としては、先にディスカウントで割引コードを作り、そのコードをこのアプリの「割引コード」の欄に入れる、という順番になります。

Shopcodes を使っているなら、既存の QR はそのまま残す

すでに Shopcodes で作った QR を店頭に貼っている場合、それを作り直す必要はありません。新しく刷る分からこのアプリに切り替え、古い紙は貼り替えの時期が来たときに順に置き換えていけば十分です。

切り替えの際は、流入計測の参照コードを、これまでと区別できる値にしておくのがおすすめです。たとえば新しく刷る棚札には shelf-2026 のような共通の接頭辞を付けておくと、Shopify のレポートで新旧の紙を分けて見られます。

同じ商品に 2 種類の QR を貼らない

一つの値札に、Shopcodes の QR とこのアプリの QR を並べて貼るのは避けてください。お客様はどちらを読めばよいか迷いますし、流入の数字も 2 つに割れて比べにくくなります。商品ごと、あるいは売り場ごとに、どちらで作った QR を使うかを決めておくと、後の集計が楽になります。

まとめ

「シンプルQRコード|お手軽QRコード作成・印刷アプリ」は、QR コードを作るだけでなく、紙に刷るところまでを管理画面の中で終わらせるためのアプリです。最後に、この記事で見てきた要点を振り返ります。

  • 初期値の静的 QR は、ストアの URL をそのまま書き込むので、アプリの障害や解約に影響されません。印刷物の寿命が契約と切り離されています
  • 宛先は商品ページ、コレクション、ページ・ブログ記事、任意の URL、カート、割引コードの 6 種類です
  • 色、ロゴ、ミリ単位の印刷サイズ、QR の上下の文字まで決めて、PNG・SVG・A4 の PDF で書き出せます
  • 「まとめて作成」なら、最大 100 件の商品の QR を、ZIP か面付け PDF で一度に書き出せます
  • 上下の文字は保存されない、URL が 200 文字を超えると警告が出る、といった細かな仕様を知っておくと、刷ってからの失敗を防げます

値札一枚、チラシ一枚の QR が、店頭とオンラインストアをつなぐ入口になります。その入口が、契約やアプリの都合で突然閉じないこと。それを最初の設計に据えたアプリです。7 日間の無料体験のうちに実際に 1 枚刷って、店頭で読み取るところまで試してみてください。

おすすめ Shopify アプリ

同じ開発元 UnReact のアプリの中から、店頭と組み合わせやすいものを紹介します。

シンプル店舗受け取り|お手軽ローカルピックアップ

カートページで、受け取る店舗と日時をお客様に指定してもらえるアプリです。店頭の QR からオンラインで注文してもらい、後日お店で受け取ってもらう、という流れを作れます。

シンプル自動適用クーポン|お手軽クーポンバナー

ストアに表示したクーポンのバナーを押すだけで、割引が自動で適用されるアプリです。QR で来たお客様に、ストアの中でも同じキャンペーンを案内したいときに組み合わせやすい一本です。

シンプル購入後クーポン表示|お手軽サンクスページクーポン配信

購入後のサンクスページにクーポンを表示して、次の購入を後押しするアプリです。店頭の紙から初めてオンラインで買ってくれたお客様に、2 回目のきっかけを渡せます。

シンプル割引率表示|お手軽値引き率・ディスカウント表示

商品ページに割引率や割引額を表示するアプリです。値札の QR から開いた商品ページで、セール価格の大きさがひと目で伝わるようになります。

© 2021 powerd by UnReact