使用Shopify资产API修改theme.liquid

时间:2019-02-11 07:01:32

标签: python shopify liquid shopify-app

我想在theme.liquid中添加以下代码

<div id="shopify-section-header" class="shopify- 
section">
<!-- content of sections/header.liquid -->
<a href="http://pricemonitor.info/cloth_comparision/#/" 
class="site-header__icon site-header__imagesearch">
{{ 'imagesearchlogo.svg' | asset_url | img_tag }}

</a>
</div>

我在python中尝试了以下提到的方法

data={
"asset": {
"key": "layout/theme.liquid",
"value": '''<div id="shopify-section-header" class="shopify- 
section">
<!-- content of sections/header.liquid -->
<a href="http://pricemonitor.info/cloth_comparision/#/" 
class="site-header__icon site-header__imagesearch">
{{ 'imagesearchlogo.svg' | asset_url | img_tag }}

</a>
</div>'''
}
}
response = requests.put("https://" + session.get("shop")
+ "/admin/themes/42517168241/assets.json",data= 
data,headers=headers)

我已在Shopify应用程序中添加了此脚本,但没有得到正确的响应

以下是回应。

{
"error": "822: unexpected token at 'asset=key&asset=value'"
}

我无法在theme.liquid文件中添加代码段

1 个答案:

答案 0 :(得分:1)

parsed_html = shopify.Asset.find('layout/theme.liquid')
parsed_html1=parsed_html.value
index = parsed_html1.find('''<body class="template-{{ template | split: '.' | 
first }}">''' )
parsed_html = parsed_html1[:index] + '''<div id="shopify-section-header" 
class="shopify-section">
<!-- content of sections/header.liquid -->
<a href="http://pricemonitor.info/cloth_comparision/#/" class="site- 
header__icon site-header__imagesearch">{{ 'imagesearchlogo.svg' | asset_url | 
img_tag }}</a>
</div>''' + parsed_html1[index:]
shopify.Asset.create(dict(key="layout/theme.liquid", value=parsed_html)).save()

您首先需要找到要添加代码的位置,然后更新代码并使用API​​创建新的Assest。