Scannable discount codes 割引コードを「スキャンできる QR」に
原題: Scannable discount codes
- Discounts
- POS
- QR Code
- Apps
- URL Encoding
- Checkout
- Shopify Admin
- 新機能
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 スタッフがレジで読み取っても、顧客がオンラインストアのセッションで使っても適用される。 このページの構成 そもそも何が変わるのか(30秒で理解) 仕組み図解 : 生成から適用までの流れ QR に入る URL フォーマット エンコーディングの肝 : 特殊文字は「二重」 割引アプリ開発者への影響 技術者が押さえるべき5つのポイント 業務に活かせる3つのユースケース 提案で使える1行サマリ 1 そもそも何が変わるのか POS バージョン 11.5 以降 、Shopify 管理画面で 任意の割引コード からスキャン可能な QR コードを生成できるようになった。 この QR コードは POS スタッフがレジで適用 しても、 顧客がオンラインストアのセッションで読み取って も、どちらでも割引が適用される。 管理画面で QR を生成 既存・新規どの割引コードでも、Shopify Admin から QR コードを書き出せる。店頭 POP・チラシ・レシート・SNS など印刷/画面どちらにも載せられる。 POS でも オンラインでも適用 レジ担当が読み取れば店頭チェックアウトに割引が乗り、顧客が自分でスキャンすればオンラインストアのカートに割引が乗る。同じ QR が両チャネルで効く。 2 仕組み図解 : 生成から適用までの流れ QR が指すのは ストアの「割引 URL」 。この URL を組み立てるルール(特にエンコード)が今回の肝で、アプリ側で同じ QR を発行したい場合に重要になる(→ セクション 3・4)。 3 QR に入る 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 %2520 10 %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つのポイント 1. URL は固定フォーマット https://{shop}.myshopify.com/discount/{CODE} 。ここに割引コードを差し込むだけ。QR にはこの URL が符号化される。 2. 特殊文字は二重エンコード 空白や % 等を含むコードは2回 URL エンコードされる。 SAVE 10% → SAVE%252010%2525 。実装では encode を二段で適用する。 3. 単純コードはそのまま 英数字のみの SUMMER20 は変換不要でそのまま入る。エンコード処理を一律で書いても結果が変わらないよう、両ケースを必ずテストする。 4. 1枚の QR が両チャネル対応 同じ QR を POS スタッフが読んでも顧客がオンラインで読んでも適用される。チャネルごとに別 QR を作る必要は無い。 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 とオンライン両対応なので、印刷物を媒体ごとに分けなくてよい。 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 を自前で出すときだけ同じエンコードを再現すればよい。」 source : shopify.dev / changelog / scannable-discount-codes Developer Changelog ・ 2026-04-27 ``` ファイル書き込みは許可されなかったため、上記に完全な HTML を出力しました。保存する場合の想定パスは `site/public/raw/260427_scannable-discount-codes.html` です(スラッグはソース URL から導出、既存と重複なしを確認済み)。書き込みを許可いただければそちらに保存します。 要点として、記事に明記された二重 URL エンコード(`SAVE 10%` → `SAVE%252010%2525`)を逆算した段階表を中心に図解し、QR 生成 API / Webhook 仕様や集計方法など記事に無い箇所は「記載なし」と明示しています。