我想每天晚上04:00向Shopify輸入~24000(單個變體)產品。快速向Shopify輸入24000單個變體產品
問題與默認Admin > Products > Import > CSV
方法是,它需要一個無法接受的時間很長的時間才能完成。所以我開始使用Ruby gem與Shopify API一起工作。
Shopify API具有每秒2個調用的API調用限制,並且可以一次觸發40個調用。您可以閱讀更多關於API調用限制here的信息。我不明白「一次打40個電話的空間」部分。
一個Shopify員工告訴我下面對通過API進口產品:
如果你做的是包括在其中的 變種信息產品創建API請求(假設每個產品3種變體)和 使用默認的API限制(每秒刷新2個請求或2個 併發請求),您可能會在大約67分鐘內完成創建所有這些 產品。
我寫了下面的Ruby腳本導入所有產品Shopify:
require 'shopify_api'
require 'open-uri'
require 'json'
begin_time = Time.now
shop_url = "https://<API_KEY>:<PASSWORD>@<SHOPNAME>.myshopify.com/admin"
ShopifyAPI::Base.site = shop_url
raw_product_data = JSON.parse(open('<LINK>') {|f| f.read }.force_encoding('UTF-8'))
raw_product_data_size = raw_product_data.size
puts '========================================================================='
puts "#{raw_product_data_size} products loaded. Starting import now..."
puts '-------------------------------------------------------------------------'
raw_product_data.each_with_index do |item, index|
single_product_begin_time = Time.now
# Store item data in variables
<DATA>
# Create new product
new_product = ShopifyAPI::Product.new
new_product.title = title
new_product.body_html = body
new_product.product_type = type
new_product.vendor = vendor
new_product.tags = tags
new_product.variants = [
{
"option_1" => "First",
"price" => variant_price,
"sku" => variant_sku
}
]
new_product.images = [
{
src: image_src
}
]
new_product.save
creation_time = Time.now - single_product_begin_time
puts "#{((index/raw_product_data_size.to_f) * 100).round(2)}% - #{index} - #{variant_sku} added in #{creation_time.round(2)} seconds"
end
puts '-------------------------------------------------------------------------'
puts "Done. It took #{begin_time - Time.now} minutes."
puts '========================================================================='
但我不是67分鐘附近的任何地方獲得。
目前大約需要3秒鐘才能添加單個產品。以此速度增加24000個產品需要20個小時。這是不可接受的。 2小時內的任何事情都可以接受
我可以嘗試什麼來加快速度?
它可能是因爲他們將API放在與常規Web應用程序相同的服務器上,這是很慢的,可能超賣* 10。 – mxmissile 2014-09-22 17:19:06