Shopify 脚本要求和限制
Shopify 脚本存在一些限制,旨在增强安全性并确保无论在任何特定时间有多少客户使用您的商店,脚本都可以运行。如果您要为 Shopify 商店开发脚本,请牢记以下限制。
在此页面上
在线商店和 Storefront API
创建或编辑脚本时,您可以选择它将仅在您的在线商店中运行,还是在您的在线商店和以下应用中运行:
- 使用 Storefront API、JavaScript Buy SDK 或 Mobile Buy SDKs(Android 和 iOS)构建的自定义应用
- 生成结账的自定义应用
- Tapcart 和 Plobal Apps 移动应用生成器
为使脚本正常工作,您的网站必须具有内置的购物车功能,因此您无法将脚本用于 Buy Buttons 或 Facebook and Instagram by Meta 销售渠道。
已发布的脚本
一次只能发布每种脚本类型的一个脚本。例如,您可以发布一个订单项目脚本和一个运费脚本,但不能同时发布两个订单项目脚本。
Shopify 脚本的最大数量
您最多可以创建 200 个 Shopify 脚本。
草稿订单
订单项目脚本、运费脚本和支付脚本不适用于草稿订单或草稿订单结账。
元字段
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 Point of Sale (POS)
Shopify 脚本不适用于 Shopify Point of Sale (POS)。
重命名支付网关
您无法重命名将图片或 logo 显示为网关名称的支付网关。名称旁边带有 logo 图片的支付网关可以重命名。
结账时拆分发货
运费脚本与 Shopify Checkout 中的拆分发货不兼容。如果您使用运费脚本并激活拆分发货,则结账时不会向您的客户显示拆分货件。