2012-08-22 41 views
1

我想使用的Shopify API參考這樣描述的圖像metafield功能:設置和訪問metafields Shopify上的圖像

"{ 
"position":1, 
"metafields":[ 
{"key":"variant_sku", 
"value":"A176-6053", 
"value_type":"string", 
"namespace":"global"} 
], 
"src":"http://some.url/images/000/013/369/original/a176-6053.jpg?1337973636 
} 

當我拉起在Rails的控制檯這個產品我沒有看到metafields (存在用於圖像對象沒有metafields方法),並且我沒有任何運氣參照metafields在液體模板這樣:

{{ image.metafields.global.variant_sku }} 

我注意到,圖像是從該列表中描述,其中特別顯眼可以使用metafields:「您可以存儲有關您的產品,變體,集合,訂單,博客,頁面的更多信息以及您在metafields中購物的信息。「

但在API參考中有一個圖像示例。我錯過了什麼?

我的最終目標是通過API將SKU與圖像一起發送,然後通過liquid/javascript訪問此圖像以支持顯示特定顏色/樣式變體的正確圖像。

謝謝你的幫助。

+0

我真的注意到了API中的一個漏洞。您可以爲圖像設置'alt'標記,但無法檢索它們 - 與您遇到的問題類似。 Image'alt'標記被保存爲metafields,但是如果您查詢metafield資源,它們似乎不存在 – Crimbo

+0

...顯然,在液體模板中除外。我發現解決這個問題的方法是將標籤保存在圖像的文件名中,然後您可以查詢該產品的圖像,該圖像包含文件名中的標籤 – Crimbo

回答

1

Metafield需要單獨爲資源請求,它們默認情況下並未嵌入到響應中。 API文檔提供瞭如何檢索它們的示例。

0

看到圖像的'alt'標籤是一個元域,爲什麼不在圖像的alt標籤中設置SKU。

您將可以通過Shopify液體訪問'alt'標籤的設置值 - 只是您無法通過ShopifyAPI檢索'alt'標籤。

這是節約是通過HTML表單提交的圖像,並保存的「ALT」標籤與它的我的Rails例子...

images = params[:images] || nil 

if images 
images.each do |image| 
     a = ShopifyAPI::Image.new 
     a.prefix_options = {:product_id => params[:product_id]} 
     a.metafields = [{:key => 'alt', :value => 'Cake', :value_type => "string", :namespace => "tags"}] 
     a.attachment = Base64.encode64(image.read) 
     a.filename = image.original_filename 
     a.save 
end 
else 
. 
. 
. 

希望有所幫助。