Groovy RPC & Magento API: product_attribute.create & 无效请求参数



我想在Groovy中使用Magento(1.9)的XML-RPC API,并且能够连接和登录。

这很好:

def api = new XMLRPCServerProxy("http://magentourl/api/xmlrpc", true)
api.login("user", "key")
return api.call(key, "catalog_product.list")

此项工作的事件:

api.call(key, "product_attribute.info", [132])

但我在添加一个新的产品属性时遇到了麻烦:

def code = "myattribute-unique"
def frontendInput = "text"
def scope = "global"
def defaultValue = "default-Value"
int unique = 1
int required = 1
String[] applyTo = ["simple", "grouped"].toArray()
int configurable = 1
int searchable = 1
int visibleAdvancedSearch = 1
int comparable = 1
int usedPromoRules = 1
int visibleOnFront = 1
int usedProductListing = 1
def additionalFields = ["frontend_class": "validate-email", "is_html_allowed_on_front": true, "used_for_sort_by": true]
def frontendLabel = [[0, "frontend-label1"], [1, "frontend-label2"]].toArray()    
def array = [code, frontendInput, scope, defaultValue, unique, required, applyTo, configurable, searchable, visibleAdvancedSearch, comparable, usedPromoRules, visibleOnFront, usedProductListing, additionalFields, frontendLabel]    
def result = api.call(key, "product_attribute.create", array)

我得到这个错误:

Class uk.co.wilson.net.xmlrpc.XMLRPCFailException
Message Invalid request parameters.

我尝试将属性初始化为Array,而不是使用Groovy动态定义的方式,但没有成功。

我可以做些什么来继续,或者什么可以帮助我调试?

谢谢。

在处理映射和键时,它看起来是有效的:

def code = "a_select_1"
def frontendInput = "select"
def array = [**attribute_code**: code, frontend_input: frontendInput, scope: scope, default_value: defaultValue, is_unique: unique, is_required: required, apply_to: applyTo, is_configurable: configurable, is_searchable: searchable, is_visible_in_advanced_search: visibleAdvancedSearch, is_comparable: comparable, is_used_for_promo_rules: usedPromoRules, is_visible_on_front: visibleOnFront, used_in_product_listing: usedProductListing, additional_fields: additionalFields, frontend_label: frontendLabel]

最新更新