Debutでコレクションのメタフィールドの値によって商品詳細ページのカートボタンを出し分けたい

Topic summary

飲食店サイトで店舗受取型の複数店舗をコレクションで管理しており、各店舗(コレクション)ごとに異なる定休日・営業時間を設定したい。

課題:

  • 店舗スタッフが定休日・営業時間を変更できるよう、コレクションのメタフィールドに情報を入力
  • その値に基づいて商品詳細ページの「カートに追加」ボタンを出し分けたい

提案された解決策:

コレクション情報にアクセスするには、URL形式を変更する必要がある:

  • 通常: /products/product-handle
  • コレクション情報アクセス時: /collections/collection-title/products/product-handle

実装方法:

  • コレクションページ内の商品リンクを {{ product.url }} から {{ product.url | within: collection }} に変更
  • これにより商品詳細ページで {{ collection.metafields.namespace.key }} タグを使用可能
  • おそらく product-card-grid.liquid スニペットの編集が必要

注意点:
商品が複数のコレクションに属する場合、通常URLでアクセスするとコレクション情報にアクセスできなくなる可能性がある。

Summarized with AI on November 24. AI used: claude-sonnet-4-5-20250929.

店舗受取型の複数の店舗をコレクションで分けている飲食店サイトを制作しています。(テーマはDbut)

それぞれの店舗はそれぞれ異なる定休日・営業時間なので、

店舗(コレクション)ごとに定休日・営業時間外は商品詳細ページの「カートに追加する」ボタンを反応させなくする方法を探しています。

各店舗スタッフが定休日や営業時間を変更できるように、商品管理>コレクションのメタフィールドに入力された値によってカートボタンの出しわけを行いたいのですが、良い方法はないでしょうか?

また、コレクションのメタフィールドの値を商品詳細ページ(メタフィールドを入力されたコレクションに属する商品)に出力はできるのでしょうか?

知識不足な所が多々あり的外れな質問なのかもしれませんが、よろしくお願いいたします。

他にも方法があるかもしれませんので、

あくまで一例とお考えください。

商品詳細ページ(product)からコレクションの情報にアクセスするには、

次のようなURL形式で商品詳細ページにアクセスする必要があります。

通常:

yourstore.myshopify.com/products/product-handle

コレクションの情報にアクセスしたい場合:

yourstore.myshopify.com/collections/collection-title/products/product-handle

コレクションの情報にアクセスしたい場合のURLで、

商品詳細ページにアクセスしますと、

{{ collection.metafields.namespace.key }}

というタグで、

商品詳細ページの中で、

コレクションのメタフィールドを扱うことができます。

「コレクションの情報にアクセスしたい場合のURL」は、

コレクションページ内の、商品詳細ページへのリンクURLを下記に変更することで、

得られます。

※おそらく、スニペットの、product-card-grid.liquid を編集することになるかと思います。

{{ product.url }}

{{ product.url | within: collection }}

こうすることで、

コレクションページに掲載された商品へのリンクURLが、

「コレクションの情報にアクセスしたい場合のURL」の形式になります。

しかし、

通常のURLで、アクセスされてしまうと、

商品詳細ページ内で、コレクションの情報にアクセスできなくなってしまいます。

もし、

各商品が、必ず1つだけのコレクションに所属する、という運用をなされているようでしたら、

「通常のURL」にアクセスがあった場合に、

「コレクションの情報にアクセスしたい場合のURL」に、

リダイレクトさせると良いかもしれません。

しかし、このためには、商品情報に、所属しているコレクションのURLを、

何らかの方法で持たせる必要があるかもしれません。

商品タグか、商品情報のメタフィールドを設定することになるのではないかと思います。

ご参考まで。

(キュー田辺)

ありがとうございます!

参考にさせていただきます!

1 Like