Будучи успешной платформой электронной коммерции, Magento предоставляет множество способов оплаты в самом ядре. Однако вы также можете создать собственное расширение метода оплаты, чтобы подключить выбранный вами платежный шлюз, если он еще не доступен.
В этой серии мы рассмотрим процесс создания расширения для собственного способа оплаты. В этой статье мы начнем с внутреннего раздела, настроив конфигурацию для нашего пользовательского метода оплаты.
Я предполагаю, что вы знакомы с базовым процессом создания модулей в Magento. Если нет, вы можете обратиться к этой статье о разработке пользовательских модулей.
Взгляд на настройку файла
Мы создадим пользовательский модуль «Custompaymentmethod», поэтому давайте посмотрим на список файлов, необходимых для настройки внутренней конфигурации.
-
app/etc/modules/Envato_All.xml: это файл, используемый для включения нашего пользовательского модуля. -
app/code/local/Envato/Custompaymentmethod/etc/config.xml: это файл конфигурации модуля, в котором мы объявим наш собственный способ оплаты. -
app/code/local/Envato/Custompaymentmethod/etc/system.xml: это файл конфигурации системы, в котором мы настроим параметры конфигурации для нашего пользовательского метода оплаты. -
app/code/local/Envato/Custompaymentmethod/sql/custompaymentmethod_setup/install-1.0.0.0.php: это файл SQL, который мы будем использовать для создания настраиваемых полей для нашего пользовательского метода оплаты.
Создать файлы и папки
Во-первых, нам нужно создать файл включения модуля. Создайте файл «app / etc / modules / Envato_All.xml» и вставьте следующее содержимое в этот файл. Мы использовали «Envato» в качестве пространства имен нашего модуля и «Custompaymentmethod» в качестве имени нашего модуля. По умолчанию будет включен наш модуль «Custompaymentmethod».
|
01
02
03
04
05
06
07
08
09
10
11
12
13
|
<?xml version=»1.0″?>
<config>
<modules>
<Envato_Custompaymentmethod>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Payment />
</depends>
</Envato_Custompaymentmethod>
</modules>
</config>
|
Ничего особенного — мы только что объявили наш модуль в «локальном» пуле кода. Однако важно отметить, что мы объявили, что наше расширение зависит от основного расширения «Mage_Payment».
В дальнейшем создайте файл «app / code / local / Envato / Custompaymentmethod / sql / custompaymentmethod_setup / install-1.0.0.0.php» со следующим содержимым.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
|
<?php
$installer = $this;
$installer->startSetup();
$installer->run(«
ALTER TABLE `{$installer->getTable(‘sales/quote_payment’)}`
ADD `custom_field_one` VARCHAR( 255 ) NOT NULL,
ADD `custom_field_two` VARCHAR( 255 ) NOT NULL;
ALTER TABLE `{$installer->getTable(‘sales/order_payment’)}`
ADD `custom_field_one` VARCHAR( 255 ) NOT NULL,
ADD `custom_field_two` VARCHAR( 255 ) NOT NULL;
«);
$installer->endSetup();
|
Это установочный файл нашего модуля, который будет создавать поля «custom_field_one» и «custom_field_two» в таблицах, связанных с оплатой.
Далее нам нужно создать файл конфигурации модуля. Создайте «app / code / local / Envato / Custompaymentmethod / etc / config.xml» и вставьте следующее содержимое в этот файл.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
<?xml version=»1.0″?>
<config>
<modules>
<Envato_Custompaymentmethod>
<version>1.0.0.0</version>
</Envato_Custompaymentmethod>
</modules>
<global>
<fieldsets>
<sales_convert_quote_payment>
<custom_field_one>
<to_order_payment>*</to_order_payment>
</custom_field_one>
<custom_field_two>
<to_order_payment>*</to_order_payment>
</custom_field_two>
</sales_convert_quote_payment>
</fieldsets>
<helpers>
<custompaymentmethod>
<class>Envato_Custompaymentmethod_Helper</class>
</custompaymentmethod>
</helpers>
<blocks>
<custompaymentmethod>
<class>Envato_Custompaymentmethod_Block</class>
</custompaymentmethod>
</blocks>
<models>
<custompaymentmethod>
<class>Envato_Custompaymentmethod_Model</class>
</custompaymentmethod>
</models>
<resources>
<custompaymentmethod_setup>
<setup>
<module>Envato_Custompaymentmethod</module>
</setup>
</custompaymentmethod_setup>
</resources>
</global>
<default>
<payment>
<custompaymentmethod>
<active>1</active>
<model>custompaymentmethod/paymentmethod</model>
<order_status>pending</order_status>
<title>CustomPaymentMethod</title>
<allowspecific>0</allowspecific>
<payment_action>sale</payment_action>
</custompaymentmethod>
</payment>
</default>
<frontend>
<routers>
<custompaymentmethod>
<use>standard</use>
<args>
<module>Envato_Custompaymentmethod</module>
<frontName>custompaymentmethod</frontName>
</args>
</custompaymentmethod>
</routers>
</frontend>
</config>
|
Давайте посмотрим на некоторые важные элементы в файле «config.xml». В процессе оформления заказа, когда пользователь выбирает наш собственный способ оплаты, мы показываем два текстовых поля для ввода информации. Они предназначены только для демонстрации использования пользовательских полей в методе оплаты переднего плана.
Мы увидим это подробнее чуть позже, а пока просто предположим, что нам нужно сохранить пользовательские поля, связанные с нашим пользовательским методом оплаты при создании заказа. Теги <fieldsets> и <sales_convert_quote_payment> предназначены именно для этой цели — они сообщат Magento также сохранить эти поля вместе с информацией о заказе.
Далее мы объявили обычные теги помощников, блоков и моделей, которые мы реализуем в других частях этой серии. Кроме того, мы объявили ресурсы для нашего пользовательского модуля, используя <custompaymentmethod_setup> . Вспомните файл «install-1.0.0.0.php», который мы упоминали ранее. Да, это точно связано с этим установочным файлом. Magento обнаружит этот файл и запустит необходимые сценарии установки SQL для нашего модуля.
Наконец, мы подключаем наш собственный способ оплаты, используя <custompaymentmethod> под тегом <payment> . Под этим тегом мы настроили конфигурацию по умолчанию для нашего метода оплаты, например, «активный», «order_status», «payment_action» и т. Д. В конце файла мы объявили интерфейсный маршрутизатор для нашего модуля. , который будет реализован в других частях этой серии.
Давайте перейдем к следующему важному файлу, файлу «system.xml». Создайте файл «app / code / local / Envato / Custompaymentmethod / etc / system.xml» и вставьте следующее содержимое в этот файл.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
<?xml version=»1.0″?>
<config>
<sections>
<payment>
<groups>
<custompaymentmethod translate=»label» module=»custompaymentmethod»>
<label>CustomPaymentMethod Module</label>
<sort_order>1000</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
<fields>
<title translate=»label»>
<label>Title</label>
<frontend_type>text</frontend_type>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
<sort_order>1</sort_order>
</title>
<active translate=»label»>
<label>Enabled</label>
<frontend_type>select</frontend_type>
<source_model>adminhtml/system_config_source_yesno</source_model>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
<sort_order>2</sort_order>
</active>
<order_status translate=»label»>
<label>New order status</label>
<frontend_type>select</frontend_type>
<source_model>adminhtml/system_config_source_order_status</source_model>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
<sort_order>3</sort_order>
</order_status>
<allowspecific translate=»label»>
<label>Payment from applicable countries</label>
<frontend_type>allowspecific</frontend_type>
<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>1</show_in_store>
<sort_order>4</sort_order>
</allowspecific>
<specificcountry translate=»label»>
<label>Payment from Specific countries</label>
<frontend_type>multiselect</frontend_type>
<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>1</show_in_store>
<sort_order>5</sort_order>
</specificcountry>
</fields>
</custompaymentmethod>
</groups>
</payment>
</sections>
</config>
|
В этом файле мы просто объявляем настраиваемые поля для нашего пользовательского метода оплаты. Идите вперед и включите модуль от серверной части. Перейдите в Система> Конфигурация> Продажи> Способы оплаты , где будут перечислены все способы оплаты. Вы должны увидеть «Модуль CustomPaymentMethod» в списке как один из способов оплаты!

Вывод
Сегодня мы только что посмотрели на начальную настройку внутренней конфигурации для нашего пользовательского метода оплаты. В следующих статьях этой серии мы увидим его передний конец. Не забудьте поделиться своими мыслями, используя канал ниже.