【问题标题】:Is my Liquid syntax wrong, or am I missing a reference?我的 Liquid 语法是错误的,还是缺少参考?
【发布时间】:2021-01-05 14:52:27
【问题描述】:

我是编码新手,但我决定尝试深入研究流动性,因为我的公司正在寻求提高我们的自动化程度,我们在 Shopify (Shopify Flow) 中使用的自动化应用程序接受流动性命令来打印消息(在这种情况到电子表格行。)我知道它是一种模板语言,而不是一种编程语言,但我想我会从小处着手。如果发生触发操作,基本上可以将 Flow 设置为在 google 电子表格上创建一个新行。问题是,用于打印电子邮件消息的预制模板仅针对相关触发操作显示,这意味着如果我将触发器设置为“已支付订单”,我只能在“订单”对象下看到可打印的变量。

我想获取 SKU 和订单项数量,所以我想我需要运行一个 for 循环来获取 {{product.variant_sku}}

适用于购物车/订单中的所有商品。这是我在 API 中添加的内容: {% for product in cart.items %} {{ product.variant_sku }} {% endfor %}

每当我尝试将此代码保存到工作流时,都会收到一条错误消息,指出“无法保存您的工作流。修复所有错误并重试。”

我是否缺少某种参考?我认为 API 会根据触发操作知道我正在引用哪个页面。当我通过 Jumpseller 的 Liquid Sandbox 运行该代码时,它没有返回任何错误。我只是没有提供足够的数据吗?或者我的请求可能由于某种原因被阻止?任何帮助表示赞赏。谢谢。

****编辑:我一直在尝试不同的故障排除方法,偶然发现了一些我可能应该提到的东西:我在测试帐户环境中使用它,所以没有实时网页app可以参考。我想这实际上可能是我的问题,因为即使我只使用下拉菜单,如果消息中有任何与订单相关的内容(甚至是 ID),我也无法保存“流程”。

【问题讨论】:

  • product.variant_sku 不是有效变量

标签: shopify liquid shopify-app


【解决方案1】:

Shopify cartorderline_item 的结构与产品不同。这就是你需要的。

{% for item in cart.line_items %}
  {{ item.sku }}
{% endfor %}

更多详情 - https://shopify.dev/docs/themes/liquid/reference/objects/line_item#line_item-sku

编辑:以上不适用于 Shopify Flow。检查以下部分

订单和产品变量的 Shopify Flow 参考与主题变量不同。下面应该工作

{% for item in order.lineItems %}
  {{ item.sku }}
{% endfor %}

更多详情 - https://help.shopify.com/en/manual/shopify-plus/flow/create-workflow/variables

【讨论】:

  • 感谢您的回复。我已经尝试了上面建议的代码,但是当我使用所提供的内容时,应用程序仍然拒绝激活自动化规则。我认为断开连接必须与应用程序的结构方式有关,因为如果触发操作与订单相关,它只会让我从预设中选择订单对象属性。是否可以将此自动化规则直接构建到主题文件中?那么,对于我的结帐页面,我可以插入一条规则以将所有购物车商品打印到电子表格吗?
  • edit* 抱歉,在这里输入了一些我发现不正确的内容
  • 你试过order.line_items
  • 我做到了,但是当我去检查控制台中的“FLOW ERROR previous state”部分时,如果我进入架构并读入 LineItems,几乎所有提到的属性都有括号中的“_deprecated”标签。抱歉,完整路径是 FLOW ERROR > Prev State > order_paid > schema > order > LineItems
  • 非常感谢。那行得通。我可以发誓我试过了.. 但也许我错过了我的首都或其他什么。
猜你喜欢
  • 2011-05-22
  • 1970-01-01
  • 2020-11-13
  • 2013-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-01
  • 1970-01-01
相关资源
最近更新 更多