DEV Community 日本語
フォロー
Shopifyで無料配送プログレスバーをLiquidとJavaScriptで構築する
このガイドでは、Liquidスニペット、CSS、JavaScriptを使用してShopifyストア向けの無料配送プログレスバーを構築する方法を説明します。この機能は、無料配送のしきい値に向けた進捗状況を視覚的に表示することで、顧客のモチベーションを高めることを目的としています。Liquidによって初期ページロード時にバーが正しくレンダリングされ、カートアイテムが追加、変更、または削除されるとリアルタイムで更新されることが保証されます。実装では、スクリーンリーダーのアクセシビリティも優先され、動作を減らしたいユーザーにも対応します。最初のステップは、Liquidスニペット「free-shipping-bar.liquid」を作成することです。これにより、カート合計と定義されたしきい値に基づいて、残りの金額とパーセンテージが計算されます。このスニペットは、サーバー上でバーの初期状態とそのメッセージをレンダリングし、視覚的な遅延を防ぎます。その後、塗りつぶしアニメーションのスムーズなトランジションを含む、プログレスバーのスタイリングのためにカスタムCSSが追加されます。次に、リアルタイムの更新を処理するためのJavaScriptファイル「free-shipping-bar.js」が作成されます。このJavaScriptコードは、「/cart.js」から現在のカート合計を取得し、それに応じてバーとメッセージを更新します。これは、ブラウザのネイティブな「fetch」関数をラップすることで実現され、カートを変更するリクエストの後にバーが自動的に更新されるようになります。ガイドでは、アクセシビリティの重要性を強調し、「role="progressbar"」および「aria-valuenow」属性がスクリーンリーダーに進捗状況を公開する方法、「aria-live="polite"」が変更をスムーズにアナウンスする方法を説明しています。また、パフォーマンスについても触れており、動作を減らしたいユーザーには塗りつぶしアニメーションが無効になることに注意しています。ガイドでは、XHRを使用する古いテーマとの互換性、複数通貨の処理、通貨の小数点以下の桁数に関する仮定など、いくつかの制限事項と考慮事項を概説しています。無料配送のルールは、バーに表示される目標と一致するように、Shopifyの配送設定で別途構成する必要があることを強調しています。最後に、顧客が達成可能だと感じる、関連性の高い無料配送のしきい値を選択することを推奨しています。ガイドは、バーがアイテムの追加、削除、およびしきい値の超過を含むさまざまなシナリオで正しく機能することを確認するために、開発ストアで徹底的なテストを行うことを提案して締めくくっています。カスタムコードのメンテナンスを避けたいユーザーのために、Brixを代替案として提供しており、他の機能の中でも、複数ティアの報酬プログレスバーを提供しています。