2011-10-03 49 views
-1

我已经获得了在Ruby中列出产品的代码,但我正在努力添加产品,这里是我的代码,我使用savon gem来处理HTTP/SOAP请求,基于这里的代码http://www.polyvision.org/2011/10/02/using-magento-soap-api-with-ruby-and-savon/使用Savon添加产品以连接到Magento API

# Insert some products ... 

newproductdata = [ 
["name" , “test product"], 
["websites" , [1]], 
["short_description" , ‘short description’], 
["description" , ‘description’], 
["status" , 1], 
["weight" , 0], 
["tax_class_id" , 1], 
["categories" , [3]], 
["price" , 12.05] 
] 

begin 
    response = client.request :call do 
    soap.body = {:session => session, :method => “product.create”, :arguments => ["simple", 1, “testsku1”, newproductdata]} 
    end 
rescue Savon::SOAP::Fault => fault 
    puts “*****#{fault.to_s}*****” 
end 

我认为这个问题是在传球:论点也许需要被正确命名,该代码生成错误,

(SOAP-ENV:Client) Error cannot find parameter 

回答

2

你混合阵列 - []和散列语法{}

这就是为什么你会得到语法错误(在红宝石中没有编译步骤)

+0

任何想法为什么,如果我将代码更改为soap.body = {:session => session,:method =>“product。创建“,[”简单“,1,”testsku1“,newproductdata]}在这种情况下,我得到同样的错误? – creativetechnologist

+0

啊,这是新产品数据,需要一个哈希? – creativetechnologist

+0

哈希就像{:key =>'value',...}和一个数组是['val1','val2','val3']我想你应该从使用一些高级库之前的基础开始。 。 – phoet

相关问题