显示 Rails 6 将视图显示为嵌入的 shopify 页面

Display Rails 6 show view as embed shopify page

我有一个托管在 heroku 上的应用程序,它已经安装在我的测试商店中并可以使用了。该应用程序嵌入在管理员中。该应用程序创建了一个 rails 视图,该视图应作为页面嵌入商店前端,就像商店管理员在页面部分创建的一样。

我读过有关应用程序桥接器和应用程序代理的内容,我认为它们没有提供我想要的功能。我遇到的一件事是在 API 创建的页面上动态构建 iframe,但我不知道这是否是完成它的最佳方法。

应用程序功能:

  1. 应用程序在 shopify 后台执行某些操作并创建 link - 完成
  2. link 将被 admin/user 复制到他的导航中 - 将手动完成
  3. 如果客户点击 shop-frontend-navbar 中的 link,link 将作为 shopify-页面打开,这样用户就认为他仍在商店中-前端。

我该怎么做?

也许您刚刚考虑过 原始应用程序代理,当您不得不排除您选择的应用程序代理时。

还有另一种类型的应用程序代理对您的情况很感兴趣:App proxies with liquid response,它支持 Shopify 的模板语言。您可以在代理页面中使用 Liquid ,就好像该页面是在线商店主题的一部分,最终用户不会注意到该页面已被代理。

您所要做的就是将来自代理 URL 的 HTTP 响应设置为包含

Content-Type: application/liquid

在其 header 中,

发生这种情况时,end-user 仍会在地址栏中看到 www.your-store.com/apps/proxy。但是,液体内容随后会在商家商店的活动主题中呈现。这意味着 header、页脚和 URL 仍然适用于商家商店。液体内容被推 in-between header 和页脚, 允许 app-proxy 显示内容,看起来好像商店正在渲染它们,样式完好无损。

注意: 与当前创建普通页面的解决方案相比,重新考虑应用代理的另一个重要原因是,一旦应用创建页面并将其附加到商店,商家可以随时卸载您的应用程序(无经常性收入:()但该页面将继续在商店中运行,因为商家拥有其商店的页面。

使用应用程序代理是不同的,一旦您的应用程序被商家卸载,link 将不再工作,shopify 将停止代理此 link (404),另一个您可以在您的 Back-end 中拒绝访问,因为商家不拥有代理页面,他只有在安装应用程序后才能保证访问权限。