Добрый день.
У меня проблема с методом оплаты.
Я следовал этому руководству http://inchoo.net/magento/how-to-create-magento-payment-module/.
На бэкенде все хорошо.
Но на фронтенде новый метод не появляется.
Вот некоторый код Creativator_Payfort.xml:
<?xml version="1.0"?>
<config>
<modules>
<Creativator_Payfort>
<active>true</active>
<codePool>local</codePool>
</Creativator_Payfort>
</modules>
</config>
Затем config.xml:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Creativator_Payfort>
<version>1.0.0</version>
</Creativator_Payfort>
</modules>
<default>
<payment>
<payfort>
<model>payfort/standard</model>
<order_status>pending</order_status>
<title>CUSTOM CARD</title>
<payment_action>sale</payment_action>
<submit_url>https://someurl.com</submit_url>
<merchant_id>Insert merchant id</merchant_id>
<allowspecific>0</allowspecific>
<sort_order>15</sort_order>
</payfort>
</payment>
</default>
<global>
<models>
<creativator_payfort>
<class>Creativator_Payfort_Model</class>
</creativator_payfort>
</models>
<helpers>
<creativator_payfort>
<class>Creativator_Payfort_Helper</class>
</creativator_payfort>
</helpers>
<blocks>
<creativator_payfort>
<class>Creativator_Payfort_Block</class>
</creativator_payfort>
</blocks>
</global><frontend>
<routers>
<Creativator_Payfort>
<use>standard</use>
<args>
<module>Creativator_Payfort</module>
<frontName>payfort</frontName>
</args>
</Creativator_Payfort>
</routers>
<layout>
<updates>
<creativator_payfort>
<file>creativator/payfort.xml</file>
</creativator_payfort>
</updates>
</layout>
</frontend>
</config>
System.xml:
<?xml version="1.0"?>
<config>
<sections>
<payment>
<groups>
<payfort translate="label comment" module="payment">
<label>Payfort</label>
<frontend_type>text</frontend_type>
<sort_order>0</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
<fields>
<active translate="label">
<label>Enabled</label>
<frontend_type>select</frontend_type>
<source_model>adminhtml/system_config_source_yesno</source_model>
<sort_order>10</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
</active>
<title translate="label">
<label>Title</label>
<frontend_type>text</frontend_type>
<sort_order>20</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
</title>
<order_status translate="label">
<label>New Order Status</label>
<frontend_type>select</frontend_type>
<source_model>adminhtml/system_config_source_order_status</source_model>
<sort_order>50</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
</order_status>
<submit_url>
<label>Gateway URL</label>
<frontend_type>text</frontend_type>
<sort_order>58</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
</submit_url>
<merchant_id>
<label>Merchant ID</label>
<frontend_type>text</frontend_type>
<sort_order>59</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
</merchant_id>
<allowspecific translate="label">
<label>Payment Applicable From</label>
<frontend_type>select</frontend_type>
<sort_order>60</sort_order>
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
</allowspecific>
<specificcountry translate="label">
<label>Countries Payment Applicable From</label>
<frontend_type>multiselect</frontend_type>
<sort_order>70</sort_order>
<source_model>adminhtml/system_config_source_country</source_model>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
<depends><allowspecific>1</allowspecific></depends>
</specificcountry>
<sort_order translate="label">
<label>Sort Order</label>
<frontend_type>text</frontend_type>
</sort_order><sort_order>100</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
</fields>
</payfort>
</groups>
</payment>
</sections>
</config>
И наконец модель Standard.php:
<?php
class Creativator_Payfort_Model_Standard extends Mage_Payment_Model_Method_Abstract
{
protected $_code = 'payfort';
protected $_isInitializeNeeded = true;
protected $_canUseInternal = true;
protected $_canUseForMultishipping = true;
/**
* Return Order place redirect url
*
* @return string
*/
public function getOrderPlaceRedirectUrl()
{
//when you click on place order you will be redirected on this url, if you don't want this action remove this method
return Mage::getUrl('payfort');
}
}
Постскриптум Я читал похожие посты о подобной проблеме, но это не помогло. Я наверняка пропустил что-то важное.
Поэтому я буду очень благодарен за вашу помощь
1) Вы определили свою модель внутри тега «creativator_payfort», поэтому вам необходимо использовать «creativator_payfort / standard» для модели.
2) отсутствует активный тег
<payfort>
<model>creativator_payfort/standard</model>
<active>1</active>`
Других решений пока нет …