2015-12-06 2 views
1

У меня есть 3 коллекции, которые отображаются на моей странице прямо сейчас.Несколько коллекций в Shopify

Я хочу иметь одну страницу на самом дне, которая будет загружать следующие 50 продуктов для всех 3 коллекций, если таковые имеются.

Как я могу это сделать?

это мой код:

{% paginate collections.mycollection1.products by settings.pagination_limit %} 
     <div style="clear:both;"> 
      <h1>Title</h1> 
      {% assign products_per_row = "4" %} 
      {% assign limit = 50 %} 
      {% assign products = collections.mycollection1.products %} 
      {% include 'product-loop' with settings.collection_sidebar %} 
      {% include 'pagination' with settings.collection_sidebar %} 
     </div> 

    {% endpaginate %} 

{% paginate collections.mycollection2.products by settings.pagination_limit %} 
     <div style="clear:both;"> 
      <h1>Title</h1> 
      {% assign products_per_row = "4" %} 
      {% assign limit = 50 %} 
      {% assign products = collections.mycollection2.products %} 
      {% include 'product-loop' with settings.collection_sidebar %} 
      {% include 'pagination' with settings.collection_sidebar %} 
     </div> 

    {% endpaginate %} 

{% paginate collections.mycollection3.products by settings.pagination_limit %} 
     <div style="clear:both;"> 
      <h1>Title</h1> 
      {% assign products_per_row = "4" %} 
      {% assign limit = 50 %} 
      {% assign products = collections.mycollection3.products %} 
      {% include 'product-loop' with settings.collection_sidebar %} 
      {% include 'pagination' with settings.collection_sidebar %} 
     </div> 

    {% endpaginate %} 
+0

Вы имеете в виду это? - 4-й раздел разбивки на страницы, в котором будут перечислены следующие 50 продуктов из каждого из mycollection1, mycollection2 и mycollection3 вместе. – HymnZ

+0

@HymnZ да, я хочу, чтобы одна целая группа контролировала все 3 коллекции – altoids

ответ

0

Это то, что вы можете сделать, используя нумерацию страниц. Я предполагаю, что все три коллекции имеют одинаковый размер.

  1. Во-первых, давайте называть пагинации для всех продуктов в вашем магазине

    {% assign total_products = collections.all.products_count %}

  2. Поскольку вы перетасовки 4 продукта, в то время, число страниц, которые будут пронумерованы будет кол-всего товаров/4

    {% assign loop_value = total_products | divided_by: 4 %}

  3. Теперь начать pagin ция

    {% paginate collections by loop_value %}

  4. Теперь нам нужно, чтобы получить окно дисплея для работы 4 дисплеев продукции

    {% assign window = paginate.current_page %} {% assign window_start = window | minus: 1 | times: 4 %} //4 is the number of products being displayed {% assign window_end = window | times: 4 | plus: 1 %}

  5. Теперь это будет сделано, мы начинаем показ продукта. Это тот же синтаксис для всех трех коллекций, просто замените дескриптор коллекции по мере необходимости.

    {% for product in collections.mycollection1.products %} // mycollection1 is your collection handle {% if forloop.index > window_start and forloop.index < window_end %} {% include 'product-block' %} {% endif %}{% endfor %}

  6. И мы заканчиваем пагинацию

    {% if paginate.pages > 1 %}<div class="pagination align-right"> {{ paginate | default_pagination }} </div>{% endif %}{% endpaginate %}

Некоторые важные вещи, чтобы отметить очень тщательно:

  • Если вы не создадите «mycollection1/2/3 "массивы динамически из кода, этот код работает на для первых 50 продуктов в этих коллекциях.
  • Вы можете использовать paginate функция только один раз на всей странице.
Смежные вопросы