为此,您需要创建一个控制器和方法来接收 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 中获取价值。