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