Как программно добавить атрибут категории в Magento 2 Создать файл InstallData.php Мы начнем с класса InstallData, который находится в app / code / Mageplaza / HelloWorld / Setup / InstallData.php. Содержание для этого файла: <?php namespace Mageplaza\HelloWorld\Setup; use Magento\Eav\Setup\EavSetupFactory; use Magento\Framework\Setup\InstallDataInterface; use Magento\Framework\Setup\ModuleContextInterface; use Magento\Framework\Setup\ModuleDataSetupInterface; class InstallData implements InstallDataInterface { private $eavSetupFactory; public function __construct(EavSetupFactory $eavSetupFactory) { $this->eavSetupFactory = $eavSetupFactory; } } Определите метод install () <?php public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context) { } Создайте атрибут категории программно <?php namespace Mageplaza\HelloWorld\Setup; use Magento\Framework\Setup\InstallDataInterface; use Magento\Framework\Setup\ModuleContextInterface; use Magento\Framework\Setup\ModuleDataSetupInterface; use Magento\Eav\Setup\EavSetupFactory; class InstallData implements InstallDataInterface { private $eavSetupFactory; public function __construct(EavSetupFactory $eavSetupFactory) { $this->eavSetupFactory = $eavSetupFactory; } public function install( ModuleDataSetupInterface $setup, ModuleContextInterface $context ) { $eavSetup = $this->eavSetupFactory->create([‘setup’ => $setup]); $eavSetup->addAttribute( \Magento\Catalog\Model\Category::ENTITY, ‘mp_new_attribute’, [ ‘type’ => ‘varchar’, ‘label’ => ‘Mageplaza Attribute’, ‘input’ => ‘text’, ‘sort_order’ => 100, ‘source’ => », ‘global’ => 1, ‘visible’ => true, ‘required’ => false, ‘user_defined’… Читать далее »
Magento 1 и Magento 2 сеттеры и геттеры Для получения и внесения данных в сессию или атрибуты объектов в Magento используются конструкции get и set. Для этого мы программно устанавливаем некоторые значения для объектов и получаем их. В начале рассмотрим пример с сессиями. Сессия — это временный объект, который создается на сервере для каждого пользователя магазина Magento для хранения некоторых значений (например, товаров в корзине). Если вы хотите сохранить данные, которые нужно передать с одной страницы на другую для одного и того же пользователя, вам нужно сохранить их в сеансе. Для начала рассмотрим подробный пример на Magento 1. $inputMessage = ‘Hello World’; Mage::getSingleton(‘core/session’)->setWelcomeMessage($inputMessage); $outputMessage = Mage::getSingleton(‘core/session’)->getWelcomeMessage(); echo $this->__($outputMessage); Все достаточно просто, данный код на Magento 1 можно вынести в Helper или использовать его в конкретном шаблоне если не требуется его повторения по всему проекту. Вторым примером рассмотрим использование сессии в Magento 2. class MyTestSession { protected $session; public function __construct( \Magento\Framework\Session\SessionManagerInterface $session, … ){ $this->session = $session; … } public function setValue($value){… Читать далее »
Прежде чем начать раздел кода, давайте создадим структуру каталогов, которая понадобится для создания сетки редактирования сетки администратора и добавления сетки. app/code/Webkul/Grid app/code/Webkul/Grid/etc app/code/Webkul/Grid/etc/Adminhtml app/code/Webkul/Grid/Block/Adminhtml app/code/Webkul/Grid/Block/Adminhtml/Grid app/code/Webkul/Grid/Block/Adminhtml/Grid/Edit app/code/Webkul/Grid/Model app/code/Webkul/Grid/Model/ResourceModel app/code/Webkul/Grid/Model/ResourceModel/Grid app/code/Webkul/Grid/Setup app/code/Webkul/Grid/Controllers/Adminhtml app/code/Webkul/Grid/view/adminhtml/layout Теперь, когда мы подготовили структуру каталогов, теперь мы создадим файл в соответствии с требованиями модуля в заданной последовательности: 1. Создадим Module.Xml в App/Code/Webkul/Grid/Etc 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <?xml version=»1.0″?> <!— /** * Webkul_Grid Module * * @category Webkul * @package Webkul_Grid * @author Webkul Software Private Limited * */ —> <config xmlns:xsi=»https://www.w3.org/2001/XMLSchema-instance» xsi:noNamespaceSchemaLocation=»urn:magento:framework:Module/etc/module.xsd»> <module name=»Webkul_Grid» setup_version=»2.0.0″> </module> </config> 2. Создадим Registration.Php в App/Code/Webkul/Grid 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <?php /** * Webkul_Grid Module Registration * * @category Webkul * @package Webkul_Grid * @author Webkul Software Private Limited * */ \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, ‘Webkul_Grid’, __DIR__ ); 3. Создадим Menu.Xml… Читать далее »
Как создать собственный способ оплаты в Magento2 : Здесь я покажу, как создавать пользовательский способ оплаты и отобразить его на странице checkout в magento2. Потребуется создать следующие файлы: 1 – Создать Test/Testpayment/registration.php для регистрации вашего модуля в системе. 1 2 3 4 5 6 <?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, ‘Test_Testpayment’, __DIR__ ); 2- Создать Test/Testpayment/etc/module.xml для определения имени модуля. 1 2 3 4 5 <?xml version=»1.0″?> <config xmlns:xsi=»https://www.w3.org/2001/XMLSchema-instance» xsi:noTestSchemaLocation=»urn:magento:framework:Module/etc/module.xsd»> <module name=»Test_Testpayment» setup_version=»2.0.0″ active=»true»> </module> </config> 3- Создать Test/Testpayment/etc/config.xml для определения способа оплаты. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?xml version=»1.0″?> <config xmlns:xsi=»https://www.w3.org/2001/XMLSchema-instance» xsi:noNamespaceSchemaLocation=»../../Store/etc/config.xsd»> <default> <payment> <testpayment> <payment_action>authorize</payment_action><!— You can use another methor like capture —> <model>Test\Testpayment\Model\PaymentMethod</model> <active>1</active> <title>Test Payment</title> <order_status>pending_payment</order_status><!— set default order status—> </testpayment> </payment> </default> </config> 4- Создать Test/Testpayment/etc/adminhtml/system.xml для отображения способ оплаты в backend. В этом файле упоминается только одно поле для включения / выключения данного метода оплаты. Вы можете добавить… Читать далее »