我正在尝试创建一个应用,并且用户可以在该应用内安装主题,但是,我似乎无法弄清为什么未创建主题。它一直将我商店中已经安装的主题拉到控制台,我的代码似乎没有创建可以显示在我的shopify商店中的主题。
server.js
router.post('/api/theme', async (ctx) => {
try {
const results = await fetch("https://" + ctx.cookies.get('shopOrigin') + "/admin/themes.json", {
headers: {
'X-Shopify-Access-Token': ctx.cookies.get('accessToken')
},
})
.then(response => response.json())
.then(json => {
console.log("https://" + ctx.cookies.get('shopOrigin') + "/admin/api/2020-01/themes.json", json);
});
ctx.body = {
data: results
};
} catch (err) {
console.log(err)
}
});
front.js文件
async function getUser() {
var url = `/api/theme`;
var method = 'post';
const theme = {
theme: {
name: "Lemongrass",
src: "https://codeload.github.com/Shopify/skeleton-theme/zip/master"
}
};
const data = JSON.stringify(theme);
fetch(url, { method: method, body: data})
}
为了创建主题,您需要您要创建的主题的zip存档。
终点应该是/admin/api/2020-01/themes.json
,主体应该是这样的:
{
"theme": {
"name": "Theme name",
"src": "http://themes.shopify.com/theme.zip",
"role": "unpublished"
}
}
请参考https://shopify.dev/docs/admin-api/rest/reference/online-store/theme#create-2020-01以获取更多信息。
从您的代码开始,我既看不到正确的POST请求,也看不到存档文件。