(заранее наполовину извиняюсь за собственные ссылки в этом посте, но я, кажется, (по крайней мере пока) неофициальное руководство разработчика Magento)
Это код, который вызывает у вас проблемы (в указанном выше файле Data.php)
if (!$model = Mage::getStoreConfig($prefix . 'model', $store)) {
// Mage::Log('could not get model for ' . $prefix);
continue;
}
$methodInstance = Mage::getModel($model);
if (!$methodInstance->isAvailable($quote)) {
// Mage::Log($model . ' is not avaiablable' );
/* if the payment method can not be used at this time */
continue;
}
Magento ищет системную конфигурацию для имени класса или пути в стиле URI для использования в вызове getModel, который создает экземпляр модели.
$methodInstance = Mage::getModel('authorizecim/paymentmethod');
Итак, ваша проблема в том, что метод authorizecim / payment не разрешает имя класса Magento, как это должно быть. (если вы не выполните это, попробуйте (вкладка поиска класса / URI в демоверсии Commerce Bug ).
Итак, метод authorizecim / payment будет преобразован в имя класса
CPAP_AuthorizeCim_Model_Paymentmethod
authorizecim == look in config for this name in the <models /> section
and use it's value as a basename (CPAP_AuthorizeCim_Model)
paymentmethod = append this with underscore word upper casing
(Paymentmethod) and append to above string to give us
CPAP_AuthorizeCim_Model_Paymentmethod
Итак, Magento приказывает PHP создать экземпляр CPAP_AuthorizeCim_Model_Paymentmethod. Однако этот класс не загружен в память, поэтому __autoload вступает во владение и загружает файл в
CPAP/AuthorizeCim/Model/Paymentmethod.php
Какой у вас PHP-файл, который приводит нас к вашей проблеме. Ваш класс называется
CPAP_AuthorizeCim_Model_Authorizenet
когда его нужно назвать
CPAP_AuthorizeCim_Model_Paymentmethod