在 shopify 中如何将产品对象推送到空白数组

In shopify How to push product Object to blank Array

在 Shopify 中,我的代码结构遵循产品循环。

{% assign products = all_products[block.settings.product_to_show] %}

在产品变量中,我得到了一个产品的对象。 但是我的for循环代码结构只接受产品作为数组。

{% for product in products %}
 {% include 'product-card', product: product %}
{% endfor %}

那么如何在 shopify 中将“产品”(对象)推送到空白数组中?

对于 Liquid,我们通常只能创建一个字符串数组(而非对象)。鉴于您似乎拥有来自部分块设置的产品句柄,以下是一些可能对您有用的方法:

  1. section.blocks 上使用 forloop,创建产品对象并将其传递给输出片段(示例代码假定每个块只有 1 个产品)。
{% for block in section.blocks %}
  {% assign _product = all_products[block.settings.product_to_show] %}
  {% include 'product-card', product: _product %}
{% endfor %}
  1. 遍历部分块并创建一个逗号分隔的产品句柄(字符串)字符串。使用 split 过滤器将字符串转换为字符串数组。遍历数组,创建产品对象并将其传递给输出片段。
{% assign products = '' %}
{% for block in section.blocks %}
  {% comment %}
    You can place additional logic/conditions within this loop to customize how your "products" array is built
  {% endcomment %}

  {% assign products = products | append: block.settings.product_to_show | append: ',' %}
{% endfor %}

{% assign products = products | split: ',' %}

{% for product_handle in products %}
  {% assign _product = all_products[product_handle] %}
  {% include 'product-card', product: _product %}
{% endfor %}