FROM CACHE - jp_header
解決済

基本にある条件に、除外する条件を追加する場合の記述について

Kyoo
観光客
17 0 2

ご閲覧頂きありがとうございます。

 

現在、在庫数に合わせた文言の表示が3パターンあるのですが、

特定のタグが付いた商品については、在庫数に合わせた文言を非表示にしたいと考えております。

 

どのような記述をすれば、ご存じの方いらっしゃいましたら、ご教授のほど宜しくお願い致します。

 

1 件の受理された解決策
Takase_R
Shopify Partner
29 10 9

成功

追記いただいた内容を踏まえると、下記のようなコードに書き換えることで実現できるかと思われます。

(labelは任意のタグに変更してください)

{% assign inventory_hidden = false %}

{% for tag in product.tags %}
  {% if tag contains 'label' %}
    {% assign inventory_hidden = true %}
  {% endif %}
{% endfor %}

{% if inventory_hidden == false %}
  {% if product.variants.first.inventory_management == "shopify" and product.variants.first.inventory_quantity <= 0 %}
    <div class="yv-restock">{{ 'products.product.out_of_stock' | t }}</div>
  {% elsif product.variants.first.inventory_management == "shopify" and product.variants.first.inventory_quantity <= 5 %}
    <div class="yv-lowstock">{{ 'products.product.low_stock_custom' | t }}</div>
  {% elsif product.variants.first.inventory_management == "shopify" and product.variants.first.inventory_quantity >= 6 %}
    <div class="yv-instock">{{ 'products.product.in_stock' | t }}</div>
  {% endif %}
{% endif %}

 

R.Takase
テーマのカスタマイズなどお手伝いできます。
https://liquid-guidebook.dev/

元の投稿で解決策を見る

6件の返信6

Takase_R
Shopify Partner
29 10 9

はじめまして、Takaseと申します。

 

実際のコードを見ていないので正確な回答が難しいのですが、

商品ページでの文言の非表示であれば、下記のような記述で実現可能かと思います。

{% assign inventory_hidden = false %}

{% for tag in product.tags %}
  {% if tag contains 'label' %}
    {% assign inventory_hidden = true %}
  {% endif %}
{% endfor %}

{% if inventory_hidden == false %}
  {% comment %} 在庫数に合わせた文言をここに記述 {% endcomment %}
{% endif %}

 

R.Takase
テーマのカスタマイズなどお手伝いできます。
https://liquid-guidebook.dev/
Kyoo
観光客
17 0 2

Takase 様

 

ご教授をありがとうございます。

 

足らない情報の中、本当にありがとうございます。

1. 商品グリッドに表示したいと思っております。

2. (在庫数の合わせた文言の出力)実際のコードは以下の通りです。

 

    {% if product.variants.first.inventory_management == "shopify" and product.variants.first.inventory_quantity <= 0 %}
        <div class="yv-restock">{{ 'products.product.out_of_stock' | t }}</div>
    {% elsif product.variants.first.inventory_management == "shopify" and product.variants.first.inventory_quantity <= 5 %}
        <div class="yv-lowstock">{{ 'products.product.low_stock_custom' | t }}</div>
    {% elsif product.variants.first.inventory_management == "shopify" and product.variants.first.inventory_quantity >= 6 %}
        <div class="yv-instock">{{ 'products.product.in_stock' | t }}</div>
    {% endif %}

 

もし可能でしたら、もう一度お願い致します。

Takase_R
Shopify Partner
29 10 9

成功

追記いただいた内容を踏まえると、下記のようなコードに書き換えることで実現できるかと思われます。

(labelは任意のタグに変更してください)

{% assign inventory_hidden = false %}

{% for tag in product.tags %}
  {% if tag contains 'label' %}
    {% assign inventory_hidden = true %}
  {% endif %}
{% endfor %}

{% if inventory_hidden == false %}
  {% if product.variants.first.inventory_management == "shopify" and product.variants.first.inventory_quantity <= 0 %}
    <div class="yv-restock">{{ 'products.product.out_of_stock' | t }}</div>
  {% elsif product.variants.first.inventory_management == "shopify" and product.variants.first.inventory_quantity <= 5 %}
    <div class="yv-lowstock">{{ 'products.product.low_stock_custom' | t }}</div>
  {% elsif product.variants.first.inventory_management == "shopify" and product.variants.first.inventory_quantity >= 6 %}
    <div class="yv-instock">{{ 'products.product.in_stock' | t }}</div>
  {% endif %}
{% endif %}

 

R.Takase
テーマのカスタマイズなどお手伝いできます。
https://liquid-guidebook.dev/
Kyoo
観光客
17 0 2

Takase 様

 

返信、誠にありがとうございます。

ご教授頂きました、コードでイメージ通りの表示になりました!

 

因みになりますが、特定のタグが複数あるので、下のように”or”を使用したのですが、

特定のタグ以外の全ての商品が非表示なりました。

{% assign inventory_hidden = false %}

{% for tag in product.tags %}
  {% if tag contains 'label-1' or 'label-2' %}
    {% assign inventory_hidden = true %}
  {% endif %}
{% endfor %}

 

下記のように"elsif"にしたら、正常に2つのタグだけ非表示なりました。

これについて、何かお判りになりますか?

{% assign inventory_hidden = false %}

{% for tag in product.tags %}
  {% if tag contains 'label-1' %}
    {% assign inventory_hidden = true %}
  {% if tag contains 'label-2' %}
    {% assign inventory_hidden = true %}
  {% endif %}
{% endfor %}

 

追加で、大変恐縮ではございますが宜しければご教授お願い致します。

Takase_R
Shopify Partner
29 10 9

無事イメージ通りの表示になったようでよかったです。

 

 

>> これについて、何かお判りになりますか?

 

{% if tag contains 'label-1' or 'label-2' %}

の書き方に問題があるように見えるので

{% if tag contains 'label-1' or tag contains 'label-2' %}

にすればもしかするとうまく表示されるかもしれません。

(試していないので確証はないのですが)

 

少し書き方は煩雑にはなりますが、elsifを使った記述方法で基本的には問題ないとは思います。

R.Takase
テーマのカスタマイズなどお手伝いできます。
https://liquid-guidebook.dev/
Kyoo
観光客
17 0 2

Takase様

 

返信、本当にありがとうございます!

 

試してみたところ、Takase様の記述で2つのタグに適応されました!

勉強になりました。

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