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

カートページで、特定のコレクションの商品だけに、指定の文字を入れたい

解決済

カートページで、特定のコレクションの商品だけに、指定の文字を入れたい

福水正太
Shopify Partner
63 24 23

お世話になります。

当方、カートページをカスタマイズしたいと考えておりまして、liquidのチートシートや海外のYouTube動画などで調べたのですが、

どうしても思うような表示にならず、こちらのフォーラムに投稿させていただきました。

=================

【要件】

・ハンドル名「cosmetics-from-japan」のコレクションに属する商品がカートに追加されている場合、カートページでその商品のタイトルの真下に「test」と表示する

=================

下記に、実際のカートページのコードを記載しております。

※表示したい箇所は、下記コードの真ん中くらいにございます。

 

 

              {%- for item in cart.items -%}
                <div class="cart-item" data-cart-item="{{ item.key }}">
                  <div class="grid">
                    <div class="td cart-item-product">
                      {%- comment -%}
                        Cart item - image
                      {%- endcomment -%}
                      <div class="cart-item-image">
                        {%- assign image = item.image -%}
                        <a href="{{ item.url | within: collections.all }}" class="card__image-wrapper"
                          style="padding-top:{{ 1 | divided_by: image.aspect_ratio | times: 100}}%"
                          data-cart-item-href>
                          {%- assign image_widths = '120,240,394,590' -%}
                          {% include 'theme-rias' %}
                          <img class="card__image lazyload"
                            src="{{ image | img_url: '120x' }}"
                            data-src="{{ image_url_pattern }}"
                            data-widths="[{{ image_widths }}]"
                            data-aspectratio="{{ image.aspect_ratio }}"
                            data-sizes="auto"
                            data-cart-item-image
                            alt="{{ image.alt | escape }}">
                          <noscript>
                            <img class="card__image" src="{{ image | img_url: '120x' }}" alt="{{ image.alt | escape }}">
                          </noscript>
                        </a>
                      </div>
                      {%- comment -%}
                        Cart item - title
                      {%- endcomment -%}
                      <div class="cart-item-title">
                        <a href="{{ item.url | within: collections.all }}" class="title" data-cart-item-href data-cart-item-title>{{ item.product.title }}</a>
                        {%- if section.settings.show_vendors -%}
                          <span class="vendor" data-cart-item-vendor>{{ item.vendor }}</span>
                        {%- endif -%}
                        {%- unless item.product.has_only_default_variant -%}
                          <span class="variant" data-cart-item-variant-title>{{ item.variant.title }}</span>
                        {%- endunless -%}
                        {%- comment -%}
                          Optional, loop through custom product line items if available
                          For more info on line item properties, visit:
                            - https://help.shopify.com/en/themes/customization/products/features/get-customization-information-for-products
                        {%- endcomment -%}
                        {%- unless item.properties == empty -%}
                          {%- for property in item.properties -%}
                            {%- unless property.last == blank -%}
                              {{ property.first }}: {% if property.last contains '/uploads/' %}
                                <a href="{{ property.last }}">{{ property.last | split: '/' | last }}</a>
                              {% else %}
                                {{ property.last }}
                              {% endif %}<br>
                            {%- endunless -%}
                          {%- endfor -%}
                        {%- endunless -%}
                      </div>
                      
                      //////////////////ここにtestと表示したい////////////////
                      
                      {% if item.collections.handle == 'cosmetics-from-japan' %}
                      	<div>test</div>
                      {% endif %}
                      
                      //////////////////ここまで//////////////////////////////////

                    </div>
                    {%- comment -%}
                      Cart item - price
                    {%- endcomment -%}
                    <div class="td cart-item-price">
                      <p><span class="money final-price{% if item.original_line_price > item.final_line_price %} final-price-discount{% endif %}" data-cart-item-final-price>{{ item.final_price | money }}</span></p>
                      {%- if item.original_line_price > item.final_line_price -%}
                        <p><span class="money original-price" data-cart-item-original-price>{{ item.original_price | money }}</span></p>
                      {%- endif -%}
                      {% if item.line_level_discount_allocations.size > 0 %}
                        <ul class="cart-item-discounts">
                        {% for discount_allocation in item.line_level_discount_allocations %}
                          <li class="cart-item-discount"><span class="cart-item-discount-title">{{ discount_allocation.discount_application.title }}</span><br>
                          <span class="cart-item-discount-amount">(-<span class="money">{{ discount_allocation.amount | money }}</span>)</span></li>
                        {% endfor %}
                        </ul>
                      {% endif %}
                    </div>
                    {%- comment -%}
                      Cart item - quanity
                    {%- endcomment -%}
                    <div class="td cart-item-quantity">
                      <span>
                        <div class="quantity-select">
                          <div class="button-wrapper">
                            <button type="button" class="adjust adjust-minus" data-cart-item-quantity-minus>-</button>
                          </div>
                          <div class="input-wrapper">
                            <input type="text" class="quantity" data-cart-item-quantity min="0" pattern="[0-9]*" name="updates[]" id="updates_{{ item.id }}" value="{{ item.quantity }}" >
                          </div>
                          <div class="button-wrapper">
                            <button type="button" class="adjust adjust-plus" data-cart-item-quantity-plus>+</button>
                          </div>
                        </div>
                      </span>
                      <a href="{{ routes.cart_change_url }}?line={{ forloop.index }}&amp;quantity=0" class="remove" data-cart-item-remove>{{ 'cart.general.remove' | t }}</a>
                    </div>
                    {%- comment -%}
                      Cart item - total
                    {%- endcomment -%}
                    <div class="td cart-item-total" data-mobile-label="{{ 'cart.label.total' | t }}">
                      <div class="mobile-label">{{ 'cart.label.total' | t }}</div> 
                      <p><span class="money" data-cart-item-line-price>{{ item.final_line_price | money }}</span></p>
                      {%- if item.original_line_price > item.final_line_price -%}
                        <p><span class="money original-price" data-cart-item-original-price>{{ item.original_line_price | money }}</span></p>
                      {%- endif -%}
                    </div>
                  </div>
                </div>
              {%- endfor -%}

 

 

 

以上となります。

何卒よろしくお願い致します。

 

国内5番目の個人Shopifyエキスパート|Shopifyストア構築100以上|Shopifyアプリ開発5個|Shopify専門メディア運営|自社ECをShopifyで立ち上げ~運用|法人2社経営|Shopify漬けの日々|主にShopify関連の役立つ情報を発信します

https://5-bit.jp/
1 件の受理された解決策

Jizo_Inagaki
Shopify Partner
1168 423 734

成功

実際に試していないので動くかはわかりませんが、以下のURLにある下記コードが回答になるかと思います。

https://stackoverflow.com/questions/27295654/shopify-cart-show-item-based-on-title

 

{% assign found_mukluk = false %}              
{% for item in cart.items %}
    {% for collection in item.product.collections %}
        {% if found_mukluk == false and collection.handle == "mukluks" %}
            {% assign found_mukluk = true %}
            this is a mukluk
        {% endif %}
     {% endfor %}  
{% endfor %}

 

assignの部分は無視しまして、重要なのはcollectionsをforで回す部分です。

 

もしも動作しない場合は申し訳ありません。

Jizo_Inagaki | フリーランスのwebデザイナー
- テーマのカスタム承れます。
- 記載した回答で解決できましたらベストソリューションの承認をお願いします。
- DMや指名による対応はご依頼として有料でのみ承ります。

元の投稿で解決策を見る

2件の返信2

Jizo_Inagaki
Shopify Partner
1168 423 734

成功

実際に試していないので動くかはわかりませんが、以下のURLにある下記コードが回答になるかと思います。

https://stackoverflow.com/questions/27295654/shopify-cart-show-item-based-on-title

 

{% assign found_mukluk = false %}              
{% for item in cart.items %}
    {% for collection in item.product.collections %}
        {% if found_mukluk == false and collection.handle == "mukluks" %}
            {% assign found_mukluk = true %}
            this is a mukluk
        {% endif %}
     {% endfor %}  
{% endfor %}

 

assignの部分は無視しまして、重要なのはcollectionsをforで回す部分です。

 

もしも動作しない場合は申し訳ありません。

Jizo_Inagaki | フリーランスのwebデザイナー
- テーマのカスタム承れます。
- 記載した回答で解決できましたらベストソリューションの承認をお願いします。
- DMや指名による対応はご依頼として有料でのみ承ります。
福水正太
Shopify Partner
63 24 23

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

 

結論、ご提示いただいたコードで動作はできなかったのですが(私の記述ミスの可能性もあります)、『コレクションの条件になっている商品のtypeを指定する』ことで、問題解決できました。

{%- for item in cart.items -%}
  {% if item.product.type == "Cosmetics from Japan" %}
     ここに文字が入る
  {% endif %}
{%- endfor -%}

 

アドバイスありがとうございました!

国内5番目の個人Shopifyエキスパート|Shopifyストア構築100以上|Shopifyアプリ開発5個|Shopify専門メディア運営|自社ECをShopifyで立ち上げ~運用|法人2社経営|Shopify漬けの日々|主にShopify関連の役立つ情報を発信します

https://5-bit.jp/