我希望在建立一个shopify app之前知道的

2021-03-20 09:16:21

我花了上周为Shopify Marketplace构建一个应用程序。它是不像在网上完成的任何事情。了解我在开始建设之前要分享的一些事情,可以节省一些头痛。

一旦您开始研究文档和示例,请' ll快速注意到所有示例都使用nodejs并反应。没什么大不了的,对吗?这'这几天的所有愤怒都是什么样的愤怒,因此构建文档来匹配它是有意义的。

对我来说是什么'它是对我来说显而易见的是,它的API,权限和应用程序要求的方式是设置的,结果使其真正难以使用单个页面应用程序(SPA)以外的任何内容。

如果你想到它,它会有意义。您'重新将代码集成到他们的专有平台中,因此他们需要整合尽可能直接。因此,水疗中心是一个非常好的候选人。

我的问题不是这个要求存在的问题,但这要求从一开始就没有非常明显。我选择使用我熟悉的技术(更多的后端专注)。那回来困扰我的大休眠时间。

Shopify提供了一个设计框架,供您使用,努力使所有购物应用程序在市场上看起来相同。或者至少非常相似。此框架称为Polaris。太棒了!

自从我和一个后端的家伙中更多,我喜欢拥有设计框架来选择和选择组件的想法。在某种意义上,它非常类似于使用引导 - 或者我认为。

事实证明他们提供的唯一组件是为了做出反应。没有CSS文件可以下载,没有HTML参考,没有其他实施指南外部反应。您可以使用组件下载设计文件,而是作为比反应组件更大的障碍的开发人员。

对于我的应用程序,我决定使用支持我所选择的技术的社区资源(Vuejs)。但它迅速证明社区资源过时和不完整。这个事实是Probily也相关的是本文中的稍后(他们的API不断变化)。

为电子商务商店制作一个应用程序可能会落入两类中的一个:您'重新制作一个应用程序以导出数据(到ERP,自定义POS,CRM,PIM等)或修改客户体验存储自己。在第一类中制作一个应用程序直截了当,您可能不会' t甚至需要制作一个"嵌入"应用程序。您所需要的只是某处与Shopify API交谈的服务器。

另一方面,制作一个应用程序来修改商店的客户体验是在整个其他层面上。然而,主要问题似乎是购物是一个专有平台的事实。

它们提供了优秀的工具,以以主题编辑器,模板编辑器和可购买的主题的形式修改您的商店。尽管如此,与这些解决方案集成非常困难。

我早些时候决定我想要求用户安装一个自定义主题,它能够实现新功能(因为它们' d必须远离他们现有的主题),我不想要求他们编辑任何模板文件。原因是我不希望用户能够在插入单个标签(类似于Google Analytics)之外的任何事情,并且可以是主题设计器中的自定义HTML元素。

所以我去的方式'安装我的应用程序只需要您将单个HTML元素添加到您的页面。容易对用户来说,但对我来说更难实现。我需要构建一个窗口小部件,可以使用单个脚本标记将其自身挂钩到现有页面中。它没有成为不可能的,但绝对不是我之前完成的。

Webhooks是一个宽阔的使用技术,通常被接受为一个好的解决方案。这也适用于购物:一旦你'重新设置他们完全按预期工作。

令我惊讶的是他们需要设置的方式。您想要通过REST API安装所安装应用程序的每个商店的每一个和每个Webhook都必须进行。这意味着您需要有某种安装和更新例程来管理每个客户端的Webhook。

我更喜欢条纹已经解决的方式:您在后端中设置了Webhook一次,然后从UI中选择所需的事件。它'是一个oneTime的东西,我不需要编写任何代码。

一个大惊喜也是有强制性的Webhooks。它们与GDR相关,并处理提供和删除用户数据的内容。再次,我认为这是一件好事,但令人惊讶的是,在非客户相关的事情上花费了额外的时间。

我想要购物的原因之一是他们希望他们赚了很多"无聊"东西容易。如果您曾经考虑过启动产品,则可能知道有一堆需要考虑的事项:付款,退款,隐私政策,服务条款,账户,忘记密码,取消等。

这实际上是几乎所有的一切。我发现的唯一是奇怪的事实是您需要在您的应用程序中实施付款工作流程。现在我只是在安装应用程序后重定向到付款页面。然后我需要检查付款是否完成并决定是否要让用户在应用程序上。为什么可以' t购物在他们身边的流动?当然,一些应用程序可能很棒,但为什么需要每个应用程序来实现它'自己的支付流,而不是至少有一个内置的做事方式?

每3个月发布一次新版本的Shopify API。一般'很大,他们如何具有稳定和预定的改进周期。但是看着他们的变更记录,你会在改变的步伐上得到不同的看法。最近,他们对嵌入式应用程序进行了大的变化。

点i' m试图制作的是,购物是一个不断变化的生态系统。这对于现有的客户和开发人员而言,这也很棒,但它也使得很多信息和社区资源以极端的速度过时。如果您'重新到达该平台的新功能,您可能会发现完美的功能和记录的功能,只需几周就在您开始使用它之后。

正如您可以想象在开发期间我正在刷新我的应用程序。每次刷新都会对资源提出了请求。每10个刷新左右,我会得到404错误。对于硬编码资源不太少!它令人沮丧的是,在本地测试时已经似乎已经不可靠的API令人沮丧。

我不知道这是否只是一个奇怪的巧合。每个平台有一段时间内有一些打嗝,但这没有留下最好的印象。

在开发期间,我有一些问题迫使我休息一会儿。不是因为我受到了沮丧,而是因为购物门户停止工作。

一个问题是,将我的试用账户合并到合作伙伴账户后,所有页面都已错误地出错,我可以再次查看任何经过身份验证的页面。我不得不删除所有购物域的所有cookie,以便到Agian。

另一个问题是在测试我的应用程序期间。我再次在我的开发商店安装应用程序(要测试安装过程),突然间,Partner Portal停止了Work Alygether。我休息了一个小时左右,事情恢复正常,但留下了糟糕的印象。

如上所述,您的应用程序将集成到Shopify后端。他们通过iframe实现了这一点。在开发中,您有两种在您的应用程序工作的选择:

要么您在ShopIfy管理员中工作,速度较慢,需要公共HTTPS连接(通常根据文档通过NGROK解决)。或者,如果你不想支付又一位服务,你可以像你一样在本地机器上开发应用程序。&#39可能习惯了。

后来的做法的方式有缺点,你可能会在测试你的应用程序时遇到一些塔。 IFRAME技术要求您执行框架,以便付款或OAuth流程等一些事情。你的两者' ll可能从来没有注意到当地开发。

我惊讶的最后一件事是Shopify的SaaS部分具有零(0)方式来修改结账。您可以通过shopify plus更改结帐页面上的唯一方法。自该计划以企业销售而且甚至在其着陆页上销售,我甚至在其着陆页上列出了价格,我将' t称为您典型的Shopify Marketplace应用程序的目标受众。我怀疑大多数加上客户都将自己的购物者提供更多的人或通过代理商。

与本文可能意味着什么相反,我对Shopify平台有很多良好的印象。我看到的最大的缺点是刚刚对我的特定技术(如反应)的重点是刚刚且对我有吸引力的,并且由于交错的变化速度,其他技术的社区资源很快过时了。

我希望你喜欢这篇文章,也许甚至学到了一些东西。如果您想留在联系我,我有一个邮件列表,或者您可以通过社交媒体与我联系。