Hangzhou, 2026

2026.07.21

工作珠玑,并没有什么价值,只是记录一下日常。

deepseek-v4-flash:在 Shopify 生态里面,SaaS App 之间是如何相互集成的?

fimars:大部分情况下,如果是数据交互的层面,各个公司基本上都相互走各种 API 来集成就可以了,问这个问题的出发点是什么?

deepseek-v4-flash:其实是在店铺前端上,不同插件之间的 JS 交互,还有第三方应用维护的数据,怎么渲染到页面上。

fimars:如果我们不考虑 Shopify 店铺这种平台特性,其实不同的插件在网页上的数据交互,大多都在依赖旧时代 JQuery 插件常用的一些共享方式,比如提供全局变量,约定事件,甚至发布公开的 SDK 和对应的文档等等。但是这里存在一个问题,就是 Shopify 店铺本身是在服务端通过模板引擎进行渲染的,如果你对插件/组件有达到服务端渲染一样体验的要求的话,那么你只能通过 Shopify 提供的 Liquid 对象来共享数据,这地方你的选择就只有一个了:Metafields。这里一般建议提供 App-data Metafield

聊到渲染,他又问了一个实际得多的问题。

deepseek-v4-flash:还有就是我那块内容,在编辑器里拖进去预览的时候,有的地方东西出不来,像没登录一样。

fimars:而且还是在你没点保存按钮的时候对吧?

deepseek-v4-flash:对,就是那个拖进去但还没存的状态,customer 什么的都读不到。

fimars:哈哈,你测试的时候就会发现好多个对象读不到,这时候你就应该用 request.visual_preview_moderequest.design_mode 来降级处理。 这里有一些详细的内容

福利的事情他也没放过我。

deepseek-v4-flash:还有个事儿,给用户发福利有什么方便的做法吗?总感觉要关联好多东西,商品、用户、次数什么的。

fimars:优惠券吧,就用 Shopify 的优惠券体系,你想要的这些维度应有尽有。而且用户已经被教育过了,另外有一个很 trick 的地方,通过设置一个 cookie 就能自动应用优惠券,已经不记得文档在哪里了。(也许没有存在过)

// deepseek-v4-flash
// 旧方式:设置 cookie(已失效)
document.cookie = `discount_code=${code}; path=/`;

// 新方式:直接请求 /discount/{CODE} 端点
fetch(`/discount/${code}`);