売り切れた後に価格を非表示にする方法②

Topic summary

商品が売り切れた際に価格を非表示にする方法についての技術的な質問と解決。

経緯:

  • 質問者は以前、同じタイトルで質問し、product-template.liquidなどのファイルで{% if product.available %}を使った条件分岐コードの提案を受けた
  • しかし該当ファイルが見つからず、main-product.liquidファイルにたどり着いたものの、具体的にどこにコードを挿入すべきか分からなかった

解決方法:

  • サポート担当者が詳細な手順を提示
  • 管理画面から「オンラインストア」>「テーマ」>「コードを編集」に移動
  • main-product.liquid内の価格表示部分({%- when 'price' -%})を{% if product.available %}で囲む形に変更

結果:

  • 質問者は提示された手順に従い、無事に価格の非表示化に成功
  • 長時間悩んでいた問題が解決し、ナレッジサービスへの感謝を表明
Summarized with AI on November 6. AI used: claude-sonnet-4-5-20250929.

先日、こちらで同タイトルで質問させていただきました。

その際、下記の返答をいただきました。

値段を表示しているファイル(product-template.liquid または product-form.liquid など)を編集していただければと思います。

具体的なコードは以下になります。

{% if product.available %}
  <!-- 商品が在庫がある場合に価格を表示 -->
  <p class="price">{{ product.price | money }}</p>
{% else %}
  <!-- 商品が在庫がない場合に価格を非表示 -->
  <p class="price" style="display:none;">{{ product.price | money }}</p>
{% endif %}

商品在庫がある時は値段を通常通り表示して売り切れの場合は非表示になります。

と教えていただきまして、やってみました。

コード編集の場所をなんとか探し(コードを初めて見ました)、同名のファイルを検索しましたが出てこなかったので、色々と探してみましたところ、Sectionsのmain-product.liquidにたどりつきました。

しかし、そこのどの部分に教えていただいたコードを入れたらよいのかわかりません。

<div class=" price {%- if price_class %} {{ price_class }}{% endif -%} {%- if available == false %} price--sold-out{% endif -%} {%- if compare_at_price > price and product.quantity_price_breaks_configured? != true %} price--on-sale{% endif -%} {%- if compare_at_price > price and product.quantity_price_breaks_configured? %} volume-pricing--sale-badge{% endif -%} {%- if product.price_varies == false and product.compare_at_price_varies %} price--no-compare{% endif -%} {%- if show_badges %} price--show-badge{% endif -%} "

この部分のどこかに入れる、または書き換えるなどでしょうか。

またもしかしたら、snippets内のprice liquidなのかもしれないとも思っています。

おわかりになりましたら、教えていただけますと助かります。

価格を非表示にしたいのはコレクションページではなくて商品ページです。

どうぞよろしくお願い致します。

以下の手順をお試しください。

1.管理画面にログインし、[オンラインストア] > [テーマ] に移動します。

2.「カスタマイズ」の隣の[…] から[コードを編集] をクリックします。

3.「セクション」フォルダ内のmain-product.liquidファイルを選択します。

  1. 価格を読み込んでいるコードを、以下のように変更します。

変更前:

{%- when 'price' -%}
  
    {%- render 'price',
    product: product,
    use_variant: true,
    show_badges: true,
    price_class: 'price--large'
     -%}

変更後:

{%- when 'price' -%}
 {% if product.available %}
   
   {%- render 'price',
   product: product,
   use_variant: true,
   show_badges: true,
   price_class: 'price--large'
  -%}
  

{% endif %}
  1. 最後に「保存」をクリックして完了です。
1 Like

教えてくださりありがとうございます!

さっそくやってみましたところ、価格を非表示にすることができました!

かなり長時間この問題に時間を取られていまして、さらに解決も出来なくてどんよりしていましたが、

ナレッジサービスさんのおかげで、無事に解決することが出来ました。

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