Magento - 资源无法调用

时间:2014-06-27 21:47:51

标签: soap magento-1.6

上下文

我多次尝试创建一个提供一组自定义方法的Magento模块。

我正在使用Magento 1.6.2并遵循了许多教程,但我的上一次尝试是使用this web utility - Magento Module Creator

在我尝试使用的模块配置中:Milyuncarros(作为命名空间)和Mobile(作为模块)。 其他诸如codePool和version之类的东西都保留为默认值(local,0.1.0)。

在“需要添加Magento API”选项中添加了一个方法:saleSearchCategories

网站本身告诉调用soap方法,例如:yourmodulename_api.yourmethod(对于我的情况,它将是Mobile_Api.saleSearchCategories或mobile_api.salesearchcategories - 两者都有问题:“无效的API路径”和“资源路径不可调用”分别地)。

模块禁用了缓存管理,我确保启用了Milyuncarros_Mobile模块。

经过多次尝试后,我还明确启用了Magento root的appache .htaccess中的“RewriteEngine On”(即作为/apps的兄弟)。

问题

当我尝试调用我创建的soap方法(没有参数)时,我得到一个“资源路径不可调用”的SoapFault。

当前状态

生成的文件结构如下:

app / etc / modules / Milyuncarros_Mobile.xml(自动生成):

<?xml version="1.0"?>
<config>
  <modules>
    <Milyuncarros_Mobile>
      <active>true</active>
      <codePool>local</codePool>            
      <depends>
        <Mage_Api />
      </depends>
      <version>0.1.0</version>
    </Milyuncarros_Mobile>
  </modules>
</config>

app / code / local / Milyuncarros / Mobile / Model / Api.php(自动生成+编辑):

<?php

class Milyuncarros_Mobile_Model_Api extends Mage_Api_Model_Resource_Abstract
{        
    public function saleSearchCategories()
    {
        //everything was generated but the following line
        return array('active' => true);
    }
}

app / code / local / Milyuncarros / Mobile / Helper / Data.php(自动生成):

<?php

class Milyuncarros_Mobile_Helper_Data extends Mage_Core_Helper_Abstract
{
}

app / code / local / Milyuncarros / Mobile / etc / api.xml(自动生成):

<?xml version="1.0"?>
<config>
  <api>
    <resources>
      <mobile_api translate="title" module="mobile">
        <title>Myapi</title>
        <acl>mobile/api</acl>
        <model>mobile/api</model>
        <methods>
          <salesearchcategories translate="title" module="mobile">
            <title>Categories listed as public sale searchable</title>
            <acl>mobile/salesearchcategories</acl>
          </salesearchcategories>
        </methods>
      </mobile_api>
    </resources>
    <acl>
      <resources>
        <mobile translate="title" module="mobile">
          <title>Mobile</title>
          <sort_order>2000</sort_order>                    
          <salesearchcategories translate="title" module="mobile">
            <title>Categories listed as public sale searchable</title>
          </salesearchcategories>
        </mobile>
      </resources>
    </acl>
  </api>
</config>

(我根据此规范尝试了mobile_apisalesearchcategories

最后 - 但最重要的是 - 模块配置文件: app / code / local / Milyuncarros / Mobile / etc / config.xml(自动生成):

<?xml version="1.0"?>
<config>
  <modules>
    <Milyuncarros_Mobile>
      <version>0.1.0</version>
    </Milyuncarros_Mobile>
  </modules>
  <global>
    <helpers>
      <mobile>
        <class>Milyuncarros_Mobile_Helper</class>
      </mobile>
    </helpers>
    <models>
      <mobile>
        <class>Milyuncarros_Mobile_Model</class>
        <resourceModel>mobile_mysql4</resourceModel>
      </mobile>
    </models>
  </global>
</config>

问题:当我尝试调用mobile_api.salesearchcategories时出现错误:

SoapFault:资源路径不可调用。

我该怎么做才能停止收到错误?该文档几乎没有任何关于(或者它太难以被搜索,我没有找到它)。

1 个答案:

答案 0 :(得分:1)

我解决了。该模块格式良好(因为我使用了一个众所周知的生成器)。

我做的是:

  1. 编辑生成的Helper_Data类以从Mage_Core_Helper_Data扩展而不是_Abstract。
  2. 刷新缓存(缓存管理)并刷新编译(工具&gt;编译)。
  3. (我不知道它是否相关)我进入了SOAP的管理员角色并再次保存了角色。
  4. 然后它有效:我可以使用mobile_api.salesearchcategories达到我的入口点。