Json 在shopify上创建元字段
每次我的shopify客户在我的shopify商店订阅产品时,我都想创建元域,所以我得到了以下代码来创建元域,但不知道它在liquid主题上是如何工作的?有谁能告诉我需要在哪里编写以下代码才能使其正常工作Json 在shopify上创建元字段,json,shopify,liquid,Json,Shopify,Liquid,每次我的shopify客户在我的shopify商店订阅产品时,我都想创建元域,所以我得到了以下代码来创建元域,但不知道它在liquid主题上是如何工作的?有谁能告诉我需要在哪里编写以下代码才能使其正常工作 ‘POST’, ‘/admin/products/1328/metafields.json’, array(“metafield” => array(‘namespace’=>’inventory’, ‘key’=>’warehouse’, ‘value’=>"som
‘POST’, ‘/admin/products/1328/metafields.json’, array(“metafield” =>
array(‘namespace’=>’inventory’, ‘key’=>’warehouse’, ‘value’=>"some text here", ‘value_type’=>’string’)));
如何在liquid模板页面中生成上述代码,以使用shopify api创建元字段?纯liquid由您商店的访问者“交互”,不允许对shopify api执行任何操作。您需要有一个Oauth open会话才能发布/读取存储数据。对于您的示例,您可以这样引用元字段 {{product.metafields.inventory.warehouse} 那就说明
“此处的某些文本”不能在液体中创建元字段。如果要创建元字段,必须使用admin API/graphQL API
Liquid只允许您将现有数据“打印”到模板中。为此,您需要创建一个控制器和方法,该控制器和方法将接收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_密钥、访问应用程序或私人应用程序的_令牌的情况下,您可以发出此类请求:
POST /admin/api/2020-10/products/PRODUCT_ID/metafields.json
{
"metafield": {
"namespace": "inventory",
"key": "warehouse",
"value": 25,
"value_type": "integer"
}
}
等你拿到结果后
但是,如果您希望根据客户的请求创建元字段,最好将controller方法包装在队列中并使用队列,因为如果您不使用队列,则有可能落入Shopify REST API的限制范围内
创建元字段后,您可以使用Richard提供的代码从liquid获取值。我找到了另一个示例,并尝试了product=shopifiAPI::product.find(148362461)product.add_元字段(shopifiAPI::metafield.new)({:description=>'Developer of the Site',:namespace=>'chargify',:key=>'customer',:value=>'Metlo',:value_type=>'string'})它也不起作用,我需要知道如何在shopify的客户账户页面上创建/更新/删除元域?我想与每个客户互动,使用shopify发布/查看数据,特别是元域,所以我想知道我的客户何时进入会员页面,通过chargify订阅任何计划,然后返回我们的网站网站成功订阅后,一旦订阅,我想在shopify网站上创建元字段,以便将来检查登录的客户是否已订阅。您能告诉我如何使用Oauth open session来完成此操作吗?