一键获取产品的 shopify Metafields
Posted
技术标签:
【中文标题】一键获取产品的 shopify Metafields【英文标题】:Get shopify Metafields for products in one call 【发布时间】:2012-06-16 16:46:39 【问题描述】:我一直在尝试为 100 多种产品获取元字段,这意味着我必须为每种产品分别进行 100 次 API 调用。如果有一种方法可以仅在一个 xml 文件中获取所有产品的所有元字段,就像变体附加到产品的方式一样。因此,通过一次 api 调用,我获取了所有 100 个产品,而不是为每个产品进行 100 个单独的 api 调用。任何帮助表示赞赏。
【问题讨论】:
【参考方案1】:如果在 API 文档中提到它会很好。没有什么
接收所有元字段的列表 GET /admin/metafields.json?since_id=721389482
表示它只会返回商店元字段。
【讨论】:
【参考方案2】:我们有很多请求在同一个请求中获取多个资源的元字段。但是,其中很多可以通过将信息保存在应用程序端(例如,在数据库中)以及资源的 id 来处理。这样,数据就更接近使用它的位置。
使用元字段有两个很好的理由
存储元数据以从流动模板中使用 应用程序之间的共享存储流动模板的元字段非常棒,因为数据接近用于页面渲染的位置。这使得呈现速度更快且更可定制,因为自定义字段可以由应用提供并在店面中呈现。
应用程序之间的共享存储是使用元字段的另一个好理由,但这似乎不是使用元字段的常见原因。在这种情况下,元字段 API 目前缺少一种同时访问多个资源上的元字段的方法。
但是,将元数据与产品一起返回并不是一个很好的选择。这是因为其他应用程序可能将数据存储在您的应用程序可能不关心的元字段中,因此一个应用程序最终可能会减慢许多甚至不使用元字段的其他应用程序。这就是元字段 API 具有查询参数来限制检索哪些元字段的原因,因此不会不必要地返回其他应用程序的元字段。
【讨论】:
我的情况完全不同,我没有元字段的写权限。我只阅读产品旁边需要的那些元字段,如 UPC、MPN 等。所以我必须遍历大约 100 多种产品才能获得这些元字段,这也减慢了我的系统。此外,在 shopify 店面中添加了元字段,如 product_type。所以我的想法是,是否有办法在一次 api 调用中获取与每个产品相关的元字段。我不在乎哪个应用程序创建了它,我只想读取所有 procuts 的所有元字段并排序以选择我想要的那些。希望有更好的方法 听起来您确实有一个有效的用例,因为这些是共享的元字段值。很抱歉,目前似乎没有什么好方法可以满足您的需求。 为什么抓取 100 多个产品(1 个 API 调用)以及它们所有的元字段(100 多个 API 调用)需要时间?您是否使用该数据填充了一些网格以进行显示?我的商店有数千种产品,每种产品都有元字段。我使用后台作业将所有这些信息收集在一起,然后以 CSV 格式通过电子邮件发送。完美运行。 我知道这个答案已经过时了,但是 API 没有改变,所以它仍然是相关的。 “但是,将元数据与产品一起返回并不是一个很好的选择。”参数metafields: true
呢?
@DylanSmith , @adaam 我认为这实际上可以在与 webhooks 行为保持一致的情况下完成:metafields_namespaces: ['abc', 'def']
。以上是关于一键获取产品的 shopify Metafields的主要内容,如果未能解决你的问题,请参考以下文章
使用 Shopify API 获取当前产品 ID 以进行 Javascript API 调用
如何通过 Laravel 中的 API 从 Shopify 商店获取所有订单