チェック処理のタイミングを以下の通り変更しました。
変更内容
変更前
・カート操作時(カートへの追加や削除のタイミング)
・チェックアウト操作時
・チェックアウト完了時
変更後
・チェックアウト操作時
・チェックアウト完了時
変更理由
① カートから販売期間外の商品が削除できない問題への対処
ShopifyのCart and Checkout Validation APIの仕様上、「カート追加」なのか「削除」なのかを判別できないため、削除時にも制限がかかり、販売期間外の商品をカートから削除できない問題が発生していました。
② 販売期間外の商品はカートに追加できない設計のため
当アプリにより販売期間外商品はカートボタンが非表示になります。そのため、カート変更時のチェックは不要と判断しました。
③ チェックアウト時に注文を確実に阻止可能なため
もし第三者アプリやコード改変により販売期間外の商品がカートに追加されても、チェックアウトページで購入を阻止できます。チェックアウトページは購入フローで必ず通過するため、ここで十分制限が可能です。