3

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

目前,在 cart.js 中没有提供产品元字段的任何详细信息。

4

5 回答 5

1

你有很多可能的黑客攻击。如果您使用 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] 访问元字段!

于 2020-01-10T19:54:51.887 回答
1

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

  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. 它将添加到您的购物车对象中,您可以通过以下方式访问它

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

于 2021-03-24T06:30:20.060 回答
0

元字段可通过 Liquid 在客户端使用。您不需要 cartJS 来获取它们。您可以将感兴趣的产品元字段呈现到您自己选择的数据结构中,并随心所欲地使用。

如果您真的很热衷,您还可以构建一个基于 StorefrontAPI 的系统并尝试使用 GraphQL。

于 2018-04-12T13:36:55.027 回答
0

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

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

// 您可以使用Shopify 文档来了解如何创建元字段

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

访问变量 {{key_val_meta}}

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

于 2020-11-18T19:26:41.043 回答
0

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

于 2018-05-16T06:48:06.187 回答