0

每次当我的 shopify 客户在我的 shopify 商店上订阅产品时,我都想创建元字段,所以我得到了以下代码来创建元字段,但不知道它如何在液体主题上工作?谁能指导我在哪里需要编写以下代码以使其正常工作?

‘POST’, ‘/admin/products/1328/metafields.json’, array(“metafield” => 
array(‘namespace’=>’inventory’, ‘key’=>’warehouse’, ‘value’=>"some text here",   ‘value_type’=>’string’)));

如何在液体模板页面中制作上述代码以使用 shopify api 创建元字段?

4

4 回答 4

1

您不能在液体中创建元场。如果要创建元字段,则必须使用 admin API / graphQL API 来执行此操作。

Liquid 仅允许您将现有数据“打印”到模板。

于 2020-11-05T08:11:54.933 回答
0

您商店的访客“互动​​”的纯液体将不允许使用 Shopify API 进行任何操作。您需要有一个 Oauth 开放会话才能发布/读取您的商店数据。

于 2013-11-14T11:05:54.150 回答
0

对于您的示例,您将以这种方式引用元字段。

{{ product.metafields.inventory.warehouse }}

然后会显示

“这里有一些文字”

于 2019-03-21T16:52:12.080 回答
0

为此,您需要创建一个控制器和方法来接收 AJAX 请求并调用 Shopify API。

在产品订阅按钮上创建点击事件。点击事件将如下所示:

let url = 'https://your_host.com/your_contoller/your_method?shop=your_shop_domain';
let postData = { product_id: "your_product_id" };
$.ajax({
  type: 'post',
  url: url,
  data: postData,
  dataType: 'json',
  complete: (res) => {
      console.log(res); // response from your_method
  }
});

在控制器方法中,您必须将 Shopify 客户端用作 phpish/shopify 或任何其他客户端。使用您的应用或私有应用的 api_key、access_token 的客户端,您可以发出这种请求:

POST /admin/api/2020-10/products/PRODUCT_ID/metafields.json
{
  "metafield": {
    "namespace": "inventory",
    "key": "warehouse",
    "value": 25,
    "value_type": "integer"
  }
}

之后你应该得到结果。

但是,如果您想根据客户的请求创建元字段,最好将控制器方法包装在队列中并使用队列,因为如果您不使用队列,则可能会落入 Shopify REST API 的限制范围内。

创建元字段后,您可以使用 Richard 的代码从 Liquid 中获取价值。

于 2020-11-06T12:01:37.943 回答