2011-10-03 38 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

相關問題