⚠️ 緊急:2026年6月30日をもってShopify Scriptsが完全停止します。チェックアウトの割引ロジック・配送ルール・決済カスタマイズにまだScriptsを使っている場合、今すぐShopify Functionsへの移行が必要です。この記事では、Scripts廃止の背景・影響範囲・Functionsへの具体的な移行手順をエンジニア目線で解説します。
📘 移行チェックリスト+よくあるエラーと対処法をnoteで公開中
目次
📋 目次
- 廃止スケジュールと今すぐ確認すべきこと
- Shopify ScriptsとFunctionsの違い
- 影響を受ける機能の全リスト
- 移行手順:割引ロジックの移行(具体的コード例付き)
- 移行手順:配送ルールの移行
- 移行手順:決済カスタマイズの移行
- 移行でよくあるエラーと対処法
- AIを使った移行作業の効率化
1. 廃止スケジュールと今すぐ確認すべきこと
Shopify Scriptsの廃止期限はこれまで2度延長されてきました(2024年8月→2025年8月→2026年6月30日)。Shopifyは今回が最終期限と明言しており、これ以上の延長はありません。
Shopify Scriptsの新規作成・編集がロック済み。既存Scriptsの修正も不可に。4月15日以降にバグが発覚しても、Scripts内での修正手段はない。
既存の公開済みScriptsが完全停止。チェックアウトでの割引・配送・決済カスタマイズが動作しなくなる。猶予期間なし・ロールバック不可。
本番環境での十分なテスト期間を確保するため、6月15日を移行完了の目標にすることを推奨。
2. Shopify ScriptsとFunctionsの違い
| 比較項目 | Shopify Scripts(廃止) | Shopify Functions(移行先) |
|---|---|---|
| 実行環境 | Shopifyサーバー上でRubyライクな独自言語 | WebAssembly(Wasm)。高速・軽量 |
| 開発言語 | Shopify独自のScript言語 | Rust・JavaScript・TypeScript(任意) |
| パフォーマンス | レイテンシが発生することがある | 5ms以内の実行が要件。高速 |
| 対象プラン | Shopify Plus限定だった | 全プラン 利用可能 |
| デバッグ | ログが見づらく難しかった | Shopify CLIでローカルテスト可能 |
| 配布方法 | ストアごとの個別設定 | アプリとして配布・Shopify App Storeへの公開も可能 |
| 料金 | 無料(Plus料金に含む) | 実行回数に応じた従量課金(無料枠あり) |
Functionsは全プランで使えるようになったことで、Plusでなくても高度なチェックアウトカスタマイズが実現できる。移行は「コストがかかる作業」ではなく「より良いアーキテクチャへの移行」として捉えると判断がスムーズになる。
3. 影響を受ける機能の全リスト
| 機能 | Scripts廃止の影響 | Functions対応 |
|---|---|---|
| カスタム割引(複雑な条件分岐) | 6月30日以降動作停止 | 対応済み Discount Functions |
| 送料カスタマイズ(条件付き送料無料等) | 6月30日以降動作停止 | 対応済み Shipping Functions |
| 決済方法のフィルタリング | 6月30日以降動作停止 | 対応済み Payment Customization |
| カート変換(商品の自動追加・削除) | 6月30日以降動作停止 | 対応済み Cart Transform |
| 配送オプションのソート・フィルタ | 6月30日以降動作停止 | 対応済み Delivery Customization |
| Scriptsを使うサードパーティアプリ | アプリ側の対応待ちが必要 | 要確認 アプリの更新状況を確認 |
4. 移行手順:割引ロジックの移行
最も多いユースケースである「購入金額に応じた割引」を例に、ScriptsからFunctionsへの移行手順を解説します。
移行前の準備
Node.js 18以上が必要。ターミナルで以下を実行。
JavaScriptでの実装例(購入金額3万円以上で10%OFF)
以下はShopify Scriptsで実装していた「3万円以上購入で10%OFF」のロジックをJavaScript Functionsに移行した例です。
Scripts時代は独自言語で書いていたが、Functionsは標準的なJavaScriptで書ける。inputオブジェクトにカートデータが渡されるシンプルな構造なので、既存ロジックの移植はほぼ直感的にできる。
ローカルでのテスト方法
5. 移行手順:配送ルールの移行
「5,000円以上で送料無料」「特定都道府県のみ配送」などの配送カスタマイズはShipping Functionsで対応できます。
実装例(5,000円以上で送料無料)
6. 移行手順:決済カスタマイズの移行
「代引きを特定条件で非表示にする」「クレジットカードのみ表示する」などはPayment Customization Functionsで対応します。
実装例(特定商品が含まれる場合に代引きを非表示)
7. 移行でよくあるエラーと対処法
| エラー・症状 | 原因 | 対処法 |
|---|---|---|
Function execution time exceeded |
5ms制限を超えている | ループ処理を見直す。データ取得はinputから行い、外部APIコールは不可 |
| ローカルテストは通るが本番で動かない | アプリのデプロイ忘れ | shopify app deployを実行してから再確認 |
| 割引が二重に適用される | discountApplicationStrategyの設定ミス |
"FIRST"か"MAXIMUM"か要件に応じて設定 |
| 旧Scriptsアプリが残ったまま | アプリの削除を忘れている | 管理画面→アプリから旧Scriptsアプリをアンインストール |
input.cart is undefined |
APIバージョンの不一致 | shopify.app.tomlのapi_versionを最新(2025-04以降)に更新 |
8. AIを使った移行作業の効率化
既存のScriptsコードをそのまま貼り付けて「これをShopify Functionsに移行してください」と指示するだけで、対応するFunctionsコードを生成してくれる。複雑な条件分岐も正確に変換できる精度が高い。Shopify SidekickはClaude Sonnetで動作しており、Shopify管理画面上でのAIアシスタントとしても活用できる。
MCP連携でShopifyのストアデータを直接確認しながら、どのScriptsが残っているかを洗い出す作業に活用できる。「現在有効になっているScriptsの一覧を出して」という指示から移行対象の特定が可能。
Shopify Functionsの公式ドキュメント(英語)を読み込ませて「日本語で要点をまとめて」という使い方が実務で役立つ。APIの仕様変更の把握にも使える。
「Shopify Functions エラー ○○○」のようなデバッグ調査に強い。Stack OverflowやShopify Community Forumの最新情報を横断的に収集して回答してくれる。
Claudeへの移行プロンプト例
📘 移行チェックリスト+よくあるエラー対処法・プロンプト集をnoteで無料公開中
🛒 Shopifyでの構築・カスタマイズを検討中の方へ
Scripts→Functions移行のご相談・実装代行はお気軽にどうぞ





