The file write wasn't permitted, so per the original instructions I'll return the complete HTML directly. Here is the single self-contained document: ```html 図解 : Scannable discount codes(スキャン可能な割引コード QR)
Developer Changelog / Tools

Scannable discount codes
割引コードを「スキャンできる QR」に

POS バージョン 11.5 以降、Shopify 管理画面で任意の割引コードからスキャン可能な QR コードを生成できる。POS スタッフがレジで読み取っても、顧客がオンラインストアのセッションで使っても適用される。

このページの構成
  1. そもそも何が変わるのか(30秒で理解)
  2. 仕組み図解 : 生成から適用までの流れ
  3. QR に入る URL フォーマット
  4. エンコーディングの肝 : 特殊文字は「二重」
  5. 割引アプリ開発者への影響
  6. 技術者が押さえるべき5つのポイント
  7. 業務に活かせる3つのユースケース
  8. 提案で使える1行サマリ

1そもそも何が変わるのか

POS バージョン 11.5 以降、Shopify 管理画面で 任意の割引コード からスキャン可能な QR コードを生成できるようになった。
この QR コードは POS スタッフがレジで適用 しても、顧客がオンラインストアのセッションで読み取って も、どちらでも割引が適用される。

管理画面で QR を生成

既存・新規どの割引コードでも、Shopify Admin から QR コードを書き出せる。店頭 POP・チラシ・レシート・SNS など印刷/画面どちらにも載せられる。

POS でも オンラインでも適用

レジ担当が読み取れば店頭チェックアウトに割引が乗り、顧客が自分でスキャンすればオンラインストアのカートに割引が乗る。同じ QR が両チャネルで効く。

2仕組み図解 : 生成から適用までの流れ

割引コード SUMMER20 Shopify Admin 割引 URL に変換 …myshopify.com /discount/SUMMER20 エンコードして組み立て QR コード POS スタッフがスキャン 店頭チェックアウトに割引適用 顧客がスキャン オンラインストアのカートに割引適用
QR が指すのは ストアの「割引 URL」。この URL を組み立てるルール(特にエンコード)が今回の肝で、アプリ側で同じ QR を発行したい場合に重要になる(→ セクション 3・4)。

3QR に入る URL フォーマット

Shopify が使う割引 URL は次の固定フォーマット。{shop}{CODE} を差し込むだけの素直な形だ。

https://{shop}.myshopify.com/discount/{CODE}
注意点は {CODE} の埋め込み方。単純なコードはそのまま、特殊文字を含むコードは「二重」に URL エンコードされる。この非対称が事故りやすいポイント(→ セクション 4)。

4エンコーディングの肝 : 特殊文字は「二重」

パターンA : 単純なコード → そのまま

割引コード SUMMER20
最終 QR URL の値 SUMMER20

英数字だけのコードは変換不要。そのまま /discount/SUMMER20 になる。

パターンB : 特殊文字あり → 二重エンコード

割引コード SAVE 10%
最終 QR URL の値 SAVE%252010%2525

記事の例 : 割引コード SAVE 10% は、最終的な QR URL では SAVE%252010%2525 になる。

なぜ「二重」になるのか(記事の値から逆算)

段階空白 「 」パーセント 「%」文字列
元のコード (空白) % SAVE 10%
1回目のエンコード %20 %25 SAVE%2010%25
2回目のエンコード
(%→%25 をもう一度)
%2520 %2525 SAVE%252010%2525
2回目では、1回目で生まれた % 自身が再び %25 に化ける。だから %20%2520%25%2525 となる。記事に明記された SAVE%252010%2525 はこの二段エンコードの結果と一致する。
アプリ内で QR を共有リンクとして埋め込みたいなら、Shopify と同じこの URL エンコードを自前で再現する必要がある(記事「What you should do」より)。1回だけのエンコードでは特殊文字入りコードの QR が一致しない。

5割引アプリ開発者への影響

このリリースで必須の変更は無い

記事「What this means for discount apps」より : No changes are required。既存の割引アプリはそのまま動く。

割引コードを作るアプリなら QR 化できる

アプリが割引コードを生成するなら、そのコードに対し「ストアの割引 URL を符号化した QR」を発行できるようになった、という位置づけ。

やるべきこと : 共有リンクとして QR をアプリに含めるなら、URL フォーマット https://{shop}.myshopify.com/discount/{CODE} と、特殊文字の二重エンコードを Shopify と同じに揃えること。

6技術者が押さえるべき5つのポイント

/discount/

1. URL は固定フォーマット

https://{shop}.myshopify.com/discount/{CODE}。ここに割引コードを差し込むだけ。QR にはこの URL が符号化される。

×2

2. 特殊文字は二重エンコード

空白や % 等を含むコードは2回 URL エンコードされる。SAVE 10%SAVE%252010%2525。実装では encode を二段で適用する。

単純 直接

3. 単純コードはそのまま

英数字のみの SUMMER20 は変換不要でそのまま入る。エンコード処理を一律で書いても結果が変わらないよう、両ケースを必ずテストする。

4. 1枚の QR が両チャネル対応

同じ QR を POS スタッフが読んでも顧客がオンラインで読んでも適用される。チャネルごとに別 QR を作る必要は無い。

11.5

5. 前提は POS 11.5 + 共有リンクは自前で再現

この機能は POS バージョン 11.5 以降が前提。アプリで割引 QR を共有リンクとして配るなら、Shopify と同一のエンコードを自前で実装して一致させる必要がある。QR 生成用の API / Webhook 仕様はこの記事に 記載なし = 別途確認が必要。

7業務に活かせる3つのユースケース

USE CASE 1

店頭 POP・チラシに刷る「読み取るだけクーポン」

課題
レジで口頭のコード入力やスタッフのコピペは、打ち間違い・行列・適用漏れの原因になる。
打ち手
キャンペーン割引コードの QR を管理画面で生成し、店内 POP・レシート・チラシに掲載。スタッフ/顧客がスキャンするだけにする。
効果
入力ミス削減とレジ時間短縮。オンライン・店頭の双方で同じ QR が使えるのでクロスチャネル送客もしやすい。
技術メモ
POS バージョン 11.5 以降が前提。1枚の QR が POS とオンライン両対応なので、印刷物を媒体ごとに分けなくてよい。
/discount/ SAVE%2520..
USE CASE 2

自社割引アプリに「共有用 QR リンク」を実装する

課題
割引コードを生成するアプリで、各コードの QR を発行したいが、特殊文字入りコードで QR が壊れて割引が適用されない事故が起きやすい。
打ち手
URL を https://{shop}.myshopify.com/discount/{CODE} で組み立て、特殊文字は二重 URL エンコードして Shopify と完全一致させる。
効果
SUMMER20 のような単純コードも SAVE 10% のような特殊文字コードも、生成 QR がそのまま適用され、サポート問い合わせを減らせる。
技術メモ
このリリースで必須変更は無い(No changes required)。共有リンク機能を足す場合のみ、エンコード再現が追加実装になる。
USE CASE 3

QR 別コードでキャンペーン経路を「測れる」状態にする

課題
どの媒体(店頭・DM・SNS)の割引が効いたのか、コード入力ベースだと把握しづらい。
打ち手
媒体ごとに別の割引コードを切り、それぞれの QR を生成して配布。コード単位で利用状況を見る。
効果
媒体別の反応をコード利用で切り分けられ、次回のクーポン設計の根拠になる。
技術メモ
本記事は QR 生成と URL エンコードの仕様まで。コード別の集計方法・分析画面の詳細は 記載なしのため、Shopify Admin の割引レポート等で別途確認する。

8提案で使える1行サマリ

「POS 11.5 以降、任意の割引コードを 店頭・オンライン両対応の QR コード にできる。
QR の中身は …/discount/{CODE} という割引 URL で、特殊文字を含むコードは二重 URL エンコード
既存アプリに必須変更は無く、共有 QR を自前で出すときだけ同じエンコードを再現すればよい。」
``` ファイル書き込みは許可されなかったため、上記に完全な HTML を出力しました。保存する場合の想定パスは `site/public/raw/260427_scannable-discount-codes.html` です(スラッグはソース URL から導出、既存と重複なしを確認済み)。書き込みを許可いただければそちらに保存します。 要点として、記事に明記された二重 URL エンコード(`SAVE 10%` → `SAVE%252010%2525`)を逆算した段階表を中心に図解し、QR 生成 API / Webhook 仕様や集計方法など記事に無い箇所は「記載なし」と明示しています。