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を代入すると良いでしょう。
以上です。
大雑把な流れだけの説明になりますが、
参考になれば幸いです。
(キュー田辺)
めちゃくちゃ参考になりました!ご回答ありがとうございます
いつもShopifyをご利用いただき、ありがとうございます。 Shopifyは、皆様の日本語での利用体験の向上に努めております。さらなる改善のために皆様のご意見をお寄せい...
By JasonH May 9, 2025Shopify アカデミーの学習パスと認定スキルバッジExpanding Your Shopify Business Internationallyを活用して、国際的にビジネ...
By Shopify Feb 7, 2025Shopify アカデミーの学習パスB2B on Shopify:立ち上げとカスタマイズで卸売販売に進出しましょう。これら3つの無料コースは、ShopifyストアでB2B機能...
By Shopify Jan 31, 2025