- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个应用程序,它将位于供应商专有库存管理系统和他们的 Shopify 商店之间。该应用程序将根据库存管理系统生成的新数据定期更新 Shopify。它还将为 Shopify webhooks 提供端点。
我目前正在做这样的事情(省略了很多东西的伪 ruby ):
def update_product_with_proxy(product_proxy)
product_proxy.variant_proxies.dirty.each do |variant_proxy|
update_variant_with_proxy(variant_proxy)
end
if product_proxy.dirty_proxy
shopify_product = ShopifyAPI::Product.find(product_proxy.shopify_id)
shopify_product.update_attributes({some attributes here})
end
end
其他地方:
def update_variant_with_proxy(variant_proxy)
shopify_variant = ShopifyAPI::Variant.find(variant_proxy.shopify_id)
shopify_variant.update_attributes({some attributes here})
end
这似乎非常低效,因为我必须先获取每个更新的 ShopifyAPI::Product 和 ShopifyAPI::Variant,然后才能更新它们(我将它们的 ID 缓存在本地)。一个更新周期大约需要 25 分钟,更新 24 个产品,每个产品有 16 个变体。 Rails 花费不到 2 秒来更新我的产品/变体代理。其他 99% 的时间都花在与 Shopify 交谈上。我一定是做错了什么。
鉴于我知道远程对象的 ID,有没有办法直接更新它而不必先获取它?
干杯,-托梅克
最佳答案
首先要做的是:您可以通过其父产品更新变体。一旦您获取了产品,它就会包含变体信息,因此您可以对其进行编辑、保存,并且更改将保留在单个 API 调用中。这将为您节省一些时间。
其次:您可以使用 gem 在本地创建一个对象,为其指定一个 id,然后调用 save 来发起 PUT 请求,而无需先从 Shopify 中获取该对象。像这样的东西应该可以解决问题:
product = ShopifyAPI::Product.new(:id => 1, :title => "My new title")
product.save
将这两件事放在一起应该可以满足您的需求:在单个 API 调用中更新产品变体的能力。
注意:为了将来引用,shopify_api
gem 建立在 Active Resource 上,因此您可以使用该库做任何您可以使用 gem 做的事情。
关于ruby-on-rails - 如何使用 ShopifyAPI (Ruby on Rails) 有效地更新许多 ShopifyAPI::Product 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12798708/
我正在编写一个应用程序,它将位于供应商专有库存管理系统和他们的 Shopify 商店之间。该应用程序将根据库存管理系统生成的新数据定期更新 Shopify。它还将为 Shopify webhooks
我正在编写一个应用程序,它将位于供应商专有库存管理系统和他们的 Shopify 商店之间。该应用程序将根据库存管理系统生成的新数据定期更新 Shopify。它还将为 Shopify webhooks
我面临一个问题 - 无法使用 ShopifyAPI 更新变体的价格。 在更新变体的价格时,它给出了错误 @remote_errors=#, @validation_context=nil, @erro
gem 信息: omniauth-shopify-oauth2 (1.2.0) shopify-kaminari (1.1.0) shopify_api (4.3.2 494b37a) shopify
我是一名优秀的程序员,十分优秀!