FROM CACHE - jp_header
このコミュニティはピアツーピアサポートに移行しました。Shopify サポートは今後、このコミュニティへのサービスを提供いたしません。これからもぜひ、他のマーチャントやパートナーとつながり、サポートし合い、経験を共有してください。 当社の行動規範に違反する行動や削除を希望するコンテンツがありましたら、引き続きご報告ください
現在コミュニティを移動しています!7月7日以降、現在のコミュニティは約2週間読み取り専用となります。期間中はコンテンツの閲覧は可能ですが、一時的に新規投稿や返信はできなくなります。詳しくはこちら

ユーザーがその商品を購入した事があるか、で分岐するLiquidを書きたい。

解決済

ユーザーがその商品を購入した事があるか、で分岐するLiquidを書きたい。

frontOpenField
Shopify Partner
6 0 0

特定の商品ページを見ている時、

 

その商品を購入したことがあるユーザーの場合は

「あなたはこの商品を購入したことがあります」

と表示。

 

未購入のユーザーの場合は

「まだこの商品を買ったことがありません」

と表示

 

のように分岐させたいです。

 

このようなことはLiquidで可能なのでしょうか。

 

LocalStrageやCockieは使用しない想定です。

 

また、ストアの「会員機能」はOFFにしており、

基本的には「購入者は総じてストア非会員である」という状況だと仮定します。

 

参考コード例などをいただけると非常に助かりますが、

有識者の方より「私の知る限り不可能」等のお考えを

いただけるのみでも大変参考になります。

 

ご助言いただけますと幸いです。

1 件の受理された解決策

Nishi
Shopify Partner
27 2 1

成功

結論から申し上げますと、Liquid のみでの実装はかなり厳しいかと思います。

 

しかし、「直近の 20 注文以内で顧客該当の商品を購入したかどうか」での出しわけを行うことができます。

 

以下に、「直近の 20 注文以内で顧客該当の商品を購入したかどうか」での出しわけの実装方針をまとめます。

 

customer

https://shopify.dev/docs/api/liquid/objects/customer

 

orders

https://shopify.dev/docs/api/liquid/objects/order 

 

line_item

https://shopify.dev/docs/api/liquid/objects/line_item 

 

  1. 上記の Liquid の customer オブジェクトより、orders を取得(一度に取得できる個数が 20個まで)する
  2. orders の line_items の product_id を確認して、現在の商品(product.id で取得できます)と一致するものがあるかどうかを確認する

 

上記の方法で、「直近の 20 注文以内で顧客該当の商品を購入したかどうか」の true・false を取得できるので、

こちらを用いて表示の分岐を行う形になるかと思います。

株式会社UnReact


Shopify Expertとして、Shopify ストア構築・運用やアプリ開発に至るまで幅広く活動しています。

元の投稿で解決策を見る

2件の返信2

Nishi
Shopify Partner
27 2 1

成功

結論から申し上げますと、Liquid のみでの実装はかなり厳しいかと思います。

 

しかし、「直近の 20 注文以内で顧客該当の商品を購入したかどうか」での出しわけを行うことができます。

 

以下に、「直近の 20 注文以内で顧客該当の商品を購入したかどうか」での出しわけの実装方針をまとめます。

 

customer

https://shopify.dev/docs/api/liquid/objects/customer

 

orders

https://shopify.dev/docs/api/liquid/objects/order 

 

line_item

https://shopify.dev/docs/api/liquid/objects/line_item 

 

  1. 上記の Liquid の customer オブジェクトより、orders を取得(一度に取得できる個数が 20個まで)する
  2. orders の line_items の product_id を確認して、現在の商品(product.id で取得できます)と一致するものがあるかどうかを確認する

 

上記の方法で、「直近の 20 注文以内で顧客該当の商品を購入したかどうか」の true・false を取得できるので、

こちらを用いて表示の分岐を行う形になるかと思います。

株式会社UnReact


Shopify Expertとして、Shopify ストア構築・運用やアプリ開発に至るまで幅広く活動しています。

frontOpenField
Shopify Partner
6 0 0

丁寧なご回答ありがとうございます。

>orders を取得(一度に取得できる個数が 20個まで)

が制限の理由なんですね。

 

頂いた情報を基にチャレンジしてみます。

ありがとうございました!