Liquid、JavaScriptなどに関する質問
表題の通り、アプリを使わずに指定した商品のみ会員限定かつ個数制限がある商品を作りたいと考えています。管理画面から会員限定にすることは可能ですが、全ての商品会員限定になってしまいます。
テーマDawn4.0.0をカスタマイズして作成しています。
購入制限はカートに入れる際に上限個数をオーバーする場合にのみポップアップを表示させたいと考えいてます。
カートに入っている商品の個数を引っ張ってきて条件分岐すれば意外と簡単にできるのかなぁとも思っているのですが情報を持ってくることはできても、どのような条件分岐で記述したらいいの分かりません。
アドバイス頂けますと幸いです。
解決済! ベストソリューションを見る。
成功
部分的な回答になってしまいますが、ご容赦ください。
まず、アプリを使わずに、会員にだけ販売したい、という部分ですが、
{% if customer %} ... {% endif %}
で、会員だけの処理・表示を作ることができます。
ですので、下記のようにされてはいかがでしょうか?
{% if customer %}
{% comment %}
会員の場合の処理: カートに追加ボタンや購入ボタンを表示する
{% endcomment %}
{% else %}
{% comment %}
会員ではない場合の処理: 会員限定であることを伝え、会員登録を促す内容を表示する
{% endcomment %}
{% endif %}
次に、購入制限についてですが、
下記のようなフローを組んでみてはいかがでしょうか?
しかし、この方法ですと、一度チェックアウトをしてしまうと、カートもリセットされるので、
1つずつ購入していくと、結局、何個でも購入できてしまいそうです。
今回は、会員限定ということで、
customer.ordersが使用できます。
https://shopify.dev/api/liquid/objects/customer#customer-orders
こちらで、当該商品をすでにいくつ購入しているかを取得すると良いかと思います。
しかし、「カートに追加」する時の処理はJavaScriptで、
すでに、いくつ購入しているかを数え上げるのはliquidになりますので、
どうにかして、JavaScriptに、購入済み個数を伝える必要があります。
<script>
const purchasedNumber = {{ purchased_number }};
</script>
※purchased_numberがliquidで数え上げた購入済み個数です。
※purchased_numberは必ず整数になるようにします。空の値になるとJavaScriptエラーになりますので、空の場合は、0を代入すると良いでしょう。
以上です。
大雑把な流れだけの説明になりますが、
参考になれば幸いです。
(キュー田辺)
成功
部分的な回答になってしまいますが、ご容赦ください。
まず、アプリを使わずに、会員にだけ販売したい、という部分ですが、
{% if customer %} ... {% endif %}
で、会員だけの処理・表示を作ることができます。
ですので、下記のようにされてはいかがでしょうか?
{% if customer %}
{% comment %}
会員の場合の処理: カートに追加ボタンや購入ボタンを表示する
{% endcomment %}
{% else %}
{% comment %}
会員ではない場合の処理: 会員限定であることを伝え、会員登録を促す内容を表示する
{% endcomment %}
{% endif %}
次に、購入制限についてですが、
下記のようなフローを組んでみてはいかがでしょうか?
しかし、この方法ですと、一度チェックアウトをしてしまうと、カートもリセットされるので、
1つずつ購入していくと、結局、何個でも購入できてしまいそうです。
今回は、会員限定ということで、
customer.ordersが使用できます。
https://shopify.dev/api/liquid/objects/customer#customer-orders
こちらで、当該商品をすでにいくつ購入しているかを取得すると良いかと思います。
しかし、「カートに追加」する時の処理はJavaScriptで、
すでに、いくつ購入しているかを数え上げるのはliquidになりますので、
どうにかして、JavaScriptに、購入済み個数を伝える必要があります。
<script>
const purchasedNumber = {{ purchased_number }};
</script>
※purchased_numberがliquidで数え上げた購入済み個数です。
※purchased_numberは必ず整数になるようにします。空の値になるとJavaScriptエラーになりますので、空の場合は、0を代入すると良いでしょう。
以上です。
大雑把な流れだけの説明になりますが、
参考になれば幸いです。
(キュー田辺)
めちゃくちゃ参考になりました!ご回答ありがとうございます
サポートの選択肢が増えていく中、最適となる選択の判断が難しくなっているかと存じます。今回は問題の解決に最適となるサポートの選択方法を、紹介させて頂きます。 選択肢のご紹介...
By Mirai Oct 6, 20242023年初頭、Shopifyペイメントアカウント、及びShopifyアカウント全体のセキュリティを強化する為の変更が適用されました。ユーザーのアカウントセキュリティを強化す...
By Mirai Sep 29, 2024概要: 年末/年明けは、消費者が最もショッピングを行う時期の一つです。特に、ブラックフライデー・サイバーマンデー(BFCM)は、世界中で注目される大規模なセールイベントであ...
By JapanGuru Sep 25, 2024