脚本要求和限制
若要创建脚本,您需要使用 Shopify Plus 套餐和 Script Editor。您还需要具备 Ruby 编程语言的相关知识,或寻求了解 Ruby 的开发人员或 Shopify 专家的帮助。 详细了解如何聘请 Shopify 专家。
存在一些脚本限制,以便增强安全性并确保无论在给定时间您的商店有多少客户,脚本都能运行。如果您要为自己的 Shopify 商店开发脚本,请记住以下限制。
在线商店和店面 API
当您创建或编辑脚本时,您可以选择它将只能在您的在线商店中运行或它将在您的在线商店中和以下应用中运行:
- 使用店面 API、JavaScript Buy SDK 或 Mobile Buy SDK 生成的自定义应用(Android 和 iOS)
- 生成结账的自定义应用
- Tapcart 和 Plobal Apps 移动应用生成器
为了使脚本正常工作,网站需要有内置购物车功能,因此脚本不能用于 Buy button、Facebook 或批发销售渠道。
已发布的脚本
每种脚本类型一次只能发布一个脚本。例如,您可以发布一个订单商品脚本和一个运费脚本,但是您不能同时发布两个订单商品脚本。
Shopify 脚本的最大数量
您最多可以创建 200 个 Shopify 脚本。
草稿订单
订单项目脚本、发货脚本和付款脚本不适用于草稿订单或草稿订单结账。
Metafields
Shopify 脚本不能访问元字段。
购物车/结账属性
Shopify 脚本无法访问 Shopify Liquid 购物车属性。您可以将这些属性添加到购物车页面,以便从客户处收集其他信息,但您无法创建使用这些属性的脚本。
折扣码
脚本可以访问是否应用了折扣码、折扣金额和折扣类型(固定金额、百分比或运费),但他们无法访问其应用方式(特定购物车或订单项目)。因此,脚本无法访问折扣后的总金额,也无法访问自动折扣。
访问应用于购物车的折扣的订单项和发货脚本与折扣组合不兼容。.discount_code 方法只能返回一个折扣码。不支持使用折扣组合包含多个折扣码的购物车。
订单项目
脚本无法向购物车添加商品,也无法提高商品的价格。
运费
脚本无法提高运费价格。
正则表达式
不支持正则表达式匹配。如果您创建的是订单项目脚本,则可以选择以下方法来解决该问题:
- 拆分方法
- start_with 和 end_with 方法
- include 方法
模板
您可能需要更新您的 Liquid 模板以支持您的脚本,并且不要给您的客户造成混淆。例如,并非所有模板都会在购物车中显示订单项目折扣。在这种情况下,您需要编辑模板以在购物车中显示订单项目折扣。详细了解可以对 Liquid 模板进行的修改类型。
资源
可用于脚本的 CPU 和内存量是有限的。为脚本保留的资源取决于购物车大小以及脚本所需的计算量。Shopify 会仔细跟踪这些资源限制,以确保它们不会阻止您的脚本按预期运行。
当您测试脚本时,Script Editor 控制台会打印脚本正在使用的已分配资源的百分比。
输入/输出
除了少数例外,Shopify 脚本无法进行输入/输出。这意味着脚本无法执行 Web 请求或数据库调用,也无法获取用户输入。
但是,可以使用 puts
方法将文本打印至 Script Editor 应用中的控制台。
时间和随机性
脚本不能包含随机计算或基于时间的计算。Shopify 脚本无法访问 Time
对象和 rand
方法。
由于每次重新计算购物车总额时脚本都会运行,如果客户频繁更改其购物车,则基于时间或随机数生成的脚本可能出现不可预测或混乱的结果。不过,您可以使用 Launchpad 应用安排脚本在活动期间运行。
脚本字符限制
您可以创建长达 24,576 个字符的脚本。
订阅订单
如果您的 Lineitem 和发货脚本对订阅产品提供折扣,折扣将应用于以下付款:
- 仅限货到付款订单的首笔付款,不适用于已安排的订单
- 预付费订阅订单的全部金额
详细了解订阅和脚本。
快捷结账
将 Shopify 脚本用于快捷结账时,在客户选择快捷付款方式后,将应用运费折扣。因此,订单价格的更改不会反映在客户的设备或浏览器中。客户看到的是其快捷结账的初始价格,但实际支付的是正确的折扣价格。
Shopify POS (POS)
Shopify 脚本不适用于 Shopify POS (POS)。
重命名支付网关
无法重命名具有 logo 的支付网关。