FROM CACHE - jp_header

特定商品のお一人様1回だけの購入制限について

totsu
新規メンバー
1 0 1

お世話になっております。

特定の商品にお一人様1回だけ購入できる制限を設定したく、Limits by Limitsifyを試したところ、

同一カート内では購入制限がかかりますが、同一顧客でも新たなカートになると購入制限がかからず2回目以降も購入できてしまいました。

何か良い対処方法はございますでしょうか?

ご教示の程、何卒よろしくお願いいたします。

1件の返信1
Jizo_Inagaki
Shopify Partner
612 248 566

実際にこの要件で構築した経験はありませんが、興味がありましたので検討してみたことを記載したいと思います。
方法としては以下の方法が思い浮かびました。

 

タグを利用する方法

以下のような自動でタグ付けできるアプリを使って特定商品購入した顧客に自動でタグを付与して、そのタグがあれば該当の商品の購入ボタンを消したりします。

https://apps.shopify.com/easy-tagging

テーマ次第なので具体的なコードは書けませんが、一例としては以下のような形でタグによる分岐を記載します。
かなり簡易に書いていますのでイメージだけ掴んでいただればと。

 

{% assign is_enabled = true %}
{% for tag in customer.tags %}
  {% if tag == '付与したタグ' %}
    {% assign is_enabled = false %}
  {% endif %}
{% endfor %}

{% form 'product' %}
  {% comment %}いろいろ省略{% endcomment %}
  {% if is_enabled == true %}
    <button type="submit" >
  {% else %}
   <p>この商品をすでに購入されています。複数回の購入はできません。</p>
  {% endif %}
  {% comment %}いろいろ省略{% endcomment %}
{% endform %}

 

[参考]

https://ec-penguin.com/blogs/shopify/order-easy-tagging-app

https://shopify.dev/docs/themes/liquid/reference/objects/customer#customer-tags

 

留意点

記載しました方法は登録必須のストアを想定しています。

それでもこの方法では、登録情報を偽装した上で複数のアカウントを作られた場合には対応できません。
当然ながら家族や友人に頼むようなアナログな手法にも対応できません。

他にも以下のような方法は思いつきましたがあまり実用には向かないように思いました。

  • JSでcookieを用いる方法(→cookieは消去や改変可能 / ブラウザを変えたりソースを弄れば購入可能)
  • customer.ordersを使い購入した商品を調べて利用する方法(取得限度数があれば漏れが出る / 限度がなければ動作が重くなる可能性がある)

そのため穴のない案を作るのは難しいかなと思われます。

 

以上ですが、ご希望の動作を実現できるアプリや別の方法があるかもしれませんので一案程度にお考えいただければと思います。

Jizo_Inagaki | フリーランスのwebデザイナー
- テーマのカスタム承れます。
- 記載した回答で解決できましたらベストソリューションの承認をお願いします。
- DMや指名による対応はご依頼として有料でのみ承ります。