无法打开流:Magento 自定义付款方式上没有此类文件或目录

failed to open stream: No such file or directory on Magento Custom Payment Method

我为自己创建了一个扩展,它从 API 导入订单。这是通过 cronjob 发生的。导入工作正常,但现在我已经创建了自定义付款方式。

现在,当我想在订单上设置自定义方法时,它会抛出错误:

Failed opening 'Mage/Importer/Model/Method/Dobeno.php'

它无法识别我在 config.xml 中注册的模型。 在 config.xml 我有以下内容:

<global>
    <models>
        <dobeno>
            <class>Dobeno_Importer_Model</class>
        </dobeno>
    </models>
</global>
<default>
    <payment>
        <dobeno>
            <model>importer/method_dobeno</model>
            <active>1</active>
            <order_status>externalorder</order_status>
            <title>Dobeno external</title>
            <allowspecific>0</allowspecific>
            <shippingallowspecific>0</shippingallowspecific>
            <disallowspecificshippingmethods>0</disallowspecificshippingmethods>
            <display_zero_fee>0</display_zero_fee>
            <sort_order>1</sort_order>
        </dobeno>
    </payment>
</default>

当我使用默认付款方式时,cronjob 工作得很好。

设置支付方式的代码: $quotePayment->setMethod('dobeno');

文件Dobeno/Importer/Model/Method/Dobeno.php:

class Dobeno_Importer_Model_Method_Dobeno extends Mage_Payment_Model_Method_Abstract
{
    protected $_code = 'dobeno';
    protected $_isInitializeNeeded      = true;
    protected $_canUseInternal          = false;
    protected $_canUseForMultishipping  = false;
}

Magento 版本。 1.9.2.3

终于找到问题了。命名有问题。

将 XML 更改为

<global>
    <models>
        <dobeno_importer>
            <class>Dobeno_Importer_Model</class>
        </dobeno_importer>
    </models>
</global>
<default>
    <payment>
        <dobeno>
            <model>dobeno_importer/method_dobeno</model>
            <active>1</active>
            <order_status>externalorder</order_status>
            <title>Dobeno external</title>
            <allowspecific>0</allowspecific>
            <shippingallowspecific>0</shippingallowspecific>
            <disallowspecificshippingmethods>0</disallowspecificshippingmethods>
            <display_zero_fee>0</display_zero_fee>
            <sort_order>1</sort_order>
        </dobeno>
    </payment>
</default>