如何在cart.js Shopify中获取产品元数据

时间:2018-04-12 09:38:02

标签: shopify shopify-app shopify-template

如何在Shopify商店cart.js响应中获取产品元字段?

目前,在cart.js中未提供产品元数据的任何细节。

5 个答案:

答案 0 :(得分:0)

Metafields可通过Liquid在客户端使用。您不需要cartJS来获取它们。您可以将感兴趣的产品元域渲染到您自己选择的数据结构中,并根据需要使用您想要的数据结构。

您还可以构建基于StorefrontAPI的系统,如果您非常热衷,请尝试使用GraphQL。

答案 1 :(得分:0)

您可以使用metafield访问item.product.metafields.your-namespace.your-key

答案 2 :(得分:0)

您有许多可能的破解方法。 如果您使用的是CartJS,我建议的是

  1. 在您的产品页面中,以HTML打印产品元字段

    <div class="product-page" data-metafield="{{product.metafield.namespace.value}}">
    </div>
    
  2. 添加产品后,只需将元字段添加为订单项属性

    var properties = {metafield : $('.product-page').data('metafield')}; CartJS.addItem(variantId, 1 ,properties);

  3. 现在可以通过CartJS.cart.items [i] .properties [metafield]访问元字段!

答案 3 :(得分:0)

您可以通过将其分配给液体文件中的变量来获取相应产品,集合,订单的 metafields 内容。 在product-template.liquid中,您可以使用

   {% assign var_meta = page.metafields.meta_namespace %} 

//您可以使用the Shopify docs来了解如何创建 Metafields

   {% assign key = 'meta_key' %}
   {% assign key_val_meta = meta_namespace.meta_key %}

访问变量 {{key_val_meta}}

如果为元字段分配唯一值,则可以使用它来获取确切的信息,然后可以在cart.js函数中输入该信息。

答案 4 :(得分:0)

** 您可以通过添加以下步骤来做到这一点**

  1. 在产品表单中添加以下代码

{% for field in product.metafields.namespace%}
             <input required class="required hidden" id="customID" type="hidden" value='{{ field | last }}' name="properties[metafields[{{ field | first }}]]"> 
    {% endfor %}

  1. 它将添加到您的购物车对象中,您可以通过
  2. 访问它

{% for field in item.properties.metafields %}
         {{ field | first }}: {{ field | last }}
    {% endfor %}