工作原理
用通俗的语言说明顾客加载带有倒计时的页面时,实际发生了什么。
使用本应用并不需要了解这些内容——开启应用嵌入就是全部设置。但如果您想知道倒计时为何会这样运行,或者正在排查问题,可以了解一下背后的机制。
应用嵌入会在每个店面页面上运行
Section titled “应用嵌入会在每个店面页面上运行”Countdown Timer Bar Samita 通过 Shopify 主题应用扩展嵌入连接到您的店面,在模板编辑器中显示为 Samita Countdown Timer Bar。为某个模板开启后,应用的一小段脚本会在顾客加载该模板的每个页面时运行。
在大多数页面浏览中,它无需执行任何操作。它的首要任务是判断您配置的内容是否适用于当前页面;对大多数商店的大多数页面来说,答案是否定的,所以它会直接退出。
由于倒计时存在于应用中而不是模板里,您保存的更改无需重新发布模板就会显示在店面上。
它了解页面的哪些信息
Section titled “它了解页面的哪些信息”除了您的倒计时设置,嵌入还会在 Shopify 渲染页面时从页面本身获取以下信息:
- 页面类型——产品页面、产品系列、购物车、博客等。Page 条件就是根据它来匹配的。
- 顾客浏览时使用的店面语言,它同时决定 Language 条件和翻译文本。
- 已登录的客户(如果有),包括其标签。Customer 和 Customer tag 条件会读取这些信息。
- 在产品页面上正在查看的产品。
这些信息全部来自顾客已加载的页面,因此客户和语言条件可以立即得出结果。
寻找渲染位置
Section titled “寻找渲染位置”倒计时有两种方式获得页面上的位置。
**产品页面上的自动放置。**如果勾选了 Product page,脚本会查找模板的 Add to cart 区域,并将倒计时插入到其正下方。它能识别大量模板所使用的结构,但高度自定义的模板可能会使其失效,此时不会渲染任何内容。这就是自动放置失败的常见原因。
**短代码块。**通过 Samita Countdown 应用块放置的 <div class="samita-countdown" ...> 已经存在于页面上,因此脚本只需填充它。这种方式与模板无关,所以是可靠的备用方案。
购物车倒计时会在购物车中有商品时,自动显示在购物车页面和购物车抽屉中购物车表单的顶部。Sale popups 会被添加到页面中,并浮动显示在您设置的位置。
决定是否显示
Section titled “决定是否显示”对于每个可能适用的倒计时,应用会根据它所了解的页面、产品和顾客信息来检查其条件。大多数条件可以当场得出结果。
有两个条件需要查询:
- Collections——应用无法仅从页面得知产品所属的产品系列,因此会通过启用 Collection 条件中介绍的模板文件来获取。没有该文件,条件就无法判断,因此不会匹配任何内容。
- Country——通过查询顾客的 IP 地址来确定,而不是从其账户中读取。使用 VPN 或代理会改变结果。
剩余时间在顾客的浏览器中计算,方法是将您的设置与其设备时钟进行比对,没有服务器计时。
这使应用对您的页面非常轻量,同时有三点值得了解:
- 设备时钟严重不准的顾客会看到错误的计时器。
- Daily recurring timer 的时间窗口按顾客的本地时钟计算,因此“上午 9 点到 11 点”指的是他们所在地的上午 9 点。
- Countdown to a date 计时器会倒数到您设置的时刻,每位顾客看到的都是自己正确的剩余时间。
记住 Fixed minutes 计时器
Section titled “记住 Fixed minutes 计时器”Fixed minutes 计时器必须在页面切换后保持有效,因此顾客第一次看到它时,应用会把其个人的结束时间写入浏览器的 Cookie。之后的页面浏览会读取该 Cookie 并继续计时。
因此,它按浏览器和设备分别生效,清除 Cookie 后会丢失,并且在您更改所设置的分钟数后,所有人的计时都会重置。
应用不会做什么
Section titled “应用不会做什么”- **不会更改您的产品。**不会改动价格、库存或可售状态。计时器归零只会移除计时器,不会产生其他影响。
- **不会保留库存。**购物车倒计时只是提示,并不是占库存。
- **不会编辑模板的页面文件。**开启嵌入只会添加应用的脚本;应用块与其他块一样,在模板编辑器中添加和移除。唯一的例外是用于 Collection 条件的可选模板文件,需要您自行添加。