访问 BigCommerce 中店面的元字段

Accessing metafields on storefront in BigCommerce

我目前正在开发一个解决方案,我需要用额外的(自定义)数据来扩展产品信息。我选择将它存储在元字段中,因为它们可能比简单的自定义字段(限制为 250 个字符)更复杂,而且它们需要对管理员人员只读。我想访问店面模板中的这些字段。

I see that there's a permission option for metafiels read_and_sf_access(为元字段设置店面访问权限)但没有关于如何访问的信息。

另一方面,product theme object 没有元字段的任何属性。

如何访问模具模板中的产品元字段?

您可以将GraphQL query to fetch the metafields添加到父页面模板顶部的Front Matter中,例如product.html

然后从那里,您可以像访问任何其他车把一样访问它 属性(在 gql 顶级键下)- 因此您可能需要将结果传递到您的组件中.

这是 product.html 中的样子:

---
product:
   videos:
       limit: {{theme_settings.productpage_videos_count}}
   reviews:
       limit: {{theme_settings.productpage_reviews_count}}
   related_products:
       limit: {{theme_settings.productpage_related_products_count}}
   similar_by_views:
       limit: {{theme_settings.productpage_similar_by_views_count}}
gql: "query productMetafieldsById($productId: Int!) {
  site {
    product(entityId: $productId) {
      metafields(namespace: \"my-namespace\") {
        edges {
          node {
            key
            value
          }
        }
      }
    }
  }
}
"

然后您可以通过 {{gql.data.site.product.metafields}}

访问它

一种简单的消费方式如下:

{{#each gql.data.site.product.metafields.edges}}
  {{#with node}}
    {{key}}
    {{value}}
  {{/with}}
{{/each}}

元字段只有在 permission_set 包含 storefront 时才会在店面中可用,否则它们将在店面中隐藏。

您还可以调用 GraphQL API directly from the Stencil frontend if you prefer, and you can test your queries using the "Storefront API Playground" under Advanced Settings in the control panel.