我可以通过html表单将图片上传到产品时设置Alt标记。
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
.
.
.
但是当涉及到检索产品的图像时,alt =' Cake',我似乎无法弄明白。我试过通过ShopifyAPI控制台搜索Metafields,没有任何乐趣。
如果这很容易会很好......
a = ShopifyAPI::Image.where(alt: 'Cake', product_id: 245512249)
或更好......
a = ShopifyAPI::Product.find(245512249)
b = a.images.select { |image| image.alt == 'Cake' }
...或
a = ShopifyAPI::Product.find(245512249)
a.images.each do |image|
b << image if image.alt == 'Cake'
end
答案 0 :(得分:0)
根据Alt标签,无法调用产品图像; ShopifyAPI不允许使用它。
尽管如此,这是商业秘密......
只需将Alt标记的值标记为图像的文件名即可。
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 = 'Cake_'+image.original_filename
a.save
end
else
.
.
.
这样,您可以通过':src'属性中的字符串值'Cake_'过滤产品图像。
@product = ShopifyAPI::Product.find(params[:id])
@product.images.each do |image|
if image.attributes[:src].include?('Cake_')
.
.
.
end
end
希望有所帮助!