我希望使用Shopify API为商店中的某些分析添加javascript
代码段。我发现使用admin/themes/:id/assets.json
我可以修改theme.liquid
以插入代码段,但这会更改页面的整个内容。我当前的API调用是
admin/themes/35073539/assets.json
{
"asset": {
"key": "layout\/theme.liquid",
"value": "{{content_for_header}}<script>console.log('foo')</script>"
}
}
这显然不起作用。
我只想修改<head>
标记并插入一些自定义javascript
。此外,ScriptTag
不会有用,因为我必须从用户那里获取一些输入,在javascript
中使用该输入,然后插入代码段。任何帮助将不胜感激。
答案 0 :(得分:4)
首先,您需要获取所有资产的列表,以确保在端点URL中使用正确的ID。 (/assets.json之前的长号)
GET /admin/themes/#{id}/assets.json
然后你想将当前文件的副本保存到服务器作为备份,只是为了安全......
PUT /admin/themes/#{id}/assets.json
{
"asset": {
"key": "layout\/theme.bak.liquid",
"source_key": "layout\/theme.liquid"
}
}
由于您使用的方法会覆盖现有文件,因此您需要下载当前文件,将HTML拉入javascript变量,修改该HTML,然后像上面那样发回HTML。
首先下载theme.liquid ....
GET /admin/themes/#{id}/assets.json?asset[key]=layout/theme.liquid&theme_id=828155753
这将返回该文件的HTML等..您需要添加/更改此文件的内容,然后按原样发送该内容...
PUT /admin/themes/#{id}/assets.json
{
"asset": {
"key": "layout\/theme.liquid",
"value": "*****The HTML FOR THEME.LIQUID"
}
}
那应该这样做。如果成功,现在应该添加代码。
希望这有帮助,如果您有任何问题,请与我联系。