Arc*_*rma 4 javascript python api rest shopify
我希望javascript使用Shopify API为整个商店的一些分析添加一个片段。我发现使用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>"
}
}
Run Code Online (Sandbox Code Playgroud)
这显然行不通。
我只想修改<head>标签并插入一些自定义javascript. 此外,ScriptTag也不会有用,因为我必须从用户那里获取一些输入,在我的输入中使用该输入javascript,然后插入代码段。任何帮助,将不胜感激。
首先,您需要获取所有资产的列表,以确保在端点 URL 中使用正确的 ID。(/assets.json 之前的长数字)
GET /admin/themes/#{id}/assets.json
Run Code Online (Sandbox Code Playgroud)
然后你想将当前文件的副本保存到服务器作为备份,只是为了安全......
PUT /admin/themes/#{id}/assets.json
{
"asset": {
"key": "layout\/theme.bak.liquid",
"source_key": "layout\/theme.liquid"
}
}
Run Code Online (Sandbox Code Playgroud)
由于您使用的方法会覆盖现有文件,因此您需要下载当前文件,将 HTML 提取到 javascript 变量中,修改该 HTML,然后像上面一样将 HTML 发送回去。
首先下载theme.liquid....
GET /admin/themes/#{id}/assets.json?asset[key]=layout/theme.liquid&theme_id=828155753
Run Code Online (Sandbox Code Playgroud)
这将返回该文件的 HTML 等,您需要添加/更改此文件的内容,然后按照您已经发送的方式发送该内容...
PUT /admin/themes/#{id}/assets.json
{
"asset": {
"key": "layout\/theme.liquid",
"value": "*****The HTML FOR THEME.LIQUID"
}
}
Run Code Online (Sandbox Code Playgroud)
那应该这样做。如果成功,现在应该添加代码。
希望这会有所帮助,如果您有任何问题,请告诉我。
| 归档时间: |
|
| 查看次数: |
5358 次 |
| 最近记录: |