小编use*_*277的帖子

Shopify API PHP:更新变体的属性,特别是库存数量

我正在使用这个PHP框架 Shopify's API

任何人都可以帮我更新产品的变体属性,特别是库存数量吗?

Shopify文档中列出的相应api调用是:

/admin/variants/#{id}.json
Run Code Online (Sandbox Code Playgroud)

要更新产品属性,例如标题,请执行以下操作:

$fields = array('title' => 'My New Product Edit');

$api->product->modify(89605609, $fields);
Run Code Online (Sandbox Code Playgroud)

更改这些以反映变体不会以相同的方式工作.

一如既往,任何帮助都非常感激.

php api shopify

5
推荐指数
1
解决办法
1590
查看次数

使用nokogiri解析XML并创建具有多个属性的记录

感觉像我在这里遗漏了一些非常明显但却看不到的东西.

我有一个XML文件,正在使用Nokogiri gem.

XML看起来像这样(想象一下,如果你有无限量的'变种'):

<?xml version="1.0" encoding="UTF-8"?> 
<products> 
    <variant> 
        <sku type="string">123abc</sku>
        <inventory-quantity type="integer">68</inventory-quantity> 
    </variant> 
    <variant> 
        <sku type="string">321cba</sku>
        <inventory-quantity type="integer">22</inventory-quantity> 
    </variant>
</products>
Run Code Online (Sandbox Code Playgroud)

我想循环变量并为每个变量创建一个包含'sku'和'inventory-quantity'属性的相应记录.

这是我到目前为止所做的,但不是创建单独的记录,在上面的例子中它创建了两个记录并插入Nokogiri返回到每个记录属性的完整数组或NodeSet.所以这:

doc = Nokogiri::XML(File.open("#{Rails.root}/public/new.xml")) 

variant = doc.xpath("//variant")

variant.each do |product| 

  sku = product.xpath("//sku").text
  quan = product.xpath("//inventory-quantity").text

  Productmapping.create(:sku => sku, :product_quantity => quan)

end
Run Code Online (Sandbox Code Playgroud)

创造这个......

sku              inventory-quantity

123abc321cba     6822
123abc321cba     6822
Run Code Online (Sandbox Code Playgroud)

我真正想要的地方:

sku              inventory-quantity

123ab            68
321cba           22
Run Code Online (Sandbox Code Playgroud)

它看起来像是因为xpath定位器将所有出现的内容返回到一个数组中,我正在调用该数组并为每个记录插入它.

谢谢!

ruby xml activerecord ruby-on-rails nokogiri

3
推荐指数
1
解决办法
5976
查看次数

使用Shopify API,Ruby on Rails为产品选择特定的元字段

在液体模板中,这是这样实现的:

{{ product.metafields.book.author }}
Run Code Online (Sandbox Code Playgroud)

它返回'author'的值,因为它的关键'book'

我正在使用Shopify API和Ruby on Rails并成功遍历给定产品的每个元数据:

在控制器中:

@products = ShopifyAPI::Product.find(:all, :params => {:limit => 10})
Run Code Online (Sandbox Code Playgroud)

在视图中:

<% @products.metafields.each do |metafield| %>
<%= metafield.key %> : <%= metafield.value %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

这将返回产品的所有元数据,如预期的那样.如何仅返回与特定键匹配的元字段,即上述示例中的"book"?

shopify ruby-on-rails-3.1

3
推荐指数
2
解决办法
3175
查看次数