使用テーマprestigeですがコレクションで在庫数を表示させたいです。
商品ページではテーマのデフォルトで残り一個とそれ以外で表示を変えたり出来るのですが同じように残り一個と設定数以下の場合残りわずかと表示させたいです。
宜しくお願い致します。
Prestigeテーマを使用しているユーザーが、コレクションページで在庫数を表示させたいと質問しています。商品ページではデフォルトで「残り1個」などの表示が可能ですが、コレクション一覧でも同様の機能を実装したいとのこと。
提案された解決方法:
variant.inventory_quantity を使用して在庫数を取得経過:
質問者は当初うまく表示できませんでしたが、調整後に表示に成功。ただし在庫切れ商品も「残りわずか」と表示される問題が発生しました。回答者が条件式に minimum_inventory_quantity > 0 を追加する修正案を提示し、最終的に無事解決しました。
使用テーマprestigeですがコレクションで在庫数を表示させたいです。
商品ページではテーマのデフォルトで残り一個とそれ以外で表示を変えたり出来るのですが同じように残り一個と設定数以下の場合残りわずかと表示させたいです。
宜しくお願い致します。
@Anonymous_36093389743ff7e25f554092b3815422 様
コードカスタマイズかアプリ導入が必要かと思います。
コードカスタマイズの場合
Prestigeが有料テーマであるため具体的にファイルのどこを変更すれば良いかをお教えするのは難しいのですが、
https://shopify.dev/docs/api/liquid/objects/variant#variant-inventory_quantity
{{ varinat.inventory_quantity }}
で、在庫数を出せますので、
例えば、3個以下であれば、「残りわずか」と表示したい場合は、
{% if varinat.inventory_quantity <= 3 %}
残りわずか
{% endif %}
というのを商品カードのliquidに設定されれば良いかと思います。
しかし、
商品にバリエーションがある場合は、すべてのvariantの商品数を比べて、
一番少ない在庫数を抽出し、
その在庫数で、判定する必要があるかと思います。
下記が、その例です。
※動作検証はしておりませんので、このままですとエラーが出る可能性があります。
{% assign inventory_quantities = product.variants | map: "inventory_quantity" %}
{% assign minimum_inventory_quantity = inventory_quantities | first %}
{% for inventory_quantity in inventory_quantities %}
{% assign temporary_inventory_quantity = inventory_quantity | plus: 0 %}
{% if temporary_inventory_quantity < minimum_inventory_quantity %}
{% assign minimum_inventory_quantity = temporary_inventory_quantity %}
{% endif %}
{% endor %}
{% if minimum_inventory_quantity <= 3 %}
残りわずか
{% endif %}
アプリを使う場合
しっかり確認していませんが、説明を見る限りこちらのアプリでも対応できそうですし、
探せば、下記以外にもありそうです。
https://apps.shopify.com/gs-inventory-show-stock-level?locale=ja
ご参考まで。
(キュー田辺)
丁寧に説明して頂きありがとうございます。
products cardの所に追記してみたのですが表示されませんでした。
恐らく当方の方法が間違っていると思いますが素人なのでこれ以上わかりません。
お手数をお掛けしました。
再度投稿させて頂きます。
少し調整しましたら表示出来ました。
しかし在庫切れの商品も残りわずかと表示されてしまいます。
在庫切れの商品は表示しないようにするにはどうすれば良いでしょうか?
宜しくお願い致します。
@Anonymous_36093389743ff7e25f554092b3815422 様
下記のように、「0より大きい」という条件を追加すると良いかと思います。
{% if minimum_inventory_quantity <= 3 AND minimum_inventory_quantity > 0 %}
残りわずか
{% endif %}
早速のご回答ありがとうございます。
無事解決できました!