Magento 2 CMS is popular among store merchants due to its capability of customization to satisfy custom business requirements.
Today, I will talk about one such customization to add new field in cart price rules form in Magento 2 backend.
The admin can use the below programmatic solution to add a new custom field in the cart price rules form in the admin panel of Magento 2.
For instance, while using any third-party APIs for offers, you need to pass any data and for that, you require adding a custom field.
Any such requirements can be done using the below method:
Method to Add New Field in Cart Price Rules Form in Magento 2 Backend:
1. Create UpgradeSchema.php file at app\code\Meetanshi\Mtapi\Setup\
<?php namespace Meetanshi\Mtapi\Setup; use Magento\Framework\App\Config\ConfigResource\ConfigInterface; use Magento\Framework\Setup\ModuleContextInterface; use Magento\Framework\Setup\SchemaSetupInterface; use Magento\Framework\Setup\UpgradeSchemaInterface; class UpgradeSchema implements UpgradeSchemaInterface { protected $resourceConfig; public function __construct( ConfigInterface $resourceConfig) { $this->resourceConfig = $resourceConfig; } public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context) { $installer = $setup; $installer->startSetup(); $installer->getConnection()->addColumn( $installer->getTable('salesrule'), 'redirection_link', [ 'type' => \Magento\Framework\DB\Ddl\Table::TYPE_TEXT, 'unsigned' => true, 'nullable' => true, 'default' => '', 'comment' => 'redirection_link' ] ); $installer->getConnection()->addColumn( $installer->getTable('salesrule'), 'offer_image', [ 'type' => \Magento\Framework\DB\Ddl\Table::TYPE_TEXT, 'unsigned' => true, 'nullable' => true, 'default' => '', 'comment' => 'offer_image' ] ); $installer->endSetup(); } }
2. Create sales_rule_form.xml file at app\code\Meetanshi\Mtapi\view\adminhtml\ui_component\
<?xml version="1.0" encoding="UTF-8"?> <form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd"> <fieldset name="rule_information" sortOrder="10"> <field name="redirection_link" formElement="input"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="source" xsi:type="string">sales_rule</item> </item> </argument> <settings> <dataType>text</dataType> <label translate="true">Redirection Link</label> <dataScope>redirection_link</dataScope> </settings> </field> </fieldset> </form>
That’s it.
Also, please share the solution with Magento Community via social media.
Thank you.