我尝试使用“product_attribute.info”访问magento中的API并返回:
致命错误:未捕获的SoapFault异常:[3]无效的api路径。在......第81行
返回return $proxy->call($sessionId, 'product_attribute.info', $attributeId);
即使替换$ attributeId给出的函数也会更正此错误。 我想我的服务器上有些文件已损坏,但不知道哪个文件负责。
我感谢
编辑:我的Api.php class Mage_Catalog_Model_Product_Attribute_Api extends Mage_Catalog_Model_Api_Resource
{
public function __construct()
{
$this->_storeIdSessionField = 'product_store_id';
$this->_ignoredAttributeCodes[] = 'type_id';
$this->_ignoredAttributeTypes[] = 'gallery';
$this->_ignoredAttributeTypes[] = 'media_image';
}
public function items($setId)
{
$attributes = Mage::getModel('catalog/product')->getResource()
->loadAllAttributes()
->getSortedAttributes($setId);
$result = array();
foreach ($attributes as $attribute) {
/* @var $attribute Mage_Catalog_Model_Resource_Eav_Attribute */
if ( (!$attribute->getId() || $attribute->isInSet($setId))
&& $this->_isAllowedAttribute($attribute)) {
if (!$attribute->getId() || $attribute->isScopeGlobal()) {
$scope = 'global';
} elseif ($attribute->isScopeWebsite()) {
$scope = 'website';
} else {
$scope = 'store';
}
$result[] = array(
'attribute_id' => $attribute->getId(),
'code' => $attribute->getAttributeCode(),
'type' => $attribute->getFrontendInput(),
'required' => $attribute->getIsRequired(),
'scope' => $scope
);
}
}
return $result;
}
public function options($attributeId, $store = null)
{
$storeId = $this->_getStoreId($store);
$attribute = Mage::getModel('catalog/product')
->setStoreId($storeId)
->getResource()
->getAttribute($attributeId)
->setStoreId($storeId);
/* @var $attribute Mage_Catalog_Model_Entity_Attribute */
if (!$attribute) {
$this->_fault('not_exists');
}
$options = array();
if ($attribute->usesSource()) {
foreach ($attribute->getSource()->getAllOptions() as $optionId=>$optionValue) {
if (is_array($optionValue)) {
$options[] = $optionValue;
} else {
$options[] = array(
'value' => $optionId,
'label' => $optionValue
);
}
}
}
return $options;
}
}