Shopifyで領収書を発行する方法まとめ【インボイス対応】
Share
「領収書を発行してもらえますか?」——ストアを運営していると、必ず届くこの問い合わせ。宛名を確認して、PDFを作って、メールで返す。1件数分の作業でも、積み重なると確実に運営の時間を奪います。
結論からお伝えすると、Shopifyの領収書対応はアプリなしで自動化できます。Liquidのcustomerオブジェクト(ログイン顧客の注文情報)を使って、お客様が自分で領収書を発行できるページをテーマに直接組み込む方法です。
筆者はShopify Plusパートナー企業に所属する現役エンジニアで、月商5,000万円超のECサイト構築にも携わってきました。この記事では、領収書対応の3つの方法を比較したうえで、セルフ発行ページの実装の考え方と、最短10分で導入する方法を解説します。
Shopifyの領収書対応、方法は3つ
まず前提として、Shopifyには領収書を発行する標準機能がありません。注文確認メールや管理画面の明細書は、日本の商習慣でいう「領収書」の体裁を満たさないため、何らかの対応が必要になります。
| ① メールで手動対応 | ② 領収書アプリ | ③ テーマにセルフ発行ページを組み込む | |
|---|---|---|---|
| 費用 | 無料(人件費のみ) | 月額 $8〜40 が相場、従量課金型も | 実装コストのみ(以後の月額なし) |
| 運営の手間 | 1件ごとに発生し続ける | ほぼゼロ | ほぼゼロ |
| 顧客の体験 | 返信を待たされる | 即時 | 即時(自分のタイミングで発行) |
| 注文データの経路 | — | 外部サービスを経由するものが多い | ブラウザ内で完結 |
| 解約・サービス終了時 | — | 機能が消える | テーマ内のコードなので使い続けられる |
注文件数が月に数件なら①でも回りますが、法人顧客や経費精算ニーズの多い商材では、放置すると問い合わせ対応が積み上がります。②と③の違いは「月額を払い続けるか、一度組み込んで終わりにするか」です。
自分で実装する場合の考え方
💡 コードを書かずに済ませたい方へ: ここからは自作する方向けの技術解説です。読み飛ばして、導入10分の既製セクションの紹介へ進んでいただいて大丈夫です。
仕組みの全体像: ログイン顧客の注文一覧から発行する
Shopifyのテーマ(Liquid)では、ログイン中の顧客情報に customer オブジェクトでアクセスできます。{% paginate customer.orders by 20 %} のように書けば、その顧客の注文一覧を取得できるので、
- マイページ系のページに注文一覧を表示する
- 各注文に「領収書を発行」ボタンを置く
- ボタン押下で宛名・但し書きの入力欄を表示する
- 入力値と注文データ(
order.created_at、金額、order.tax_lines)から領収書HTMLを組み立てる -
window.print()で印刷ダイアログを開く → ブラウザの「PDFとして保存」でPDF化
という流れで、サーバーも外部サービスも使わずに領収書発行が完結します。
最大の制約: 「ログイン必須」はShopifyの仕様
実装前に必ず知っておくべき制約があります。Shopifyでは、注文情報は認証された顧客本人にしか公開されません。商品情報のような公開Ajax API(/products/{handle}.js)は注文には存在せず、「注文番号とメールアドレスを入力すれば誰でも領収書を発行できる」仕組みはテーマだけでは作れません(第三者が他人の注文を覗けてしまう情報漏洩を防ぐための仕様です)。
つまりテーマ実装のセルフ発行はアカウント登録・ログインをしてくれるお客様向けの仕組みです。ゲスト購入のみのお客様にも対応したい場合は、App Proxy + Admin APIでメール照合を行う専用アプリの開発が必要になり、難易度が一段上がります。
インボイス対応で押さえる記載要件
適格請求書(インボイス)として通用する領収書にするには、次の要素をテンプレートに含めます。
- 適格請求書発行事業者の登録番号(T+13桁)
- 取引年月日(
order.created_at) - 取引内容(品目明細。軽減税率の対象品目がある場合はその旨を明記)
-
税率ごとに区分した対価の合計額と消費税額(
order.tax_linesのrate/priceから生成。軽減税率8%対象がある場合は内訳を分ける) - 発行者の氏名・名称
- 受領者名(宛名入力欄 or 請求先名を初期値に)
特に税率別内訳は、8%と10%が混在する食品系ストアでは必須です。tax_lines をループして税率ごとに集計する処理が実装の本丸になります。
ここまで作り込むと、レイアウト調整・印影・支払い済み判定(未払い注文に発行させない制御)まで含めて8〜15時間程度の工数です。
最短で済ませたい方へ: 導入10分の既製セクション
「仕組みは分かったが、そこまでの時間はかけられない」という方向けに、Copilifyで領収書発行セクション(インボイス対応)を提供しています。
- ログイン顧客の注文一覧に「領収書を発行」ボタンを自動表示
- お客様が宛名・但し書きを自分で入力 → その場で印刷・PDF保存
- 適格請求書発行事業者登録番号を設定するだけでインボイス対応(未設定なら通常の領収書として出力)
- 軽減税率8%・税率別内訳に自動対応
- 支払い済みの注文だけを発行対象にし、誤発行を防止
- ロゴ・印影画像にも対応。発行処理はお客様のブラウザ内で完結し、外部にデータを渡しません
導入は3ステップです。
- 購入後、Liquidファイルをダウンロード
- Shopify管理画面からテーマの
sectionsフォルダにアップロード(動画ガイドあり) - テーマエディタでマイページ系のページにセクションを追加し、登録番号・発行者情報を設定
▼ デモと詳しい機能はこちら
領収書発行セクション(インボイス対応)の商品ページ
よくある質問
Q. ゲスト購入のお客様も発行できますか?
できません。上で解説したとおり、注文情報はログインした本人にしか公開されないというShopifyの仕様によるものです。ゲスト購入が多いストアでは、購入完了ページやメールでアカウント登録を促す運用と組み合わせるのがおすすめです。
Q. 免税事業者(登録番号なし)でも使えますか?
使えます。登録番号を設定しなければ通常の領収書として発行されるので、課税事業者・免税事業者のどちらの運用にも対応できます。
Q. どのテーマでも使えますか?
customerオブジェクトはShopify標準の仕組みなので、考え方はどのテーマでも共通です。Copilifyのセクションは特定テーマの専用機能に依存しない設計で、Online Store 2.0対応テーマであれば基本的に利用できます(検証はDawn系テーマで実施)。
Q. 二重発行の防止はできますか?
ブラウザ内で発行する方式のため、発行回数の厳密な制御はしていません。再発行の問い合わせ対応が不要になるという運用面のメリットとして捉えるのがおすすめです(税務上は宛名・但し書き・金額が同一の再出力です)。
まとめ
- Shopifyに領収書の標準機能はなく、手動・アプリ・テーマ組み込みの3択
- テーマ実装は
customerオブジェクト +window.print()で外部サービスなしに完結する - 制約は「ログイン必須」。これはShopifyのセキュリティ仕様
- 自作なら8〜15時間、既製セクションなら10分。時間を優先するなら領収書発行セクションをどうぞ
領収書のほかにも、配送日指定・購入制限・送料無料バーなど「アプリでしかできない」と思われがちな機能をテーマ直組み込みのセクションとして揃えています。まとめて導入したい方はオールアクセスパックもご覧ください。