FROM CACHE - jp_header
このコミュニティはピアツーピアサポートに移行しました。Shopify サポートは今後、このコミュニティへのサービスを提供いたしません。これからもぜひ、他のマーチャントやパートナーとつながり、サポートし合い、経験を共有してください。 当社の行動規範に違反する行動や削除を希望するコンテンツがありましたら、引き続きご報告ください

バリエーションに(SOLD OUT)の文字を表示させたい

バリエーションに(SOLD OUT)の文字を表示させたい

Rhythmos
Shopify Partner
11 1 1

商品が売り切れの場合、バリエーションのオプションを選択する時に、売り切れとわかるように文字を表示させたいと思っております。

例えば、カラーとサイズのバリエーションがある場合、

カラーを選択して、サイズを選択する時に売り切れの場合サイズがある場合、(SOLD OUT)という文字を<option>の中に表示させたいのですが、

色々調べてもわからなかったので、ご教授いただけると嬉しいです。

参考サイトURL

https://www.neighborhood.jp/products/211pcnh-st20

何卒よろしくお願い申し上げます。

6件の返信6

junichiokamura
Community Manager
1201 280 509

テーマに依存する問題だと思いますので、お使いのテーマを共有されるのが良いかと思います。

Shopifyでバリエーション管理すると、在庫はバリエーション単位で管理されるので、DebutとかですとSOLD OUTと表示されると思うのですが、それとは別の要件でしょうか?

Senior Partner Solutions Engineer
attraction
訪問者
1 0 0

横から失礼いたします。

私も同様の悩み(サイズ毎にsoldout表記を付けたい)を持っておりまして、テーマは「Narrative」なのですが、どのような解消方法があるのでしょうか?

junichiokamura
Community Manager
1201 280 509

Debutなどは、Liquidで該当バリエーションの在庫数をみて、ゼロならSOLD OUTの表示をしているコードがテーマ内にあるはずなので、同様の処理をNarrativeのコードにも入れれば同じことができるはずですが、HTML、JS、Liquidなどのコーデイングの知識が必要です。

ご自身がテーマのコード編集の知識をお持ちであれば、下記のテーマの技術ドキュメントを見て該当箇所を特定して修正できますが、そうでない場合は、パートナーさんなどにお願いするのをお勧めします。

https://shopify.dev/docs/themes/liquid/reference/objects/variant#variant-inventory_quantity

 

Senior Partner Solutions Engineer
_osamu_iwasaki_
Shopify Partner
189 47 195

初期表示はLiquidで初期選択のバリエーションが売り切れかどうか判定して表示しているのですが、
ブラウザに出力した後はもうLiquidが使えませんので、ユーザーがバリエーションを選択するアクションをすると、
JavaScriptで在庫判定し直してHTMLを書き変えていると思います。

テーマで使われているロジックを調べ直して改修するよりは、
ゼロから作り直すか、近しいことができるアプリを探したほうが早いかもしれません。

Rhythmos
Shopify Partner
11 1 1

すみません色々と返信いただき誠にありがとうございます。

デフォルトテーマのDebutでは、下記のチュートリアル参考にして実装ができました。

https://shopify.dev/tutorials/customize-theme-hide-variants-that-are-sold-out

今使用しているテーマ「Palo Alto」に当てはめようと試みましたが、
テーマの構造が複雑で私には、理解ができませんでした。

https://themes.shopify.com/themes/palo-alto/styles/palo-alto

meirou
Shopify Partner
6 0 3

ちょうどoption  variant products.product.sold_out などで 当方も探していたところに、ピッタリの質問をいただいていて、大変参考になりました。

 

 

https://help.shopify.com/ja/manual/online-store/themes/themes-by-shopify/vintage-themes/customizing-...

 

↑こちらのページ Dbuet のカスタマイズにて以下のコード記述あります。
ProductJson-で始まるIDを持つ要素を取得する表現だと思うのですが、これではうまく取得できませんでした。

 

const productJson = document.querySelectorAll('[id`^`=ProductJson-');

 

そこで、IDを直接記述して取得するようにしました。

  const productJson = document.querySelectorAll('#ProductJson-product-template');

 

 

Digital designer