あといくらで送料無料の詳細設定について

Topic summary

カート画面に送料無料に関する3つのメッセージを表示する実装について質問が投稿されました。

実装したい内容:

  • 「あと○○円で送料無料」
  • 「送料無料になりました」
  • 「送料無料対象外商品が含まれています」

課題:
最初の2つは実装できたが、重量設定のある商品(1kg設定=送料無料対象外)がカートに含まれる場合の表示方法が不明でした。

解決方法:
Qcoltd氏がLiquidコードを提供し、以下のロジックで実装:

  • カート内商品をループで確認
  • item.variant.weight > 0 で対象外商品を検出
  • 対象外商品がある場合は専用メッセージを表示
  • {% else %} ブロック内に送料無料系のメッセージを配置することで、対象外商品がない場合のみ表示

結果:
質問者は提供されたコードで希望通りの実装に成功し、解決しました。

Summarized with AI on October 28. AI used: claude-sonnet-4-5-20250929.

カート画面に「あと○○円で送料無料」or「送料無料になりました」or「送料無料対象外商品が含まれています」の3つを表示したいです。

なんとか前者2つをコードで挿入することはできたのですが、

最後の対象外だけどのように反映したらいいかわかりません。どなたかご教授いただけないでしょうか。

■除外品が含まれる場合
・条件:商品に重量設定をしているもの(1商品=1Kgで設定/重量の設定してあるのは送料無料対象外商品のみ)
・文言:送料無料対象外商品が含まれています

よろしくお願いいたします。

@tcsf2

ご質問いただいていました、「送料無料対象外商品が含まれています」をカートで表示したい件ですが、下記のようなコードで対応できませんでしょうか。

実装の考え方は下記となります。

  • カート内の商品をループで確認

  • item.variant.weight > 0 を条件に対象外商品を検出

  • 対象外商品が存在すれば、対象文言を表示

{% assign has_excluded_item = false %}

{% for item in cart.items %}
{% if item.variant.weight > 0 %}
{% assign has_excluded_item = true %}
{% break %}
{% endif %}
{% endfor %}

{% if has_excluded_item %}

送料無料対象外商品が含まれています

{% endif %}

コードの検証は行なっておりませんので、実際にご利用の際は検証の上ご利用ください。

ご参考まで。

(キュー小坂)

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

コードを入れてみたところ、「送料無料になりました」などの後ろですが、表示はされました!

上記条件の時には「あと○○円で送料無料」or「送料無料になりました」は表示されないようにしたいのですが、可能なのでしょうか。

@tcsf2

「あと○○円で送料無料」or「送料無料になりました」の案内についてですが、

下記コードの「ここに送料無料系の記述を追加」内に記載いただければ、送料無料対象外商品が含まれていない場合のみ表示されるかと思います。

お作りいただいているコードが分かりかねるため、そのまま追加して動くかは不明ですので、実際にご確認いただけますと幸いです。

{% assign has_excluded_item = false %}

{% for item in cart.items %}
{% if item.variant.weight > 0 %}
{% assign has_excluded_item = true %}
{% break %}
{% endif %}
{% endfor %}

{% if has_excluded_item %}

送料無料対象外商品が含まれています

{% else %}

ここに送料無料系の記述を追加

{% endif %}

ご参考まで。

(キュー小坂)

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

無事にやりたい状態にできました!ありがとうございます!!