2016-11-01 13 views
0

私たちは、しかし、それは動作していないとして、我々は、エラーを取得している、私たちのshopifyアプリのコードの下にありますShopifyウィッシュリストメモリの問題

液体エラー:メモリの制限は、顧客タグによるコードがループし

を超え、コレクションの製品IDを確認し、製品を表示します。

誰でも問題の特定にご協力いただけますか?

{% include 'breadcrumb' %} 
 
<div class="container"> 
 
    <div class="page"> 
 
    <div class="title"> 
 
     <h2>{{ page.title }}</h2> 
 
    </div> 
 
    <div class="page_content"> 
 
     {{ page.content }} 
 
    </div> 
 
    {% if customer %} 
 
    <ul class="wishlist-items"> 
 
     <li class="head"> 
 
     <ul> 
 
      <li class="col-1 hidden-xs">{{'wish_list.general.image' | t}}</li> 
 
      <li class="col-2">{{'wish_list.general.item' | t}}</li> 
 
      <li class="col-3">{{'wish_list.general.price' | t}}</li> 
 
      <li class="col-4"></li> 
 
     </ul> 
 
     </li> 
 
     <li class="tbody"> 
 
     <ul> 
 
     {% for tag in customer.tags %} 
 
     {% assign the_test = '' %} 
 
     {% capture tagID %}{{ tag }}{% endcapture %} 
 
     {% for tag in customer.tags %} 
 
     {% capture curTag %}{{ tag }}{% endcapture %} 
 
     {% if curTag contains tagID %} 
 
     {% assign tagID_tmp = tagID.size | minus:curTag.size %} 
 
     {% if tagID_tmp == 0 %} 
 
     {% assign the_test = tagID %} 
 
     {% else %} 
 
     {% assign the_test = '' %} 
 
     {% endif %} 
 
     {% endif %} 
 
     {% endfor %} \t 
 

 
     {% for collection in collections %} 
 
     {% paginate collection.products by collection.all_products_count %} 
 
     {% for product in collection.products %} 
 
     {% capture productID %}{{ product.id }}{% endcapture %} 
 
      {% capture used %}{{ productID }} {{ used }}{% endcapture %} 
 
     {% unless used contains productID %} 
 
     {% assign check = tag.size | minus:productID.size | modulo:2 %} 
 
     {% if check == 0 %}{% assign display_product = true %}{% else %}{% assign display_product = false %}{% endif %} 
 
     {% if display_product and the_test contains productID %} 
 
     
 
     {% assign variant_tmp = product.selected_or_first_available_variant %} 
 
     {% for variant in product.variants %} 
 
     {% if variant.available == true and variant.price < variant_tmp.price %} 
 
     {% assign variant_tmp = variant %} \t 
 
     {% endif %} 
 
     {% endfor %} 
 
     <li class="item"> 
 
      <ul> 
 
      <li class="col-1 hidden-xs"> 
 
       <a href="{{product.url | within: collection}}" class="product-image"> 
 
       <img src="{{product.featured_image | product_img_url:'medium'}}" alt="{{product.title}}" /> 
 
       </a> 
 
      </li> 
 
      <li class="col-2"> 
 
       <a href="{{product.url | within: collection}}" class="product-image visible-xs"> 
 
       <img src="{{product.featured_image | product_img_url:'medium'}}" alt="{{product.title}}" /> 
 
       </a> 
 
       <a href="{{product.url | within: collection}}" class="product-title mtop">{{product.title}}{% if product.variants.size > 1 %} - {{variant_tmp.title}}{% endif %}</a> 
 
      </li> 
 
      <li class="col-3"><div class="product-price"><span class="money">{{product.price | money}}</span></div></li> 
 
      <li class="col-4"> 
 
       <div class="action"> 
 
       <div class="wishlist"> 
 
        {% form 'customer' %} \t 
 
        <input type='hidden' name='contact[email]' value='{{ customer.email }}'/> 
 
        <input type='hidden' name='contact[tags]' id='remove-value' value='x{{ tagID }}' /> 
 
        <button type="submit" class="remove-wishlist"><i class="fa fa-close"></i></button> 
 
        {% endform %} 
 
       </div> | 
 
       <div class="addtocart"> 
 
        {% if product.available %} 
 
        <form action="/cart/add" method="post" enctype="multipart/form-data"> 
 
        <input type="hidden" name="quantity" value="1" /> 
 
        <input type="hidden" name="id" value="{{variant_tmp.id}}" /> 
 
        <button type="submit" class="add-to-cart"><i class="fa fa-shopping-cart"></i></button> 
 
        </form> 
 
        {% else %} 
 
        <a href="{{ product.url | within: collection }}" class=""><i class="fa fa-shopping-cart"></i></a> 
 
        {% endif %} 
 
       </div> 
 
       </div> 
 
      </li> 
 
      </ul> 
 
     </li> 
 
     
 
     {% endif %} 
 
     {% endunless %} 
 
     {% endfor %} 
 
     {% endpaginate %} 
 
     {% endfor %} 
 
     {% endfor %} 
 
     </ul> 
 
     </li> 
 
    </ul> 
 
    
 
    {% else %} 
 
    <p>{{'wish_list.general.to_create_a_wishlist_please' | t}} <a href='/account/login'>{{'wish_list.general.login' | t}}</a> {{'wish_list.general.or' | t}} <a href='/account/register'>{{'wish_list.general.register' | t}}</a>.</p> 
 
    {% endif %} 
 
    </div> 
 
</div>

答えて

2

これは、多くのネストされたループです。

{% for collection in collections %} 
    {% paginate collection.products by collection.all_products_count %} 
    {% for product in collection.products %} 
     ... 
    {% endpaginate %} 
    {% endfor %} 
{% endfor %} 

私たちのクライアントショップの1つでこのエラーが発生しました。

しかし、Shopifyの液体all_products ['the-handle']を使用することができます。変数

オリジナルのお客様タグwishlistは、製品IDとxを使用しています。製品IDの代わりに製品ハンドルを使用し、xの代わりに+0を使用しました。プロダクトIDと

お客様タグ:ハンドル付き

x12345678

xx12345678

お客様タグ:

一部-製品取り扱い

+ 0some-プロダクトハンドル

+ 0 +

を0some-製品取り扱い私は、コードを変更しなければならなかった、多くの時間を費やしたが、今では、エラーなしで、正常に動作します。

+0

私は> all_products ["customer_tag"]というIDで商品を取得する必要がありますか? – user3151766

+0

はい。製品のハンドルを顧客のタグに置き、それを取得し、** + 0 **の部分文字列(または別のマーカー)を削除して製品を入手します。 –

関連する問題