特定の商品を購入している場合にのみ、閲覧可能なページを作成したい場合は下記のようにやるととりあえず出来ました。
前提
- 対象となる特定商品の商品のハンドルに、「hoge」という文字列が存在する。
- 対象外の商品のハンドルには、「hoge」という文字列は存在しない。
方法案
- 作成するページ専用のテンプレートを作成し、テンプレートのコードを下記のようにする。
{% if customer %}
{% if customer.orders.size != 0 %}
{% for order in customer.orders %}
{% for line_item in order.line_items %}
{% if line_item.product.handle contains 'hoge' %}
{% assign hasProduct = true %}
{% endif %}
{% endfor %}
{% endfor %}
{% endif %}
{% endif %}
{% if hasProduct %}
{{ page.content }}
{% else %}
<script>location.href="/"</script>
{% endif %}