You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:通过Shopify应用创建在线商店自定义页面失败问题

Shopify应用安装时创建页面问题解决方案

核心问题说明

  1. Shopify不存在APP_INSTALLATION主题的Webhook,应用安装完成的触发点应使用授权回调路由(/auth/callback),这是安装流程的最后一步,此时已获取有效店铺会话。
  2. 用APP_UNINSTALLED Webhook测试会失败,因为卸载后应用已失去店铺访问权限,无法调用Admin API创建页面。
  3. 创建页面的代码中,save({update: true})参数错误,该参数用于更新已有页面,创建新页面时不需要设置。

修复步骤

1. 调整安装触发逻辑(使用授权回调)

在index.js的授权回调路由中添加页面创建逻辑(Shopify CLI生成的模板默认包含该路由):

// index.js 中找到授权回调路由,添加页面创建代码
app.get("/auth/callback", async (req, res) => {
  try {
    const callbackResponse = await shopify.auth.callback({
      rawRequest: req,
      rawResponse: res,
    });

    const { session } = callbackResponse;
    await shopify.sessionStorage.storeSession(session);

    // 调用创建页面的函数
    await createNewPageUponInstall(session);

    res.redirect(`/`);
  } catch (error) {
    console.error("Auth callback error:", error);
    res.sendStatus(500);
  }
});

2. 修复页面创建函数的save参数

修改createNewPageUponInstall函数,移除update: true参数:

async function createNewPageUponInstall(session) {
    const newPage = new shopify.api.rest.Page({session: session});
    newPage.title = "Dynamic App Page";
    newPage.body_html = "<p>This is a new page</p>";

    // 创建新页面不需要update参数,直接调用save
    await newPage.save();
}

3. 清理无效的测试配置(可选)

如果不需要卸载相关逻辑,删除gdpr.js中APP_UNINSTALLED的页面创建关联,仅保留日志记录即可:

// gdpr.js 中修改APP_UNINSTALLED配置
APP_UNINSTALLED: {
    deliveryMethod: DeliveryMethod.Http,
    callbackUrl: "/api/webhooks/app-uninstalled",
    callback: async (topic, shop, body, webhookId) => {
        const payload = JSON.parse(body);
        console.log("App uninstalled for shop:", shop, payload);
    },
}

同时在index.js中对应路由仅处理响应:

app.post("/api/webhooks/app-uninstalled", async (_req, res) => {
    console.log("Received app uninstall webhook");
    res.sendStatus(200);
});

测试验证

  1. 重启应用后,重新安装到测试店铺。
  2. 安装完成后,进入店铺后台的在线商店->页面,检查是否存在标题为Dynamic App Page的新页面。

内容的提问来源于stack exchange,提问作者user9793623

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 08:28:29