- Shopify Scriptsは2026年6月30日、まだ利用していたすべてのストアで実行を停止しました。
- Script内にあったカスタム割引、BOGO、バンドルのロジックは、その日を境に適用されなくなりました。
- この不具合は仕様上、静かに発生します。条件がカートに一致しないShopify Functionは単に発火しないだけです。エラーは発生せず、Shopifyから通知が届くこともありません。
この移行に取り組むストアオーナーたちは、Shopifyコミュニティフォーラムで同じ危険性を語っています。
“以前のScriptは割引の適用を静かに停止していて、顧客から満額請求されたとクレームが来て初めて気づきました。エラーもアラートもなく、注文ログにも何も残っていませんでした。気づくまでの数週間、壊れた状態のまま運用していたのです。”
これがScriptsからFunctionsへ移行する際の核心的なリスクです。Functionは正しく構成されて動作しているか、設定ミスで沈黙しているかのどちらかであり、その中間状態は目に見えません。条件の不一致、しきい値の入力ミス、コレクションの指定間違いなど、どんな設定ミスも、正しく動作している場合とまったく同じ「沈黙」を生み出します。これを見抜く唯一の方法は、本番で信頼する前に、発火すべきケースと発火すべきでないケースの両方を意図的にテストすることです。
始める前に知っておくべき4つのこと
移行は1つではなく3つに分かれている
1つのScriptファイルが割引ロジック、配送料金、支払いカスタマイズを同時に扱っているケースもありました。Functionsではこれが割引、配送、支払いという3つの独立したFunctionタイプに分かれており、それぞれ個別に設定・デプロイする必要があります。「自分のScriptを移行する」とは、多くの場合、最大3つの異なるものを移行することを意味します。
ノーコードビルダーが対応するのは通常、割引とBOGOのみ
お使いのScriptが配送料金や支払い方法にも関わっていた場合、Stackableを含むノーコードの割引Functionビルダーはそこまでカバーしていません。配送や支払いのカスタマイズには、開発者がFunctionを直接記述する必要があります。
今のうちに古いScriptのソースを保存しておく
Script Editorが完全に廃止されると、保存されていたコードは復元できなくなります。まだ移行の準備ができていなくても、今日のうちに古いScriptのソースをエクスポートまたはコピーしておき、後継となるものの参考資料として残しておきましょう。
発火すべきカートと発火すべきでないカートの両方をテストする
新しいFunctionを信頼する前に、2つのテストカートを用意しましょう。1つは発火するべきカート、もう1つは意図的に発火しないべきカートです。発火すべきでない場面で発火してしまうFunctionは、静かに発火しないFunctionと同じくらい大きな損失を招きます。
対応範囲についての正直な回答
StackableはルールベースのDiscountロジックをネイティブのShopify Functions上で再構築します。任意のカスタムコードを実行するものではありません。
Stackableで再現できること
- 階層/ボリューム割引(例:「3点以上購入で15%オフ」)
- Buy X Get YおよびBOGOロジック(繰り返し階層を含む)
- オファー間の明示的な割引の重ねがけルール
- 任意のキャンペーンにおけるスケジュール開始・終了、および即時一時停止
開発者が必要になること
- 古いScriptが実行していた任意のカスタムコード(独自の価格計算式や、ビルダーが対応しない一回限りの条件など)
- 配送のカスタマイズ(別のFunctionタイプ)
- 支払いのカスタマイズ(別のFunctionタイプ)
- ルールベースの割引設定に還元できないもの全般
以前のScriptがこのリストの内容を行っていた場合、Stackableを含むノーコードビルダーでは対応できません。それは設定画面ではなく、開発者が書くFunctionが必要な領域です。
よくある質問
古いScriptsは失われてしまったのですか?
Scriptsは2026年6月30日に実行を停止しましたが、それは必ずしもScript Editorに保存されたソースコードが削除される瞬間と同じではありません。いずれにせよ、古いScriptのコードは今すぐエクスポートまたはコピーしておいてください。Shopifyがエディタを完全に廃止すると、復元できなくなります。
Functionの設定ミスがあった場合、エラーは表示されますか?
いいえ。条件がカートに一致しないFunctionは、エラーもアラートもなく、静かに発火しないだけです。本番環境で信頼する前に、必ず発火するべきカートと発火するべきでないカートの両方でテストしてください。
Stackableは古いScriptが行っていたことをすべて代替できますか?
ルールベースの部分のみです。階層/ボリューム割引、BOGO、割引の重ねがけ、スケジュール設定は、すべてネイティブなShopify Functions上で再構築されています。Stackableは任意のカスタムコードを実行しません。お使いのScriptが独自の価格計算式やビルダーが対応しない条件など、本当に特殊な処理を行っていた場合は、開発者がFunctionを直接記述する必要があります。
Scriptが扱っていた配送や支払いのロジックはどうなりますか?
それらは配送と支払いという別のFunctionタイプであり、Stackableは関与しません。割引ロジックとは別に、開発者がそれぞれを移行する必要があります。
移行に関する詳しい解説はどこで読めますか?
最初のブログ記事で、Scriptsの廃止と移行パスについてさらに詳しく解説しています。
関連機能
Discount Stacking
How to stack discounts in Shopify comes down to settings the platform hides by default: every discount belongs to a class (product, order, or shipping), and whether two discounts combine is decided per offer, per class. Stackable puts those combine switches on every offer, so a volume tier, a spend goal, and free shipping add up exactly the way you configured them, every time.
BOGO / Buy X Get Y
Running BOGO beyond the 100-product cap isn't possible with Shopify's native Buy X Get Y discount: it stops letting you add eligible products once you pass 100, and it only applies once per order. Stackable removes both limits and adds cheapest-item-free logic on top.
Scheduled Sales
Shopify scheduled sales fail two ways in the wild: campaigns that silently never start, and live campaigns with no pause button. Stackable's scheduler runs on the same reliability guarantee as its checkout math, and pausing takes effect storefront-wide in under a minute.
Stackableをインストールしてルールベースの割引を再構築
ボリューム階層、BOGO、重ねがけ、スケジュール設定を、導入初日からネイティブのShopify Functions上で実行します。
無料プランあり。クレジットカード登録不要。