このアプリは、管理画面で商品と割引コードを選ぶと、
その内容を含んだ購入画面へのリンクを組み立ててくれます。
記事では、管理画面のすべての画面とすべての設定項目を、実際の画面と一緒に順番に見ていきます。
画面に書かれていない挙動(押せない条件・反映までの時間・上限に達したときの動き)も、
あわせて補足していきます。
後半には、アプリを使わずに同じことをやろうとした場合にどこまで書けるのか、
どこから手に負えなくなるのかも、実際のクエリと一緒に載せました。
このアプリが何をしているのかを、先に押さえておきます。
ここが分かると、あとの設定項目の意味がつながります。
アプリが生成しているのは、次の形をした 1 本の URL です。
https://<ストアのドメイン>/cart/<バリエーションID>:<数量>?discount=<割引コード>
パスの /cart/ に続く数値がバリエーションの ID、コロンの後ろが数量です。
クエリの discount に割引コードを入れると、開いた時点で適用されます。
アプリの画面でやっているのは、この文字列の組み立てです。
商品をピッカーで選び、数量を決め、割引コードにチェックを入れると、
その内容がそのまま URL の各部分になります。

生成された URL をよく見ると、商品と割引のほかに 2 つのパラメータが付いています。
...?discount=SUMMER20&attributes[_cl]=skepne88&ref=skepne88
attributes[_cl] と ref がそれです。どちらも同じ値(そのリンクの識別子)が入ります。
attributes に入れた値は、購入されたときに注文に残ります。
アプリはこれを手がかりに「どのリンクから来た注文か」を判定して、
注文数と売上を積み上げています。
成果の集計が成り立っているのは、この目印のおかげです。
ref のほうは Shopify 側の流入計測に拾われることを期待した予備の目印です。
こちらは注文の直後には読めないことがあるため、集計の主役にはしていません。
もう 1 つ注目したいのが、URL の先頭が自分のストアのドメインであることです。
どこにもアプリのドメインが出てきません。
つまりお客様がこのリンクを開いたとき、通信するのは Shopify だけです。
アプリのサーバーは 1 回も呼ばれません。
この作りの帰結は 2 つあります。
1 つは、アプリの状態にリンクが左右されないこと。
解約しても、アンインストールしても、アプリ側で障害が起きても、
すでに配った URL と印刷した QR コードは動き続けます。
もう 1 つは、クリックを数える場所が無いこと。
リンクがアプリを通らないので、開かれた回数を知る手段がありません。
分かるのは、注文まで至ったぶんだけです。
前者を取るために後者を捨てた、という設計になっています。
機能の一覧としてではなく、日々の運用で何が変わるかという角度で整理します。
用途が合わない場面もあるので、先に書いておきます。
流入の分析を細かくやりたいストアには向きません。
取れるのは注文数と売上までで、何人が開いたかは分かりません。
広告の出稿面ごとに開封率まで見たいのであれば、計測用のリダイレクタを持つ仕組みが要ります。
リンクの内容を頻繁に差し替えるストアにも向きません。
商品も割引も URL 自体に入っているため、中身を変えたら別のリンクになります。
「同じ URL のまま今日は A 商品、明日は B 商品」という運用はできません。
定期購入(サブスクリプション)を売っているストアでは、その商品は載せられません。
Shopify 側の仕様で販売プランが適用されないためで、これはアプリ側では回避できません。
秒単位で止めたいリンクがあるストアも注意が必要です。
公開の終了日は翌日の集計で処理されるため、止まるまで最大 1 日ずれます。
確実に止めたいときは、後述の「無効化」を手動で行うことになります。
数百本のリンクを常時抱えるストアでは上限に当たります。
1 ストア 200 件までで、アーカイブ済みも件数に含まれます。
プランは 1 つだけです。
機能によるプランの出し分けはありません。契約すればすべての機能が使えます。
Shopify の管理画面からインストールします。
1. 管理画面の左下にある「設定」を開きます。

2. 「アプリと販売チャネル」を選び、Shopify App Store を開きます。

3. 「シンプルチェックアウトリンク」を検索し、Shopify App Store の掲載ページからインストールします。

権限の確認画面では、商品・注文・割引の読み取りと、チェックアウトの検証が求められます。
お客様の氏名・メールアドレス・住所・電話番号は読み取りません。
集計するのはリンクごとの注文数と売上金額だけです。
テーマの編集は必要ありません。ストアフロントには何も表示しないアプリだからです。
サイドバーは 2 つ(日本語で使っているときは 3 つ)です。

アプリを開くと最初に出る画面です。

言語設定では、管理画面の表示言語を選びます。
「言語を選択」のプルダウンから選び、「変更する」ボタン を押すと切り替わります。
選ばずにプルダウンを変えただけでは切り替わらないので、ボタンを押すのを忘れないでください。
対応しているのは日本語・英語を含む 20 言語です。
選んだ言語はブラウザに保存されます。 別のパソコンから開くと既定の言語に戻ります。
スタッフごとに表示言語を変えられる、という言い方もできます。
おすすめアプリには、当社が提供している他のアプリが並びます。
右上の × で閉じられます。機能には影響しません。

画面の右上には 「チェックアウトリンク」 というボタンがあります。押すと主機能の一覧へ移動します。
サイドバーからでも同じ画面へ行けます。
このアプリの主役の画面です。作ったリンクがすべてここに並びます。

画面の上に、常に 2 つの案内が出ています。どちらも運用に直結する内容です。
リンクの上限について … リンクは 1 ストアあたり 200 件までです。
現在の件数もここに出ます。
注意したいのは、アーカイブ済みのリンクもこの 200 件に含まれることです。
データの保存先の都合によるもので、上限に達したらアーカイブ済みのリンクを
「完全に削除」して空けるしかありません。
成果の集計について … 注文数と売上は 1 日 1 回の集計です。
注文の直後には反映されません。
一度も集計していないときは「まだ集計していません」、集計済みのときは最後に集計した日時が出ます。
ここに日時が出ていれば、集計は動いています。
一覧の列は 5 つです。

リンク名の下に出る緑のバッジは、そのリンクに含まれている割引コードです。
一覧を眺めるだけで「どのリンクにどのクーポンを載せたか」が分かります。
リンクは 2 つのタブに分かれます。それぞれ件数が横に出ます。

タブの選択は URL に残りません。一覧へ戻るたびに「有効」から表示されます。
日々の運用で見たいのは有効なリンクなので、そちらを既定にしてあります。
行の左端のチェックボックスで複数選べます。選ぶと上部に操作が出ます。

できるのは 3 つです。
ここで 1 つ、知らないと戸惑う挙動があります。
一括の「完全に削除する」は、選んだものが全部アーカイブ済みでないと実行できません。
有効なリンクが 1 件でも混ざっていると、全体を拒否します。
「消せるものだけ消す」という動きにしなかったのは、
何件消えたのか分からないまま成果が失われるのを避けるためです。
リンクに載せた商品が削除・非公開・在庫切れになると、一覧に印が出ます。
壊れたリンクを配り続ける事故を防ぐための確認です。
ただし、この確認は完全ではありません。
在庫があるように見えても、実際の購入画面で「在庫切れ」になる商品が存在します
(他社倉庫から発送する商品などで起こります)。
印が出ていなくても、大事なキャンペーンの前には実際にリンクを開いて確かめてください。
一覧の右上「リンクを作成」から開きます。画面は 3 つのカードに分かれています。

「商品を選択」ボタン を押すと、Shopify 標準の商品選択画面が開きます。
複数の商品を選べますし、同じ商品の違うバリエーションを別々に選ぶこともできます。

この画面は Shopify が用意している標準の商品選択です。
商品名で検索でき、商品の下にバリエーションが並ぶので、
「S サイズだけ」「ギフトカードの $50 だけ」といった選び方ができます。
画像の例では Gift Card の下に $10 / $25 / $50 / $100 の 4 つが出ています。
選ぶと、作成画面の商品カードに行として追加されます。

選んだあとは、行ごとに数量を変えたり、削除で外したりできます。
セット販売のリンクを作るときは、ここで数量を調整します。
カードの下には、定期購入の商品は載せられない旨の案内が常に出ています。
Shopify の仕様でカートパーマリンクでは定期購入が適用されず、
通常購入として売れてしまうためです。選ぼうとすると作成画面が止めます。
商品を積みすぎたときも止まります。
URL の長さが 1,800 文字を超えると作成できません。
ブラウザ側の上限(およそ 2,000 文字)に当たるのを防ぐためで、
超えたまま配るとカートの中身が黙って欠けます。

ストアに登録済みの割引コードが一覧で出ます。使いたいものにチェックを入れてください。
割引を使わないリンクも作れます。
割引コードが 1 つも無いストアでは、その旨の案内が出ます。
カードの下には、割引コードが URL に含まれるため第三者に共有され得ること、
Shopify 側で「利用回数の上限」「有効期限」「1顧客1回」を設定しておくことを勧める案内が出ます。
コードにチェックを入れると、その中身が展開されます。

並ぶのは 8 項目です。
ここをわざわざ展開しているのには理由があります。
この条件が外れていても、Shopify はエラーを返しません。
対象外の商品・条件未達・対象外の顧客・上限到達のいずれでも、
割引が適用されないだけでリンクは普通に開きます。
気づけるのは「割引の入っていない注文」を見たときです。
だから、選ぶ前に読める位置に出しています。
割引の組み合わせによっては、警告が出ます。
割引コードの上限や期限は、Shopify のディスカウント画面で設定します。


6 つの項目があります。
リンク名 … 管理画面で見分けるための名前です。一覧と詳細画面に出ます。
空欄なら商品名が使われます。お客様には見えません。
「10月号メルマガ用」「店頭POP(渋谷)」のように配る場所を入れておくと、
あとで成果を読み解きやすくなります。
公開の終了日 … カレンダーから選びます。空欄なら期限なしです。
終了日の当日までは購入できます。
翌日の集計で自動的に無効化される仕組みなので、止まるまで最大 1 日ずれます。
「この時刻ぴったりに止めたい」という使い方には向きません。
注文メモ … 入力した文章が、注文の「メモ」欄に表示されます。
「メルマガ 10月号経由」のように入れておくと、注文画面を見ただけで流入元が分かります。
遷移先 … リンクを開いたお客様が最初に見る画面です。2 つから選べます。
キャンペーンで 1 商品だけを売るなら前者、
ついで買いを狙いたいときや送料の条件をカートで見せたいときは後者が向いています。
言語コード … ja や en のように入力すると、その言語で購入画面が開きます。
空欄ならストアの既定言語です。
英語のメールマガジンから来たお客様には英語の購入画面を出す、といった使い分けができます。
入れる言語は、Shopify の言語設定で公開しているものにしてください。
公開していない言語コードを入れても切り替わりません。

Shop Pay で開く … チェックを入れると、Shop Pay の購入画面が開きます。
Shop Pay に登録済みのお客様が多いストアでは、入力の手間が減ります。

入力に合わせて URL がその場で組み上がります。文字数も表示されるので、
1,800 文字の上限に近づいていないかをここで確認できます。
カードの説明文には、このリンクがストアへ直接つながること、
アプリを削除しても動き続けること、そのかわりクリック数は取得できないことが書かれています。
一覧の「詳細」を押すと、そのリンクの画面が開きます。

URL の下に 3 つのボタンが並びます。
ここで気づくのが、「編集」ボタンが無いことです。
意図的に作っていません。
商品も割引も URL 自体に入っているため、既存のリンクを書き換えても
すでに配った URL の中身は変わりません。
管理画面の表示と実物が食い違い、しかも同じリンクの成果として新旧の注文が混ざってしまいます。
内容を変えたいときは複製して新しいリンクを作り、古いほうをアーカイブするのが安全です。
なお、URL に入らない値(リンク名・公開の終了日)は、あとから変えても食い違いは起きません。

そのリンクを開いたときにカートへ入る商品と、適用される割引コードが並びます。
カードの下に、設定していない割引が入ることがある旨の注意が出ています。
お客様が以前に使った割引コードがブラウザに残っていると、
Shopify の仕様でその割引も一緒に適用されることがあります。アプリからは外せません。
確認するときはシークレットウィンドウで開いてください。

リンクごとに QR コードが自動で作られ、画面に表示されます。
生成はブラウザ側で行っているので、別のサービスにリンクを渡すことはありません。
注意点が 1 つあります。URL が長いほど QR は細かくなります。
商品を積むほど URL は伸び、細かくなりすぎると印刷しても読み取れません。
危ない密度になると「印刷では読み取りにくい可能性があります」という警告が画面に出ます。
その表示が出たら、商品の数を減らしたリンクを別に作ることを検討してください。

このリンク経由の注文数と売上が出ます。1 日 1 回の集計なので、注文の直後には反映されません。
集計は、注文に付いた目印(attributes)を頼りにリンクを特定しています。
リンクを開いて購入すると、その注文に目印が残る仕組みです。
リンクはストアへ直接つながるため、アプリからは停止できません。
このカードでは、Shopify 側で止める方法を 2 つ案内しています。
どちらも Shopify の標準機能なので確実に効きますが、
そのリンク以外にも影響が及びます(同じ割引コードを使った他のリンクも止まります)。
リンク単位で止めたいときは、次の「無効化」を使います。

配布済みのリンクから来た購入を、購入画面でブロックします。
リンク自体は開けますが、購入を完了できなくなります。
「無効化する」を押すと確認が出て、もう一度押すと有効になります。
無効化済みのリンクには「無効化済み」のバッジが付き、
「無効化を解除する」でいつでも戻せます。
実際の見え方は、購入画面のエラーではなく、ストアのトップページへ戻される動きになります。
カードの説明文にあるとおり、これは配布を止めるための機能で、悪意への対策ではありません。
URL からリンクの目印を取り除かれた場合は素通りします。
メールや QR コードから来る通常のお客様には確実に効きます。
もう 1 つ知っておきたいのが、Shopify 側でチェックアウトの検証を無効にすると、
無効化は一切効かないことです。
効いていないときは画面に「無効化が効いていません」と出ます。
チェックアウトまわりの設定は、Shopify の設定 > チェックアウトにあります。

なお、アプリをアンインストールすると無効化は解除され、リンクは再び使えるようになります。
「アプリが無くなってもリンクは死なない」という設計に合わせてあります。

一覧を整理するための機能です。「アーカイブ済み」タブへ移るだけで、
成果(注文数・売上)も無効化の状態もそのまま残り、いつでも戻せます。
確認のダイアログにも出ますが、アーカイブしても配布済みのリンクは止まりません。そのまま購入できます。
このアプリでは、一覧の整理(アーカイブ)と購入の停止(無効化)を分けています。
整理のつもりの操作で売上が止まるのは、エラーの出ない売上損失になるためです。
リンクの定義と成果を消します。取り消せません。
実行できるのはアーカイブ済みのリンクだけです。
ここにも 1 つ、意図的な作りがあります。
完全に削除しても、無効化は解除されません。
解除してしまうと「削除したら再び買えるようになった」という、より危険な逆転が起きるためです。
そのかわり、削除後はアプリから無効化を解除できなくなります。確認画面にもその説明が出ます。

日本語で使っているときだけサイドバーに出ます。
よくある問い合わせへの回答が並びます。
このアプリにテーマへの追加はありません。
ストアフロントに何も表示しないアプリなので、テーマ拡張を持っていません。
テーマに JavaScript も CSS も 1 バイトも追加しないため、
ストアの表示速度に影響しません。
表示速度を気にしてアプリを増やせないストアでも、この点は安心して導入できます。
画面の説明だけでは見えにくい、実際の回し方をまとめます。
リンク名は管理画面でしか使われないので、後回しにされがちです。
ところが数が増えたとき、一覧を見て中身を思い出せるかどうかがここで決まります。
おすすめは、配る場所と時期を入れる ことです。
IG プロフィール 2026-10メルマガ 10月号 上段バナー店頭POP 渋谷店 秋冬商品名はすでに一覧の「商品」列に出ているので、リンク名に入れる必要はありません。
同じ商品を複数の経路で売るときほど、この付け方が効いてきます。
リンク名は管理画面の中だけのものですが、注文メモは注文画面に出ます。
リンク名と同じ文字列を入れておくと、
注文を見た担当者が「この注文はどこから来たのか」をその場で判断できます。
集計は日次なので、リアルタイムに知りたい場面ではこちらのほうが早く分かります。
既存の割引コードをそのまま載せることもできますが、
そのリンク専用のコードを作っておくと、あとの判断が楽になります。
理由は「このリンクを止めるには」の選択肢が増えるからです。
専用コードなら、そのコードを無効にするだけでそのリンクの割引だけを止められます。
他のリンクや店頭で配ったクーポンには影響しません。
作るときは、Shopify のディスカウント画面で利用回数の上限・有効期限・1顧客1回を
設定しておいてください。アプリ側でも、これらが未設定だと警告が出ます。
詳細画面の「開いて確認する」は、新しいタブで実際のリンクを開きます。
カートに入る商品と割引が意図どおりかを、配る前に目で見られます。
このときシークレットウィンドウで開くことをおすすめします。
普段使っているブラウザには過去に使った割引コードが残っていることがあり、
そのままだと「設定していない割引も一緒に入った状態」が見えてしまうためです。
終わったリンクをそのまま「有効」タブに置いておくと、
一覧が伸びて今動いているものが埋もれます。
アーカイブは購入を止めません。あくまで一覧の整理です。
成果の数字も残るので、あとから「去年の同じ時期はどうだったか」を見返せます。
200 件の上限に近づいたときだけ、アーカイブ済みのものを完全に削除して空けてください。
削除すると成果の数字も消えるので、必要ならその前に控えておくことをおすすめします。
紙に刷った QR コードは回収できません。
終了日を入れておくと、その日を境に「読み取れるのに買えない QR」が世の中に残ります。
印刷物用のリンクは終了日を空欄にしておき、
止めたくなったときに「無効化」で対応するほうが、判断を後ろ倒しにできます。
カートパーマリンク自体は Shopify の公式仕様なので、アプリを使わずに作ることもできます。
どこまでできるのかを書いておきます。
いちばん素朴な方法です。バリエーション ID が分かっていれば、URL を書くだけで済みます。
https://example.myshopify.com/cart/43075696853067:1?discount=SUMMER20
43075696853067 がバリエーションの数値 ID、:1 が数量です。
複数の商品を入れたいときはカンマで区切ります。
https://example.myshopify.com/cart/43075696853067:1,43075696885835:2
問題はバリエーション ID の調べ方です。この値は商品一覧の画面には表示されません。
商品の編集画面を開いて URL の末尾を見るか、次のように API から引くことになります。
商品とバリエーションをまとめて取るなら、次のクエリになります。
first: 10 は取得件数で、商品が多いストアではページ送りが必要になります。
query {
products(first: 10) {
edges {
node {
title
variants(first: 10) {
edges { node { id title } }
}
}
}
}
}
商品の一覧そのものは、Shopify の商品管理画面から確認できます。
ただしバリエーションの数値 ID は、この一覧には出てきません。

上のクエリで返ってくる id は gid://shopify/ProductVariant/43075696853067 という形式です。
カートパーマリンクに使うのは末尾の数値だけなので、切り出す必要があります。
ここは間違えやすいところです。gid://... のまま URL に入れても 404 にはならず、
「空のカート」に飛ぶという形で失敗します。エラーが出ないので気づきにくい挙動です。
「どのリンクが売れたか」を知りたい場合、URL に目印を付けて注文と突き合わせることになります。
https://example.myshopify.com/cart/43075696853067:1?attributes[_src]=mailmagazine_10
attributes に入れた値は注文の customAttributes に残るので、
Admin API で注文を走査すれば集計できます。
query {
orders(first: 50, query: "created_at:>=2026-09-01") {
edges {
node {
name
customAttributes { key value }
totalPriceSet { shopMoney { amount currencyCode } }
}
}
}
}
このクエリは、指定した日付以降の注文を 50 件まで取り、
それぞれの customAttributes(リンクに載せた目印)と合計金額を返します。
目印ごとに金額を足し合わせれば、リンク別の売上が出せます。
ここまでは書けます。ただし実運用にするには、
定期実行の仕組み、前回どこまで数えたかの記録、
同じ注文を二重に数えない工夫が必要になります。
とくに「前回の続きから数える」処理は、境界の扱いを誤ると
実行のたびに売上が水増しされるという形で壊れます。
チェックアウトリンク系のアプリはいくつかありますが、
このアプリと併用するという発想は基本的に必要ありません。
同じ役割のアプリを 2 つ入れても、リンクの管理場所が 2 か所になるだけだからです。
選び分けの軸になるのは、次の 2 点です。
1. リンクをアプリのサーバーに通すかどうか
前述のとおり、このアプリはストアの URL をそのまま使います。
アプリを経由する方式のアプリは、管理画面からリンクを止められるという利点があります。
その代わり、リンクの生死がアプリの稼働に左右されます。
印刷物に刷るなら前者、Web だけで完結してリンクを頻繁に止めたいなら後者、という分け方になります。
2. 管理画面の言語
日本語で運用しているストアでは、日々触る画面が日本語かどうかが効いてきます。
スタッフに引き継ぐときの説明コストも変わります。
なお、このアプリを入れても他のアプリのリンクは壊れません。
カートパーマリンクは Shopify の公式仕様なので、
別のアプリで作ったリンクもそのまま動き続けます。
乗り換えを検討する場合は、既存のリンクを止めずに並行運用してから切り替えられます。
「シンプル チェックアウトリンク」は、
商品と割引を含んだ購入画面直行リンクを、日本語の管理画面で作れるアプリです。
作ったリンクはストアの URL そのものなので、アプリを解約しても動き続けます。
チラシや商品同梱物に QR コードを刷るような、
配ってしまったら回収できない販促にこそ向いています。
そのかわりクリック数は測れません。
「何人が開いたか」を知りたい運用には向かない、という割り切りの上に立っています。
割引コードの無防備さを作る前に警告する、
一覧の整理(アーカイブ)と購入の停止(無効化)を分ける、
完全に削除しても無効化は解除しない。
どれも「エラーが出ないまま売上が止まる/漏れる」状況を避けるための作りです。
当社では、この記事のアプリ以外にも Shopify アプリを提供しています。
いずれも管理画面は日本語で、7 日間の無料体験からお試しいただけます。