使用 Shopify API 获取当前产品 ID 以进行 Javascript API 调用

Posted

技术标签:

【中文标题】使用 Shopify API 获取当前产品 ID 以进行 Javascript API 调用【英文标题】:Getting current Product ID with Shopify API for a Javascript API call 【发布时间】:2012-08-20 10:29:54 【问题描述】:

我正在开发一个 Shopify 应用程序,该应用程序使用适用于 Shopify 的 DaisyAPI 动态图像服务。为了正确调用 Daisy API,我需要知道客户正在查看什么产品。看起来,为了可靠地做到这一点,我需要操纵他们的 product.liquid 主题来插入一个包含产品 ID 的隐藏值,以便 Jquery 可以获取该值并将其插入 API 调用。

确保每个产品页面都包含产品 ID 以使 jQuery 可以可靠地找到它的最佳方法是什么?我是否忽略了一些明显的东西?

非常感谢!

【问题讨论】:

【参考方案1】:

您缺少一个非常明显且很酷的液体过滤器。

在 Liquid 中,将 Object 抽取为 JSON。

var p =  product | json ;

然后去城里……没有这个概念,你就不能在客户端上走得太远。获取 JSON 人..获取 JSON...

【讨论】:

感谢 David- 使用这种技术,我是否必须要求我的每个应用程序客户手动操作他们的 Liquid 文件?或者他们是通过 API 做到这一点的方法吗?还是 Shopify 甚至在外部加载的 javascript 文件上也会解析 Liquid 标签? 您可以阅读他们的 product.liquid 文件,将其复制到您自己的文件中(例如 product.customized.liquid),编辑您的文件以使其正常工作,然后将您的添加到他们的商店,然后只需指导他们使用您的特殊 product.customized.liquid。当他们卸载您的应用程序时,您的 Liquid 会留在他们的商店周围......但这很容易删除......而且他们很容易重新连接到他们想要的任何东西。 大卫-非常感谢您的帮助。还有一个问题——API Docs 没有提到任何关于获取或放置单个 .liquid 文件的内容。看来我可以将一个全新的主题上传为 .zip 文件,仅此而已。我缺少的 API 中是否有 .liquid 文件方法? 为什么你不赞成我的回答?当您处理 Liquid 文件时,您正在处理 Assets……看看 API 的 Asset 部分。 啊,谢谢。我不赞成答案,因为我对获得 JSON 感到非常兴奋!【参考方案2】:

另一种选择是使用 Ajax API 来请求产品。你知道你在一个产品页面上简单地向相同的 URL 发出请求并附加 .json。然后,您将获得产品的 json 表示形式,您可以随心所欲地使用它。

为了让你的 js 进入主题,你可以使用一个脚本标签,它将 js 从你的服务器加载到商店。

【讨论】:

嗨 John- 感谢您的帮助,这是一个很棒的技巧,没想到! +1 提到您可以对产品页面执行 json 技巧。

以上是关于使用 Shopify API 获取当前产品 ID 以进行 Javascript API 调用的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Shopify API 获取产品页面的 URL?

Shopify:在 JavaScript 中获取当前登录的用户 ID

一键获取产品的 shopify Metafields

如何通过 Laravel 中的 API 从 Shopify 商店获取所有订单

Meteor Shopify API:通过集合 ID 将元字段发布到集合

Shopify - 通过多个变体 ID 检索多个变体详细信息